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

problem with (CAR NIL) = NIL

The reason I don't like (CAR NIL) = NIL is that it causes many program
errors to be undetected.  I always prefered to have NIL set up so
that attempts to follow its CAR or CDR resulted in illegal memory
references.  It is easy enough to make the CAR and CDR be NIL on
most machines.  It just requires monkeying around with the
representations so that this falls out.  E.g. on the DEC-20,
NIL is 0, and we arrange that locations 0 and 1 always contain
0.  This requires some care, and functions that access property
lists must check specifically for NIL, but we don't think anyone
notices a performance change due to this hack.  What they do notice
is that buggy programs take longer to debug than they should.