Skip to content
Snippets Groups Projects
Commit 1af400f8 authored by pw's avatar pw
Browse files

This set of changes enables the use of forward referenced classes in PCL.

The problem was(is) that the wrapper object needed to connect the Lisp
type system to PCL classes doesn't exist until the forward-referenced-class
is defined. At that time all the subclasses of it are initialized and
wrappers attached. In the meantime, the actual forward referenced class is
an instance of pcl::forward-referenced-class and any subclasses are
pcl class instances with most slots nil.

The fix herein arranges for UPDATE-LISP-CLASS-LAYOUT to also set
the lisp:class-name and use (setf lisp:find-class) to connect the
new layout to the Lisp class system.

An undesired consequence of this is that DEFCLASS can't return a valid
class object unless all superclasses are defined. This shouldn't be a
real problem as the classes can't be used in the intermediate state,
but the HyperSpec says DEFCLASS returns a class object. We return
a valid class object or NIL.
parent e3f44e41
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment