Quentin: This was the category loading problem that you saw. It was dependent upon load order, so was difficult to reproduce, however a Smalltalk category on NSString overriding a method from NSObject demonstrated it (because GSString was always initialized by the time Smalltalk code is loaded because LKCompiler use it, but not by the time ObjC code is loaded).
- Now only one thread may be in any +initialize method at once.
- Not yet implemented for the new ABI lookup function.
The first I don't see as a limitation; if anything having +initialize methods
be guaranteed not to run concurrently may be convenient. The second I will fix
soon.