First, code->i doesn't exist anymore...it is back to being *code (much more
readable that way :)
Second, we are going to remove those safety checks on that version of runops
if I'm not mistaken, I just don't think anyone's gotten around to it yet.
-----Original Message-----
From: Simon Cozens
To: Dave Storrs
Cc: 'The Perl 6 Internals list '
Sent: 9/20/2001 12:53 AM
Subject: Re: question about branching/returning
On Wed, Sep 19, 2001 at 10:47:44PM -0700, Dave Storrs wrote:
> Well, I'm in the process of fiddling with this stuff anyway...what do
you
> want me to make it do?
Oh, sorry, I see what happens. The last test (code->i) is what I would
think
of as *code: it tests whether we're sitting on an end op, zero. The
"end"
function itself is probably never called.
But this still sucks:
while (code >= code_start && code < (code_start + code_size) &&
code->i) {
DO_OP(code, temp, func, interpreter);
}
Three tests and an addition each op. At the *very least*, we should
store
code_end = code_start + code_size. And at best...
DS> "The default dispatch loop shouldn't check. The Safe dispatch loop
(note the
DS> caps there... :) should check."
--
User: In 1793 the french king was executed.
MegaHAL: HA HA HA! CORRECT. ALTHOUGH, EXECUTED HAS MULTIPLE MEANINGS.