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.