Clone wiki

compatibility / shed_skin

Shed Skin

Shed Skin has issues running under PyPy and generating C++ extensions that work in PyPy. However, there is a patch against Shed Skin 0.7 that makes generating and using C++ extensions possible with PyPy (still requires copying setobject.h from CPython to PyPy's includes directory).

Official support for PyPy is being added, with a "-p" command line option to trigger compatibility code.


C++ extensions generated by Shed Skin may run much faster than the comparable Python code under PyPy. However, the overhead of running C-API extensions in PyPy is considerable, rendering many extensions slower. Performance is worst for repeated calls to extension code in a pure Python loop.


Given the setobject.h hack necessary for building Shed Skin extensions with PyPy, code using built-ins set or frozenset will fail to run. This happens because PyPy is missing PyFrozenSet_CheckExact, PyAnySet_CheckExact, PyFrozenSet_New and PySet_New, used in Shed Skin's lib/builtin.hpp.

Other than that, all Shed Skin compatibility restrictions apply. Some code (e.g. Shed Skin's own example) will segfault when run as a PyPy C++ extension.

Category:Code/wrapper generators
Hard Dependencies
C-API Compatibility Unknown