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


Hold on a second.  At least on proposed solution to this problem
doesn't involve any noticeable changes in GENSYM at all.  That is the
one where we fix FASDUMP/FASLOAD to respect the non-interned nature of
gensyms.  Now it may be that this is hard in MacLisp for some reason,
but I haven't heard that reason yet.  It also might be unacceptable
for some reason, but the only objection I have heard so far is that
you can fix FASDUMP/FASLOAD but you cannot fix READ/PRINT which
doesn't strike me as a signifigant argument given the nature of the

To carry out this plan involves:

1) Extending FASL file format to cover non-interned symbols.  I don't know
if FASL file format is "used up" in any way that would prevent this.

2) Providing some easy way to recognize a gensym at FASDUMP time.  (On
the Lisp Machine this is easy because of the package cell.)  Looking
in the obarray for each symbol dumped might be acceptable, but it
might be incorrect if the user is doing something funny with obarrays.
(It also might be slow?  Takes no longer than it does to intern...
Note that you can compute the sxhash of a gensym reliably quickly!).
Perhaps there is some clever way to have gensym "brand" each symbol it
creates?  A magic property is out due to reasons already noted by KMP,
but perhaps some other hack?  (Any symbol with a one-fixnum pname is a
good candidate to be a gensym!)

Perhaps whatever gensym does along these lines maknam should do too?

Before we go off extending the language some more, I would like to
hear some reasons why this cannot be treated as a (fixable) bug in the
current language.