laziness, impatience, and hubris | |
PerlMonks |
Re^3: Perl 5 Optimizing Compiler, Part 2by chromatic (Archbishop) |
on Aug 18, 2012 at 02:32 UTC ( [id://988132]=note: print w/replies, xml ) | Need Help?? |
Please correct me on this particular point. Here's a fun one: how do you ensure that the finalization semantics of Perl 5 (thanks to reference counting) are in effect on an RPython platform? How about operator types? Iterator aliasing? ... from what little I understand about Javascript it is a high-enough-level language to emulate Perl 5 to some degree. Does it support raw memory access, or do things that aren't hashes or floats have to be emulated with hashes and floats? JIT is only a real advantage when you can use things like type specialization and escape analysis to create straight-line code that can make a lot of assumptions because you've proven them. You have to get the boxing/unboxing semantics right, and you have to have a deep understanding of the memory model of the target and of the hosted language. (The same laws of physics apply when porting an existing language to a different VM. If you get dramatic speed improvements on all but a few benchmarks, it's a sign that the prior VM was pretty poor, not that JIT magic unicorn-flavored candy.)
In Section
Seekers of Perl Wisdom
|
|