I recently decided to sit down and finally port Shed Skin, an experimental restricted-Python-to-C++ compiler in the works since 2005 or so, to Python3. Three painful months and a total diff of 50k lines later, everything now works with Python3 (Shed Skin itself, and all tests and examples..)
This does not mean that every Python3 feature is supported, but what was there now at least works fine with Python3.. For example, unicode is still restricted to 1-byte characters, and there is no support (yet) for nice new features such as f-strings. Python2 support has been dropped with the new release, and subsequent releases should add support for various new Python3 features.
The following people have contributed along the way:
- Johan Kristensen (large patch for moving from compiler.ast to ast, still on Python2)
- Shakeeb Alireza (extension module support for Python3, ported many examples, improved OSX support, and various code cleanups)
- Folkert van Heusden (some fixes on the C++ side, move to c++17)
- Jeremie Roquet, Thomas Spura, Paul Boddie and others who kept doing maintenance on the project in my absence
I started work on the port after realizing that Shed Skin was being removed from distributions, especially Debian, as it was still tied to Python2, and I really want to keep Shed Skin in a working state if possible.
So what about the future of the project? Not really sure, but I’m happy to sit down again in a few months to prepare a new release. Any feedback on what to support or improve would be very welcome!
For fun, here are screenshots of some of the Shed Skin example programs (in total 75 working example programs can be found on the github site):