Jeff Clites <[EMAIL PROTECTED]> wrote: > On Oct 17, 2004, at 3:18 AM, Leopold Toetsch wrote:
>> Nethertheless we have to create managed objects (a Packfile PMC) so >> that we can recycle unused eval-segments. > True, and some eval-segments are "done" as soon as they run (eval "3 + > 4"), whereas others may result in code which needs to stay around (eval > "sub {....}"), and even in the latter case not _all_ of the code > generated in the eval would need to stay around. It seems that it may > be hard to determine what can be recycled, and when. Well, not really. As long as you have a reference to the code piece, it's alive. >> And we have to protect the packfile dictionary with mutexes, when this >> managing structure changes i.e. when new segments gets chained into >> this list or when they get destroyed. > Yes, though it's not clear to me if all eval-segments will need to go > into a globally-accessible dictionary. (e.g., it seems the "3 + 4" case > above would not.) It probably depends on the generated code. If this code creates globals (e.g. Sub PMCs) it ought to stay around. [ toss constant op variations ] > For PIR yes, but the PASM assembler can't know for sure what register > would be safe to use--the code could be using its own obscure calling > conventions. PASM would need rewriting to only use the available ops, basically. > JEff leo