Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re^3: Perl 5 Optimizing Compiler, Part 2

by chromatic (Archbishop)
on Aug 18, 2012 at 02:32 UTC ( #988132=note: print w/replies, xml ) Need Help??

in reply to Re^2: Perl 5 Optimizing Compiler, Part 2
in thread Perl 5 Optimizing Compiler, Part 2

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.)

  • Comment on Re^3: Perl 5 Optimizing Compiler, Part 2

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://988132]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2017-05-25 10:18 GMT
Find Nodes?
    Voting Booth?