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

Sun Common Lisp 2.1.3 pcl problem

re: So what should I used for *redefinition-action*?  system:: or
    lucid-common-lisp:: ??

Neither.  This is precisely one of those places that I (reluctantly)
advise the use of lucid::.  One alternative is to write:
    #+LCL3.0 lcl:*redefinition-action*
    #-LCL3.0 sys:*redefinition-action*
but it's messier and longer.  Another alternative is to import the 
symbol into the PCL package by, say, the "defsys" file so that it doesn't 
have to be written out in colon-qualified form (but I understand the 
difficulties that brings in too).

The problem is that *REDEFINITION-ACTION* was ill-advisedly put into the 
SYSTEM package in the 1.0 and 2.0 releases; and not until the 3.0 release 
did we have a "home" for Lucid extensions (namely the LUCID-COMMON-LISP
package).  So source code that must be portable to both the Lucid pre-3.0 
and post-3.0 versions needs to take one of the above protective actions on 
references to symbols that migrated from SYSTEM to LUCID-COMMON-LISP.

In fact, the differences between releases might imply that you should have
separate "lucid-low" files -- one for pre-3.0 and one for post-3.0.   But
unfortunately, not all the Lucid-spcific references are in that file; I've
noticed quite a bit of #+/#-'ing in several PCL files.

-- JonL --