Dan Sugalski wrote:

looked. For this to be reasonable we need:

1) A stack chunk freelist, akin to the PMC and buffer freelists

Well, that did I write in my message. Please read it (again). And please one thing and then the next.



2) The stack entry has to look something like:

   struct {
     struct IntStackFrame *prev;
     INTVAL Registers[REGSPERFRAME];
   } IntStackFrame;

It could be a union of INTVAL, NUMVAL, STRING *, and PMC * if we don't want to maintain several free lists. Throwing a flag word in there's probably not out of order either.

This fixed size item doesn't really work IMHO. NUMVAL frames are of different size, as are user-stack entries.



The indirection through the Buffer stuff has to go

Well in your last mail WRT that stuff you had PMCs there :) The Buffer stuff doesn't really hurt, when the chunks are coming directly from the free lists.


.. (Parrot_allocate really ought not ever be called for these fixed-sized structures, it's a huge waste)

They aren't fixed size--or only per stack kind, but with have more then one.


leo





Reply via email to