runtime message parsing and the interface database

Gary Byers <[email protected]> Sun, 17 Dec 2006 18:29:00 -0700 (MST)
Newsgroups gmane.lisp.openmcl.bugs
Message-ID <[email protected]>
ObjC messages that're processed at runtime (via CCL::%SEND, rather than
via CCL::SEND) currently require access to the interface database.

MAKE-OBJC-INSTANCE (and ALLOCATE-INSTANCE of an ObjC class) use
CCL::%SEND to send an "init.." message, so if a standalone application
doesn't have access to the interface database MAKE-OBJC-INSTANCE and
MAKE-INSTANCE can fail.  I think that this is true of the OpenMCL.app
demo: if it's moved in the filesystem and can't find its interface
db, things can fail.)

(One way to "fix" this would be to enumerate all declared "init ..."
messages from the databases at application build time.)

I'm not 100% sure that all uses if %SEND are in ALLOCATE-INSTANCE
or MAKE-OBJC-INSTANCE, but it should probably be deprecated.