gnustep / libobjc2

Objective-C runtime library intended for use with Clang.
http://www.gnustep.org/
MIT License
441 stars 119 forks source link

Don't rely on load order for built-in classes. #294

Closed davidchisnall closed 4 weeks ago

davidchisnall commented 5 months ago

Generate these classes using the structures that the runtime expects internally, rather than relying on the Objective-C compiler. This change means that they can always be the latest version, even if the runtime is compiled with an older compiler, and ensures that the Protocol class is always available, independent of global constructor ordering between libraries.

Fixes #283

davidchisnall commented 5 months ago

CI is failing for Windows 2022 because GitHub broke the Windows 2022 images.

hmelder commented 4 weeks ago

Other than that, it looks good to me. It's a great idea to pre-generate the structures :)