in reply to Re^3: 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
Hi Jenda,
My only use of old English is The Book Of RPerl, and perhaps to a trivial degree the use of "thou shalt" and "thou shalt not" in The Low-Magic Perl Commandments. Just for you, just in this post, I'll replace "Thou Shalt Not" with "DON'T". :-)
To address your concerns, globals are not allowed and tied variables are not allowed.
LMPC #17. DON'T Use Dynamic-Type Data, Auto-Vivification, Or Tied Variables
LMPC #19. DON'T Use Private Dynamic-Scope (“local”), Private Persistent Lexical-Scope (“state”), Global, Or Package Variables (“our”)
Does that answer your questions?
Thanks,
~ Will
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
|
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.
| [reply] |
|
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
| [reply] |
|
| [reply] |
|
|
|
|