[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
- To: (BUG LISPM) at MIT-AI
- Subject:
- From: MMCM@MIT-AI
- Date: Sun ,3 Sep 79 07:26:00 EDT
Band 6 on CADR1 is a new experimental world load.
In addition to quite a few accumulated changes, this load
has some important changes to the message passing stuff.
CLASS-CLASS now has three instance variables where formerly
it had two. Most importantly, instead of the SELECT-METHOD
being in the function cell of the xxx-CLASS symbol (typically) there is now a
gensym (called the CLASS-METHOD-SYMBOL) created for each instance
of CLASS-CLASS which holds the select-method. The CLASS-METHOD-SYMBOL
for a given class can be obtained by sending the class a :CLASS-METHOD-SYMBOL
message.
A forthcomming essay will describe the motovation for doing this,
etc. For the present, I note some incompatibilities and changes to
operating procedure which this makes necessary.
Incompatibilites:
(1) The <-AS macro has been changed, and any file which uses it
must be recompiled. If this is not done, the symptom will usually
be a xxx-CLASS undefined function error.
(2) Any other file which uses DEFMETHOD should eventually be recompiled.
There is a "bridge" which causes old files to win for the time being,
but this will eventually go away.
Since new QFASL files wont work in old loads, its probably a good
idea to rename your old QFASL files if you compile with the new load.
When you do a DEFCLASS, you always get a fresh class with no methods
defined. If you are redefining a class this means two things:
instances of the old class will continue to work
(this was not always true before. However, we still have the
problem that method names can conflict between new and old versions
of the class).
all the methods used by a class need to be reloaded for new instances of the
new class to win completely. Also subclasses of the given class
need to be reloaded.
Since reloading is a gross pain, you should not redo DEFCLASSes
unless you really mean it. Probably DEFCLASSes should be put in a
separate file so the rest of the file can be reprocessed without
redoing the DEFCLASS. Hopefully,
there will eventually exist system features to make this more convenient.