Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://988132]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2015-07-29 05:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls