Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^5: Perl 5 Optimizing Compiler, Part 9: RPerl.org & The Low-Magic Perl Commandments

by Jenda (Abbot)
on Nov 12, 2013 at 08:19 UTC ( [id://1062145]=note: print w/replies, xml ) Need Help??


in reply to Re^4: Perl 5 Optimizing Compiler, Part 9: RPerl.org & The Low-Magic Perl Commandments
in thread Perl 5 Optimizing Compiler, Part 9: RPerl.org & The Low-Magic Perl Commandments

No it doesn't. The point is that you can't compile a piece of code without magic, because the magic may come from the outside. So even if YOU do follow all those commandments, someone else might not. The result is that even if you do follow all those commandments to the letter, the amount of code that may be safely compiled in a no-magic mode is gonna be fairly small.

Jenda
Enoch was right!
Enjoy the last years of Rome.

  • Comment on Re^5: Perl 5 Optimizing Compiler, Part 9: RPerl.org & The Low-Magic Perl Commandments

Replies are listed 'Best First'.
Re^6: Perl 5 Optimizing Compiler, Part 9: RPerl.org & The Low-Magic Perl Commandments
by Will_the_Chill (Pilgrim) on Nov 12, 2013 at 09:28 UTC
    Hi Jenda,

    Thanks for your reply! You're right about the amount of pre-existing low-magic Perl code, as we are now getting started with RPerl there is not much low-magic code already out there. The RPerl team will provide common shared libraries and algorithms, and we'll also work to de-magicify some important CPAN modules as well.

    Perhaps the most important part of this concern is already clearly codified in The Low-Magic Perl Commandments. We are directed to populate CPAN with low-magic Perl code:

    LMPC #10. Thou Shalt Use & Contribute To Low-Magic Pure-Perl CPAN Code

    If you are passing magical things into RPerl code, then you're breaking the rules:

    LMPC #11. Thou Shalt Not Use XS, High-Magic Perl, Or High-Magic CPAN Code, Except During Official Emergencies PBP 228 Conflict

    So feel free to mix high-magic and low-magic code in the same program, just don't try to pass high-magic things into the low-magic parts of the program. RPerl will (at least) just throw away the magic or (at most) tell you that you are wrong, and you will be unhappy.

    Does that answer your questions?

    Thanks,
    ~ Will
      RPerl will (at least) just throw away the magic or (at most) tell you that you are wrong

      Is it not possible to just fallback to the "slow" perl interpreter when magic is detected?

        salva,

        You are correct! The default behavior will be for RPerl to fall back to normal high-magic mode if any not-low-magic code is encountered. I should've been more clear, what I was describing was an attempt to force RPerl to accept high-magic code, resulting in losing magic and/or errors.

        Thanks for pointing that out!

        Perling,
        ~ Will the Chill

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-04-26 01:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found