tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NULL pointer arithmetic issues



Johnny Billquist <bqt%softjar.se@localhost> writes:

> But yes, on the PDP11 [having nothing mapped at address 0] was/is not
> the case. Memory space is too precious to allow some of it to be
> wasted for this...

Yup - and I assume the "hack" Kamil alludes to is the practice of
actually starting the data segment for split I/D programs at address 1
instead of 0, to make sure that no actual pointer is 0, thus allowing
the straightforward comparison of a pointer with 0 to see if it's set.

(I believe they also initialized address 0 to 0, to stop indirect
references through it from reaching random data.  I guess Franz may have
depended on this in some way, e.g. expecting to be able to test *p
directly, instead of first p and then *p.  Do enough of this, and you've
soon bummed a significant amount of valuable code space...)

-tih
-- 
Most people who graduate with CS degrees don't understand the significance
of Lisp.  Lisp is the most important idea in computer science.  --Alan Kay


Home | Main Index | Thread Index | Old Index