[Openmcl-devel] Application bundles and the interface database
Tord Kallqvist Romstad
romstad at math.uio.no
Fri Oct 28 11:45:18 EDT 2005
Gary Byers <gb at clozure.com> writes:
> On Fri, 28 Oct 2005, Tord Kallqvist Romstad wrote:
> > When running the iMac-compiled bundle on the Cube, (FIND-CLASS
> > 'NS:+NS-OBJECT+) evaluates to:
> > #<OBJC:OBJC-METACLASS NS:+NS-OBJECT (#xA28876FC)>
> > while the error message reads:
> >> Error: Class #<A Mac Pointer #xA28816FC> isn't recognized.
> >> While executing: CANONICALIZE-REGISTERED-METACLASS
> > When trying to run the Cube-compiled bundle on the iMac, I get exactly
> > the opposite:
> > #<OBJC:OBJC-METACLASS NS:+NS-OBJECT (#xA28816FC)>
> That's certainly suspicious. As far as I know, #xA28816FC isn't
> a class or metaclass object address in 10.4.2, and NS:+NS-OBJECT
> seems to have addres #xA28876FC.
Are you sure this depends only on the OS version, and cannot vary
between different Macs running the same OS version? It seems to me
that the addresses are not the same on my two Macs. I tried to start
a fresh OpenMCL session from the command line and did a
(REQUIRE "COCOA") followed by (FIND-CLASS 'NS:+NS-OBJECT) on both
machines. My iMac returns
#<OBJC:OBJC-METACLASS NS:+NS-OBJECT (#xA28876FC)>
while the old G4 Cube returns
#<OBJC:OBJC-METACLASS NS:+NS-OBJECT (#xA28816FC)>
> To try to explain what's (generally) going on here:
(Very instructive explanation snipped)
> I'm not sure it it'd tell us anything, but if you do (in a dfsl file,
> before you get the error)
> (ccl::map-splay-tree (ccl::objc-metaclass-map)
> #'(lambda (id) (print (ccl::id->objc-metaclass id))))
> you should get around 300 lines of output, showing the "canonical"
> ObjC metaclass pointers, sorted by address. There shouldn't be any
> duplicate class name or duplicate addresses in the printed output,
> and the class NS:+NS-OBJECT should be in there.
> I'm not sure that it's of general interest, but I'd be interested
> in seeing that output.
I've done this on both machines, and will send you the results by
More information about the Openmcl-devel