|Pyston 0.2 Python Compiler|
|Written by Alex Denham|
|Friday, 19 September 2014|
There’s a new release of Pyston, the high-performance Python implementation developed by cloud storage provider Dropbox.
Pyston was made available in an initial open-source version earlier in the year, consisting of a JIT-based Python implementation built on the LLVM compiler stack.
While the original 0.1 release was fast, it lacked a number of language features. Many of these have been added to the new version.
Discussing the new release in a post on the Pyston blog, the developers say that while Pyston 0.2 is still very much a work in progress, it has much-improved language compatibility, and is able to run many of the standard libraries — and some standard extension modules — without modifications.
One of the main improvements is the addition of a native C API. This is described as still a work in progress, but it does natively provide a subset of the CPython API and run existing extension modules with a recompile.
Multi-threading support has also been added. The blog post says the developers currently use a GIL to protect threaded code. While inelegant, it is simple and efficient when there is only a single thread.
"We have an experimental configuration option to use a read-write-lock variant, which removes the GIL and allows multiple threads to use multiple cores, but the potential parallelism is highly limited by the semantics of the C API."
Other improvements include support for exceptions, inheritance and meta-classes, but there are also many features missing (such as finalizers, unicode, and C API exceptions).
Going forward, the goal for the next version is to improve performance. While the 0.1 release showed the ability to produce high performance code using LLVM, running real benchmarks has shown that the performance is being held back by the product’s simple garbage collector and naive SSA-transform implementation. These are areas that will be improved, along with the addition of a new tiering framework. This will enable more advanced type speculation, and will also support Python’s advanced frame introspection features.
The new version should still be considered in early alpha, according to the developers. More details are available on the blog post.
Dropbox and Pyston are part of the trend for service providers like Facebook to implement their own language subsystems in an effort to improve performance.
To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin, or sign up for our weekly newsletter.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Friday, 19 September 2014 )|