Add GraalPython to the list of Python implementations
https://github.com/graalvm/graalpython https://www.python.org/download/alternatives/ GraalPython is an implementation on the Truffle VM, by Oracle Labs. The Truffle VM gives Python high-performance interoperability with other languages- including JVM, LLVM, Ruby, and JavaScript. The Truffle VM is an "AST Interpreter," which I think means that it executes an interpreter over AST nodes, then compiles and inlines those nodes to machine code as necessary. By default, Truffle VM with the Graal JIT enabled. The Graal JIT compiles the AST down to machine code. My personal experiences with the Truffle JavaScript show that it uses significantly more memory than V8, while having lower performance on pure JavaScript. This might be different for GraalPython, however. Converting a JavaScript data structure into a C struct allowed computation-intensive JavaScript code to use ~30% less cpu power. I don't really know if this is already possible in Python through Python's built-in C extensions. (Since CPython still has to go through its normal dot attribute lookup machinery, I'd imagine the performance benefits of converting a Python class to a C struct would be little.) TL;DR: GraalPython is a Python implementation with a JIT, an easy way to add C extensions, and an easily extensible AST interpreter.
On Fri, May 24, 2019 at 6:01 AM James Lu <jamtlu@gmail.com> wrote:
https://github.com/graalvm/graalpython https://www.python.org/download/alternatives/
GraalPython is an implementation on the Truffle VM, by Oracle Labs. The Truffle VM gives Python high-performance interoperability with other languages- including JVM, LLVM, Ruby, and JavaScript. The Truffle VM is an "AST Interpreter," which I think means that it executes an interpreter over AST nodes, then compiles and inlines those nodes to machine code as necessary.
From the opening of the GitHub repo's README: "This is an early-stage experimental implementation of Python."
The page on python.org links only to a small number of popular and complete implementations of the language. Rather than seeking a listing there, may I suggest the Python wiki instead? https://wiki.python.org/moin/PythonImplementations You can edit that page yourself (check the instructions if you don't currently have permissions) to add the listing. ChrisA
participants (2)
-
Chris Angelico
-
James Lu