Sphinx is a Spin compiler—written in Spin—that runs on the Parallax Propeller. Although memory constraints prevent Sphinx from compiling the full gamut of Spin programs (see Limitations below), it is not a toy compiler. It can compile many complex and substantial programs, including those containing Propeller assembly language, such as the Parallax tv and graphics objects. Sphinx can also compile itself.

Sphinx won 3rd Prize in Parallax Inc.'s 2009/2010 Propeller Design Contest.

Hardware requirements

Sphinx requires a Propeller system with the following peripherals:
  • SD card interface (fsrw-compatible) and SD card.
  • NTSC video interface and NTSC display device.
  • PS/2 keyboard interface and PS/2 keyboard.


(a non-exhaustive list)
  • Limited memory.
  • .spn files can contain only ASCII characters, no UNICODE.
  • Minimal floating-point support: floating-point literals are supported, floating-point constant expressions are not.
  • The following keywords are not implemented: FLOAT, ROUND, TRUNC, FILE, ORGX, $.
  • Sphinx is unable to optimize most long branches to short branches.
  • Sphinx does not detect and remove objects that are duplicates at the bytecode level.
  • The Sphinx file system supports only short ("8.3") filenames and has no directory support.
  • Needs some sort of makefile or build system.
  • Needs a better editor.


The file system has been improved recently but still might occasionally corrupt files. For the time being, be prepared to reformat the SD card if Sphinx starts to behave strangely.


If the hardware requirements and limitations haven't daunted you, please follow this roadmap to start using Sphinx:

Start by downloading Sphinx.
Install Sphinx on your Propeller system.
Read all about Sphinx.

Terms of use

Sphinx source code is provided under the MIT license.