>>>>> "mr" == Matthias Rinck <[EMAIL PROTECTED]> writes:

  mr> Structure for accessor FOO-ONE is not a FOO:

  mr> What do you think about this?

indeed, this seems to be a bug in CMUCL. I haven't figured out how to
fix it, but the problem seems to come from the behaviour of
structure-constructors depending on whether they are executed at the
toplevel or not: newly created instances don't have the right layout
when the DEFSTRUCT form isn't at the toplevel. There are probably some
EVAL-WHENs missing in the defstruct code.

If you are really needing to redefine structures (I think that the
consequences of doing so are implementation-dependent, according to
CLtS), and you can't use CLOS instances, and you don't want to use the
default behaviour for structure redefinition (ie use the CONTINUE
restart), you can work around this problem either by using structures
of type list or vector, or by recompiling your constructor after
having redefined the structure. I haven't tested, but defining your
own constructor might be another way of avoiding the problem.
  
-- 
Eric Marsden                          <URL:http://www.laas.fr/~emarsden/>

Reply via email to