You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Modern clang compilers targeting the Apple runtime (sorry, I don't know since which version exactly, except that Catalina 10.15 behaves like this) expect IMPs to be called in a type-safe fashion. The type is defined as void (*IMP)(void) and to use one, you have to cast it to e.g. id (*valueForKeyIMP)(id, SEL, id) or whatever type you need.
The uses of IMP caching throughout GDL2, both through static inline functions and compiler macros, thus cannot be compiled on macOS. I'd be happy to submit a PR, but having realised how big a yak to shave this is, wanted to discuss three possible implementations and see which is preferred:
remove all the IMP caching. If you know that there's a current use case for GDL2 where going through the ObjC runtime is too slow then of course this is a non-starter.
Modern clang compilers targeting the Apple runtime (sorry, I don't know since which version exactly, except that Catalina 10.15 behaves like this) expect IMPs to be called in a type-safe fashion. The type is defined as
void (*IMP)(void)
and to use one, you have to cast it to e.g.id (*valueForKeyIMP)(id, SEL, id)
or whatever type you need.The uses of IMP caching throughout GDL2, both through static inline functions and compiler macros, thus cannot be compiled on macOS. I'd be happy to submit a PR, but having realised how big a yak to shave this is, wanted to discuss three possible implementations and see which is preferred:
The text was updated successfully, but these errors were encountered: