One of the design goals for my runtime was to provide a superset of
the functionality required for Objective-C 2.0. It was also designed
with the aim of future integration with LLVM (and has a compatible
license) since it supports a few optimisations that are tricky with
GCC. My current goals are to implement GNU libobjc support in LLVM
that is binary-compatible with the current GCC version and then add
support for the Étoilé with the new features. I will then port the
parts of GNUstep that are runtime-specific over to the Étoilé runtime
and people can choose whether to stick with the backwards-compatible
one or move to the new break-the-world one (or build fat bundles with
both).
I started looking at the GNU runtime, and added a few bits to it
before deciding that it would be more effort to fix it than to write a
new one from scratch. Considering that my runtime is 15% of the code
size and vastly more expressive than the GNU runtime, I think the GNU
one is something of a dead end. It's worth supporting for backwards
compatibility, but not worth the time and effort it would take to
modernise it.
Having looked at the LLVM and GNU code, I think it is clear that LLVM
is the way forward. Even though it's written in a language I detest,
and GCC is written in one I spend a lot of my time using, I would
still rather hack on LLVM.
David
On 28 Feb 2008, at 22:11, Gregory John Casamento wrote:
All,
I've been looking into this issue recently too. Apple, apparently,
has GPLv3 issues with further contributions to gcc. Until those are
resolved, if they ever are. It seems like we have two options:
1) port what has already been done on ObjC2.0 from the apple branch
to the latest branch and update the GNU runtime OR
2) seriously start looking into LLVM support for GNUstep.
Both are interesting options, but #2 has the advantage of tracking
more closely with Apple's changes since they will be directly
involved.
I will talk to the GCC maintainers and/or RMS regarding libobjc's
license, but I'm not sure I hold out much hope of it being changed
because at the time the library was written the LGPL existed and I'm
presuming it was done this way for a reason.
Sincerely, GJC
--
Gregory Casamento -- Principal Consultant - OLC, Inc
# GNUstep Chief Maintainer
----- Original Message ----
From: David Chisnall <[EMAIL PROTECTED]>
To: Discuss-gnustep GNUstep <[email protected]>
Cc: Discussion list for Étoilé desktop [EMAIL PROTECTED]; t <[EMAIL PROTECTED]
>
Sent: Thursday, February 28, 2008 10:40:16 AM
Subject: LLVM
Hi Everyone,
For those of you who don't follow the LLVM lists (presumably almost
everyone), I thought I'd mention that I've started working on code
generation for clang. I think this is important for the future of
GNUstep since Apple are likely to switch to switch to using clang/llvm
instead of GCC in the relatively near future (they use LLVM for
shaders and clang for syntax highlighting in XCode 3).
If anyone else is interested in helping out, let me know. I plan on
getting the GNU runtime working first, then my runtime (which was
designed with LLVM in mind, and can do some shiny optimisations I
shamelessly stole from the Self team).
If not, then hopefully there will be some builds for people to start
testing soon.
One issue has arisen, however. The GNU libobjc is GPL'd and has an
exemption, however this only applies to code compiled with GCC. Does
anyone know if we could persuade the FSF to either change it to LGPL,
or generalise the exemption to allow other compilers? (My runtime is
BSDL, so this does not arise)
David
_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep
_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep