On Mon Feb 02 09:57:02 2009, doughera wrote: > On Mon, 2 Feb 2009, Andrew Whitworth via RT wrote: > > > On Sat Oct 06 05:46:09 2007, pcoch wrote: > > > In src/gc/register.c:clear_regs() there is the todo item: > > > > > > /* depending on -D40 we set int, num to garbage different garbage > > > * TODO remove this code for parrot 1.0 > > > > We do want to remove the current code from clear_regs(), but what do we > > want to change it to? The PMC and STRING registers obviously need to be > > nulled out for GC to avoid false positives. Do we need to clear the > > values of the INT and NUM registers too? If so, what values do we want > > them to have? Should we still use special flag values for -D40? > > There's a bit more history of this in [perl #38978] and [perl #39244] (and > some other old tickets too, but those are enough to give the idea). The > problem was that, on some compilers in some situations, the I and N > registered ended up as 0 even if they weren't explicitly initialized, and > various bits in the test suite worked accidentally because of that. (There > used to be conditional compilation mixed in there as well, just to make it > even more confusing.) > > Such bugs have long since been eradicated in the test suite, and nothing > developed in the past couple of years could rely on accidental > initialization. > > None of which answers your question. The original intent was that the > registers are not to be initialized, which would mean deleting the second > branch (with the 888's) but leaving the -D40 branch as a possible > debugging tool. >
Thanks for the info, Andy! I'll do some background research on those tickets you mentioned, and I'll deal with this issue after that. -- Andrew Whitworth a.k.a Whiteknight _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
