Ticket #768 (closed defect: fixed)
ObjC instance initialization failures
|Reported by:||gb||Owned by:|
Several people have reported ( http://clozure.com/pipermail/openmcl-devel/2010-October/012207.html) that the IDE can fail to start properly; one symptom is that creation of the initial listener can fail with a message to the effect that a Hemlock buffer named "Untitled" already exists.
This seems to be caused by the fact that an earlier attempt to create a listener fails (after the "Untitled" Hemlock buffer is created) because some instances of some hybrid objects (HEMLOCK-TEXT-STORAGE and friends) aren't properly initialized, which in turn seems to be due to the fact that the hash table which maps ObjC classes to sets of init keywords has been an EQL hash table; if foreign addresses of classes change, there's a good chance that classes won't be found in that table and their instances won't be correctly initialized.
We canonicalize ObjC class pointers and preserve them across sessions. *CLASS-INIT-KEYWORDS* should hash on identity, not foreign address.
This should be fixed in a minute. It was introduced in the trunk in r14263.