[Openmcl-devel] Trying to use AddressBook

Gary Byers gb at clozure.com
Wed Nov 2 20:30:27 PST 2005


I'm not sure that the WebKit example is doing the right thing.  It seems
to be getting away with it.

In your derived AddressBook code, just before calling

(ccl::map-objc-classes)

insert a call to

(ccl::reset-objc-class-count)

The function CCL::MAP-OBJC-CLASSES asks the ObjC runtime to enumerate
all of the ObjC classes that it knows about; for each previously
unknown class, it checks to see if the interfaces describe that class
and, if so, creates CLOS metainformation based on that description.
I'm not sure that the runtime necessarily enumerates the classes
in a well-defined order (e.g., if there were 400 known classes and
we load a library that defines another 20 classes, it's not necessarily
the case that the last 20 classes to be enumerated will be the new
ones ...)

This is further evidence that there should be functions like
LOAD-OBJC-FRAMEWORK and/or LOAD-OBJC-LIBRARY that do whatever obscure
things need to be done to ensure that CLOS learns about the classes
and methods defined in the library.


On Wed, 2 Nov 2005, Ralph Richard Cook wrote:

> It appears I spoke too soon.
>
> I made the changes and got the cdb's, and made my own boilerplate for 
> AddressBook similar to WebKit, but I'm having trouble finding the 
> corresponding class for ABAddressBook. I've tried ccl::ab-address-book, 
> ns::ab-address-book, ab-address-book, but it's not found.
>
>
> On Oct 29, 2005, at 1:10 PM, Gary Byers wrote:
>
>> It's a bug.
>> 
>> The short version is that hash-tables with a (non-standard) :TEST
>> function of #'STRING= don't work. (I'm not sure about other non-standard
>> test functions.)
>> 
>
>



More information about the Openmcl-devel mailing list