Objective-CL

Quick links:

Introduction

Objective-CL is an Objective-C bridge that strives to be
portable both across Common Lisp implementations and operating systems.
Currently, it has been confirmed to work under Mac OS X/Cocoa/PowerPC
and Linux/GNUstep/x86,
but it is expected to work on many more
platforms without major changes. (Testers welcome!)

Objective-CL 0.1.1 released.
This release features the following changes:

GNU CLISP and Clozure
CL compatibility.

A certain degree of CLOS
integration: Objective-C classes are mapped to
CLOS classes. The same is true for metaclasses. Still no defining new
classes, though.

What
happened to version 0.1.0, you ask? That one was a bit buggy, so it was
never released. The Darcs tag still exists, though, so if you think
you're not going to get any sleep after upgrading to Objective-CL 0.1.1
without having gone through 0.1.0 before, you can fetch it from the
repository (see the download section below).

Objective-CL
0.0.3 released.
This release avoids building our own version of libffi if one can be
found installed on the system. This is possibly important for
compatibility with Mac OS X 10.5, which according to The Web includes its
own version of libffi, (hopefully) guaranteed to be
up-to-date and maximally compatible with the system it runs on.

Objective-CL
0.0.1 released — and it's ASDF-installable. Simply
hack the following into your REPL: (asdf-install:install
:objective-cl)

26. Jan 2008 /
26. Cha 3174

Objective-CL
now includes its own branch of libffi,
imported from PyObjC
1.3.7. It is therefore now installable without
building your own libffi first.

26. Jan 2008 /
26. Cha 3174

Objective-CL
has been relicensed under the GNU LGPLv3
(formerly GNU GPLv3). This means that people merely using the library
as opposed to merging parts of it into their own software need not
open-source their creations. Modifications to the bridge itself must
still be distributed under the terms of the LGPLv3 (if they are
distributed at all; see the license
itself for details).

23. Nov 2007 /
65. Aft 3173

This website is
online.

Tested
Configurations

1Clozure CL hangs upon (collect-classes).2CMUCL's MOP implementation does not support closures (only non-closure functions) as funcallable-instance-functions. Our workaround for this slows down compilation measurably, but usability should not be significantly impaired.3Some
versions of the GNU Objective-C runtime (not the Mac OS X one) seem to
be incompatible with the LispWorks FFI. More investigation needed.

Download

Alternatives

If all you need is working Cocoa support under Mac OS X, you
ought to take a look at Clozure
CL, which has been out in the wild for much
longer than
Objective-CL. Actual Cocoa
applications have been written using Clozure CL. On the other hand,
Clozure CL does not try to support GNUstep in any way, and it's
probably easier to get involved with a young and small project such as
Objective-CL if helping out is what you want.

CL-OBJC
is another incomplete, free Objective-C bridge that tries to be
compiler-independent. It hasn't got any support for GNUstep, however,
and even on Mac OS X, it is currently (Dec 2007) limited to Tiger/x86,
although Leopard support is being worked on. It also lacks proper support for
memory management and
exception handling. In
contrast to Objective-CL, on the other hand, it has some support for struct
creation and manipulation.

Contact
and Getting Involved

Please feel free to contact me (Matthias Benkard)
by e-mail (first-name@last-name.de -- my
first and last names being Matthias and Benkard, respectively) if you
have any questions or would like to help out in some way.
Alternatively, you can participate in the objective-cl-devel
mailing-list.