ALLOCATE-INSTANCEALLOCATE-INSTANCE was accidentally omitted from 88-002R.ALLOCATE-INSTANCE that takes one required argument, a class, plus initialization arguments, and returns one value, a freshly created instance of the given class. The class argument must be an actual class, not a class name, and must not be a built-in class.
The object returned by ALLOCATE-INSTANCE is "uninitialized"; when the class is a standard class, this means the slots are unbound; when the class is a structure class, this means the slots' values are unspecified.
Common Lisp does not specify how to add methods to ALLOCATE-INSTANCE; this capability might be added by the Metaobject Protocol.
This is Symbolics issue #32 and Loosemore's issue #6 of 27 Feb 90.
(DEFCLASS MYCLASS () (A B C)) (ALLOCATE-INSTANCE (FIND-CLASS 'MYCLASS)) (SLOT-BOUNDP * 'B) => NIL
ALLOCATE-INSTANCE was simply a mistake. Note that LOAD-OBJECTS:MAKE-LOAD-FORM assumes the existence of ALLOCATE-INSTANCE and that user-written MAKE-LOAD-FORM methods that return two values will typically use ALLOCATE-INSTANCE in the first value.ALLOCATE-INSTANCE (although it does exist in an internal package). Lucid 4.0.0 Beta-1 provides ALLOCATE-INSTANCE.CLOS implementation needs ALLOCATE-INSTANCE or something like it internally, so implementing this proposal is largely a matter of exporting the symbol from the COMMON-LISP package and documenting it.MAKE-LOAD-FORM would be considerably less useful.COMMON-LISP package.CLOS provided.