Shed Skin

Shed Skin is an experimental Python-to-C++ compiler.
Download

Shed Skin Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Mark Dufour
  • Publisher web site:
  • http://mark.dufour.googlepages.com/

Shed Skin Tags


Shed Skin Description

Shed Skin is an experimental Python-to-C++ compiler. Shed Skin is an experimental Python-to-C++ compiler. Shed Skin accepts pure Python programs, and generates optimized C++ code. This means that, in combination with a C++ compiler, it allows for translation of Python programs into highly efficient machine language. For a set of 16 non-trivial test programs, measurements show a typical speedup of 2-40 over Psyco, about 12 on average, and 2-220 over CPython, about 45 on average (see Section 5 of my Master's Thesis on the right). Shed Skin also outputs annotated source code.The high performance and elegant approach of Shed Skin (it is only 6000 lines!) come at a cost. First, it currently only accepts programs that are statically typed. This simply means that variables can only ever have a single type. So e.g. a = 1; a = '1' is not allowed. Of course, a single type can be abstract or generic (as in C++), so that e.g. a = A(); a = B(), where A and B have a common base class, is allowed. Second, Python programs cannot currently freely use the Python standard library. However, some common imports are supported (see *_.py), and many others can be easily added. The problem is a practical one, since in theory it is possible to create bindings for most library modules. A simple work-around can be to only compile critical parts of a Python program, and communicate with it through e.g. files and standard in- and output. This way, the 'main' program can use the full Python dynamics and standard library, and the whole program is written in pure Python. Shed Skin is still alpha software, and there are some other minor, mostly temporary, limitations. Please read the Limitations section carefully, before trying to compile a program. The only thing I ask in return for making the software available under the GPL, is that you send me an email when you encounter a problem, that is not listed among these limitations. This is the fastest way to getting your program supported, since I typically do not fix problems I do not know about. Please also let me know if you would like me to implement certain library calls. What's New in This Release: · Improved support for 'os' (UNIX). · The addition of a JPEG decoder (1200 lines) and some other programs to the set of example programs. Extension module fixes. · Improved compiler flags under OS X. · An important type inference fix. · Improved variable overloading. · Casting improvements. · Fixes for setslice and delslice corner cases. · xrange returns an xrange object, not iterator. · There are several minor bugfixes.


Shed Skin Related Software