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

Re: Bugs found in MCL 2.0b1p2



> Initial conditions:
>  - There is a constant definition of the following form:
> 	(defconstant *xxx* '(nil))
>  - This constant is inserted into list structures, and used as a tag
> to indicate that the data following it has certain characteristics.
> 
> Later:
>  (after some processing) while traversing one of the list structures
> into which this value was inserted, the "(nil)" part of the list
> structure fails to be EQ to the (defined) constant (identifier).
> 
> The problem is completely reproducable within the (quite large)
> application where I encountered it, but I have been unable to
> reproduce the problem with any simpler code.
> 
> I have been able to work around the problem by changing the definition
> to the following form:
> 	(defconstant *xxx* '*xxx*)

I have received a number of responses along the lines of the
following from Paul Krueger (pkrueger@cray.com):

> If I had to make a guess I would say that your problem is not with the
> defconstant at all, but that somewhere along the line the list is being
> either explicitly or implicitly copied using something like copy-tree
> which copies at all levels.  As far as this function knows it is just
> copying a sublist when it is copying your constant and therefore makes
> a duplicate that is no longer eq.  Note that copying via copy-list
> should preserve the constant reference.  I can't guarantee that this
> is your problem, but you might look for something like this.

I have searched the code and traced copy-tree and related functions,
and have failed to find any place where the lists in question where
being modified or replaced after their initial creation.

If anyone wants to try to follow up on this any further, I can supply
the patches I've had to make to Matt Ginsberg's MVL code (anon ftp to
t.stanford.edu, in /mvl) to get it up under MCL 2.0b1p2.

George Williams
Boeing Computer Services   Internet: george@hsvaic.boeing.com
POBox 240002, M/S JY-58    UUCP: ...!uw-beaver!bcsaic!hsvaic!george
Huntsville AL 35824-6402   Phone: 205+464-4968 FAX: 205+464-4930 BTN: 464-4968