6 ms·
I tried to pinpoint down some problems, but let me elaborate on this. As far as Parrot goes, it's not done despite years of development and it has lots and lots
by fijal 14y ago
I tried to pinpoint down some problems, but let me elaborate on this. As far as Parrot goes, it's not done despite years of development and it has lots and lots of problems, some with the approach, some with the actual implementation. But the truth is you can't do much with it today.
As for JVM, which is definitely "done", you don't get access to low level concepts and you don't get support for most dynamic language concepts. For example in Jython escape analysis does not work at all, because everything escapes via frames (which in python is accessable from application level using sys._getframe). Invokedynamic only helps marginally here - you still need a JIT that can optimistically remove unlikely paths of the execution or a very smart compiler-to-the-JVM, which is unnecessary in PyPy.
The other element is low level stuff. JVM is opaque, you can't code in terms of C structures. RPython as well, but it allows you if you insist and sometimes there are very good reasons to insist. Look in rpython/ directory in the hippy checkout for an implementation of an ordered dict with all it's oddities. In the JVM if such a primitive does not come (and it's unlikely enough), you're out of luck.