> I thought the point of the discussion was turning off the GC until such time
> that it was ready to go.  I know what it *does* - what should it *do*?
>
> {Rest of the comments snipped.}

I don't know quite what you mean by what 'should it *do*'? *do*, as in
what it should do with my patch? Or *do*, as in do what dan thinks it
should?  Or something else? As such, below is just me rehashing what I've
said before, but hopefully in a clearer manner.

My patch *did* turn off the GC until it was ready to go. Dan said that
this wasn't necessary, since GC_DEBUG was the case that caused dod and
collection runs to occur during initialization. My response was to point
out that we're currently 'lucky' that we have enough memory to complete
the interpreter initialization. Magic numbers, as 32768 happens to be
bigger than 3 arenas of 1024. If/as more stuff starts occuring during
initialization, we might overflow our magic number 32768 and cause
problems.

You stated (at least my interpretation of what you stated was) that if we
can't provide enough memory to startup without causing a collection run,
we shouldn't bother starting up at all. If we didn't have enough memory to
start up, then I'd agree with you. But, since we give out requests from
whatever we initially allocate, THEN do a collection run, and THEN
allocate more, it's perfectly possible to request more memory than we have
allocated at the time, and Parrot *should* go and get more. Currently, if
this situation happens during initialization, Parrot will crash.

Mike Lambert


Reply via email to