Build problem? constant literal lists?



On 5/4/07, Rainer Joswig <joswig at lisp.de> wrote:
>
> Maxima 5.12.0
>
> While we are at it, has anybody checked whether the
> use of constant lists is safe in Maxima?
>

I don't believe this should be a problem, and it has always been considered
poor style to modify constant lists.

If I remember correctly, the compiler of the MacLisp implementation under
which Maxima was originally implemented canonicalized all constant lists,
not only defvar's but inline constant structures, so that (eq '(a b) '(a b))
would be true (but was not guarateed to be true).  I am not sure whether
this was done when generating binary (fasl) files or when loading binary
files, so I am not sure if they were unique across all loaded units, or just
within a given compilation unit.

So this is reason to believe that we do not have this problem.

Do you have any reason to believe that we *do* have this problem?

Is there a Lisp implementation that can detect this at runtime (detecting it
statically is in general impossible of course)?  Of course, there's no
guarantee that any particular set of tests would exercise the bad cases.

           -s