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!
~ Will the Chill
Re^8: Perl 5 Optimizing Compiler, Part 9: RPerl.org & The Low-Magic Perl Commandments
Replies are listed 'Best First'.
You are correct in your assessment that no-magic args (data) passed to a low-magic subroutine (operation) will run faster under RPerl, and magic args passed to a low-magic subroutine will fall back to run slowly and correctly.
When I said "any not-low-magic code", that is in fact what I meant. I was making a general statement that RPerl will fall back to slow high-magic mode whenever any magic data OR magic operations are encountered. Args to subs count as data, the subs count as ops, and any builtins or sub calls inside the sub also count as ops. We're currently extending the use of the term "magic" to include both magic data and ops that do magical'ish things. (See previous comments in this thread about use of the term.) Sorry for any confusion.
If you wonder what counts as "magic" operations, look at The Low-Magic Perl Commandments under the "Operations" section.