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

Reply via email to