A vision for Parrot

Benjamin Goldberg goldbb2 at earthlink.net
Mon Nov 11 15:21:17 EST 2002


Darren New wrote:
> 
> Benjamin Goldberg wrote:
> > Why would any of these require that strings be eval()ed?
> >
> > You compile the string to bytecode, *once*, and pass this compiled
> > code as the callback for your keystrokes, window events, and async
> > file operations.  You wouldn't pass a string to be eval()ed -- that
> > would be silly.
> 
> Bindings substitute their values. File events get additional
> arguments. Etc.

So?  Pass these in as arguments.  There's no need to recompile a
procedure for each and every different set of arguments that might be
passed to it.  That would defeat the point of having procedures in the
first place.

> > Furthermore, even if one did do something that foolish, the compiler
> > needs to be loaded only once...
> 
> I missed your parenthetical comment on first reading. Yes, sorry.

Peculiar -- if I'd been reading someone else's description of it, and he
didn't say, "(if it's not already loaded)", I would have *assumed* that
it wouldn't be loaded if it already had been, *unless* he said something
to the contrary (like, "yes, I really do mean reload the compiler from
disk each and every time we eval() a string")

-- 
my $n = 2; print +(split //, 'e,4c3H r ktulrnsJ2tPaeh'
."\n1oa! er")[map $n = ($n * 24 + 30) % 31, (42) x 26]



More information about the Python-list mailing list