[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: David Chisnall
Subject: Re: LLVM
Date: Fri, 29 Feb 2008 00:46:46 +0000

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.


On 28 Feb 2008, at 22:11, Gregory John Casamento wrote:


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 <address@hidden>
To: Discuss-gnustep GNUstep <address@hidden>
Cc: Discussion list for Étoilé desktop address@hidden; t <address@hidden >
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)


Discuss-gnustep mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]