Shed Skin is an experimental compiler, that can translate pure, but implicitly statically typed Python programs into optimized C++. Shed Skin can generate stand-alone programs or (simple, for now) extension modules, that can be imported and used from larger Python programs.
Besides the typing restriction, programs cannot freely use the Python standard library (although about 17 common modules, such as random and re, are currently supported). Also, not all Python features, such as nested functions and variable numbers of arguments, are supported.
For a set of 27 non-trivial test programs (at about 7,000 lines in total), measurements show a typical speedup of 2-40 times over Psyco, and 2-220 times over CPython.
Because Shed Skin is still in an early stage of development, however, a lot of other programs will not be able to compile out-of-the-box.
Installation: To install Shed Skin on your Mac you will have to open a Terminal window, browse to Shed Skin's folder and run the following command from inside that directory (you will need administrator privileges to be able to run it):
sudo python setup.py install
Requirements:
· Python
What's New in This Release: [ read full changelog ]
· new example: stereo computer vision (james coughlan)
· new example: rubik's cube solver (author unknown)
· new example: thistlethwaite rubik's cube solver (stephan pochmann)
· optimized array indexing, slicing (reported by francesco frassinelli)
· optimized list.pop without arguments (reported by ecir hana)
· optimized bool(list) (idem)
· os.popen2 fix (danny milosavljevic)
· support float.is_integer (reported by tony veijalainen)
· use 64-bit arithmetic in pow internally (idem)
· set.__ior__ etc. modeling fix (reported by william edwards)
· model __eq__ in methods __contains__, index, count, remove (reported by tony veijalainen)
· fix for skipped calls in generator (reported by francesco frassinelli)
· avoid abstract object type, to avoid hiding warnings (reported by wilkin ng)
· avoid multiple definitions for rich comparison code in header file (idem)
· look in correct context for inherited methods (idem)
· some fixes for GCC 4.7 (reported by mos4567)