[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GSObjCRuntime / GDL / GSWeb
From: |
David Chisnall |
Subject: |
Re: GSObjCRuntime / GDL / GSWeb |
Date: |
Sat, 10 Apr 2010 16:54:16 +0100 |
On 10 Apr 2010, at 16:36, Manuel Guesdon wrote:
> About GSObjCRuntime, my main questions are
> - what will be broken
Richard can answer this better than I can, (this time it wasn't my fault!) but
in general, only things that are duplicated functionality are being removed.
GSObjCRuntime had two purposes:
1) Abstracting the details of the runtime data structures from the programmer.
2) Providing things like mixins that are not part of the core Objective-C
object model.
Nothing in category 2 is going away. Things in category 1 are, because we now
have a more portable abstraction layer. Apple now ships two Objective-C
runtimes. With their Modern runtime, the internal data structures are all
private and everything must be done via function calls. To make compatibility
easier, they ported these APIs back to their Legacy runtime, so you can use
them with both runtimes.
I implemented these APIs on top of the GNU runtime to make life easier for
Étoilé, and this version is now part of -base. These APIs are also now the
official public interface for libobjc2, which means that every shipping runtime
supports them.
It therefore no longer makes sense to have this functionality duplicated in
GSObjCRuntime. You can either use the Apple APIs, which work everywhere, or
the GSObjCRuntime APIs, which only work if you have GS Additions installed.
> - what in these broken features are really used
No idea.
> - is there a clean way to make these used features working again
Yes, most of the removed functionality has direct equivalents in the new API.
We could reimplement the old APIs as wrappers around the new ones if required.
It would be better for user code to be updated to use the new APIs, but if this
is a problem then I can reimplement any of the required functions before the
next release if someone gives me a list of the ones that are needed.
David
--
This email complies with ISO 3103