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

Simultaneous generational GC and error-check immutables?

I recently compiled CLISP from the latest source (in source-haible
directory), under Linux 1.1.54, following the instructions to enable
better error-checking of immutables.  (I assume I automatically got
generational garbage-collection.)

But the following sequence of forms gives no error message (return values 
omitted here):

> (defvar temp-string "Matson")
> (setf (char temp-string 0) #\W)

and now temp-string evals to "Watson".

A recent poster to this list inquired why evaluating the (setf ...)
produced an error -- my CLISP does _not_ produce the error, hence my

There seem to be three likely reasons for this behavior:
  (1)  I did something wrong in trying to enable immutable error-checking;
  (2)  I misunderstand what error-checking of immutables really means;
  (3)  Error-checking of immutables and generational GC can't be had at 
       the same time.  (This is suggested by the existence of two Linux 
       binaries in the binaries/linux directory ... Hmmmm ...)

Thanks for the enlightenment!

Mark A. Thomas