Making progress error-wise

ethan on 2004-02-12T09:18:27

There is a bug in perl that has been around for very long:



sub f { $_[0] = 1; $_[0] = "a"; $_[0] = *FOO } my @a; f($a[0]);



It is consensus among the porters that fixing it in a proper way will require a new internal type: an lvalue-type that is large enough to even hold a glob. Out of curiosity I tried to see whether I can possibly fix it. I now see an interesting evolution in my attempts.

In the unfixed state, you get Can't upgrade that kind of scalar.... After the first stage, I was able to shift the error to segmentation fault. I have now improved it to Out of memory!. :-)


think big

jhi on 2004-02-12T10:47:59

Maybe you can getthe whole system to reboot?
(Yes, that has been known to be possible with few innocuous lines of Perl.)

Re:think big

ethan on 2004-02-12T11:11:40

I haven't yet figured out how to do that. I guess that makes debugging a pleasure when - just before the usual backtrace would appear - your system reboots. Ah, what a bad luck. :-)

Meanwhile I was able to get rid of the out of memory thing (caused by a reidiculously high xlv_targlen value). After a while however you get to like such errors. Now I no longer get any errors but instead always get undef after assigning the glob. This is much harder to track down as I wont get any nice backtracks.

Btw, Jarkko, you seem to have taken a break from the porters lately. Making holidays? How irresponsible that would be of you considering that others now have to do all the work! ;-)

Re:think big

jhi on 2004-02-12T21:04:39

> I haven't yet figured out how to do that.

That reboot was very system specific, take a look at README.irix.

> Btw, Jarkko, you seem to have taken a break from the porters
> lately. Making holidays?

More like retirement.

> How irresponsible that would be of you considering that others now have to do all the work! ;-)

I have to let others to have fun, too.