Johnny Billquist <b...@softjar.se> 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