Hi,
i am glad to announce the first release of CL-ObjC.
CL-ObjC is a Common Lisp library to allow developers to use libraries
written in the Objective C language, providing a lisp-like interface
towards Objective C conventions. CL-ObjC tries to be portable between
Common Lisp implementations using CFFI and CLOSER-MOP.
You can get it from:
http://www.common-lisp.net/project/cl-objc/cl-objc.tar.gz
or from the darcs repository at
http://www.common-lisp.net/project/cl-objc/darcs/cl-objc
More info can be found on the project web site:
http://www.common-lisp.net/project/cl-objc
and in the documentation and API reference pdf (also available in info
format):
http://www.common-lisp.net/project/cl-objc/cl-objc.pdf
Current Features:
* Lisp-like interface to send messages and create ObjC classes and
methods. E.g.
(let ((new-string (invoke 'ns-string alloc)))
(invoke new-string :init-with-utf8-string "ciao"))
(define-objc-class bank-account ns-object
((amount :float)
(currency currency-type)))
(define-objc-method withdraw ((self bank-account) (withdraw :float))
(with-ivar-accessors bank-account
(decf (amount self) withdraw)
self))
* CLOS bindings to have ObjC objects and classes like CLOS objects.
E.g.
(let ((new-string (make-instance 'objc:ns-string)))
(init-with-utf8-string? new-string "ciao"))
* A Reader Macro to mix ObjC and Common Lisp syntax
* Examples and test cases to show the use of CL-ObjC with XCode
* CFFI interface with foreign translators and ObjC struct management
CL-ObjC has been tested only on MacOSX/x86 platform with sbcl 1.0.
Some users reported privately that CL-ObjC works fine with Allegro
8.1.
Feedbacks and comments are welcome :-)
--
Luigi Panzeri aka Matley
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
Quotes on Lisp: http://lispers.org/
On Oct 16, 10:13 pm, Luigi Panzeri <········@gmail.com> wrote:
> Hi,
>
> i am glad to announce the first release of CL-ObjC.
This looks awesome! There are a few ObjC bridges out there particular
to various distributions but having one implemented in Common Lisp
that could work across distributions is truly neat!
Thanks for the work you put into this! Will definitely strongly
consider this the next time I need to write something with a GUI in
Mac OS X.
-jimbo
Hi,
I have to admit it looks nice. And that's despite me having been
working on a portable ObjC bridge for the last few weeks, too. How
about joining forces, maybe even a merger? My Objective-C bridge has
the advantage of working on both GNUstep and Mac OS X, but yours seems
more complete. Particularly, mine can't define classes, and I don't
have equivalents to the utilities you describe in section 2.5 of the
reference manual.
You can find the code here: http://matthias.benkard.de/code/objective-cl
The reference docs are here: http://matthias.benkard.de/objective-cl/documentation
At the moment, it's released under the GPL, but that's not set in
stone. (I decided to release it under the GPL for now because it's
the most restrictive license I considered, so I'd have time to think
about the licensing.)
~ Matthias
In article <·······················@y27g2000pre.googlegroups.com>,
Matthias Benkard <··········@gmail.com> wrote:
> Hi,
>
> I have to admit it looks nice. And that's despite me having been
> working on a portable ObjC bridge for the last few weeks, too. How
> about joining forces, maybe even a merger? My Objective-C bridge has
> the advantage of working on both GNUstep and Mac OS X, but yours seems
> more complete. Particularly, mine can't define classes, and I don't
> have equivalents to the utilities you describe in section 2.5 of the
> reference manual.
>
> You can find the code here: http://matthias.benkard.de/code/objective-cl
>
> The reference docs are here:
> http://matthias.benkard.de/objective-cl/documentation
>
> At the moment, it's released under the GPL, but that's not set in
> stone. (I decided to release it under the GPL for now because it's
> the most restrictive license I considered, so I'd have time to think
> about the licensing.)
>
> ~ Matthias
That's at least number five.
There are:
* LispWorks' Objective C Bridge
* OpenMCL's Objective C Bridge
* CL-ObjC
* An unpublished Objective C Bridge for SBCL I saw
* Yours'
I would be nice if there would be some 'standard'.
Here is the documentation for OpenMCL's Objective-C bridge
http://openmcl.clozure.com/Doc/index.html#The-Objective_002dC-Bridge
There is also Mikel Evins' "application template' Bosco:
ftp://clozure.com/pub/testing/bosco-0.8.tar.gz
Here is a comparison of LispWorks' and OpenMCL's Objective-C
bridges:
http://mactom.com/mactom.main/?section=Software&subsection=Common+Lisp&pa
ge=OpenMCL
> I would be nice if there would be some 'standard'.
Definitely, but personally, I won't accept as a standard anything that
does not support GNUstep, as that's my primary target platform. :)
As long as nobody else supports GNUstep, I won't give Objective-CL up.
~ Matthias
Rainer Joswig <······@lisp.de> writes:
> That's at least number five.
>
>
> There are:
>
> * LispWorks' Objective C Bridge
> * OpenMCL's Objective C Bridge
The first two are not portable. The aims of CL-ObjC is to be a free
software bridge portable among Common Lisp implementations (using
portable libraries/code) and (why not) platforms.
Furthermore CL-ObjC API is largely inspired by the ones provided by
Lispworks and OpenMCL, so it is not difficult to port code written for
them to CL-ObjC.
> * CL-ObjC
> * An unpublished Objective C Bridge for SBCL I saw
> * Yours'
>
There are a lot of unpublished Objective C bridge, i know. Each one i
saw lacks some features.
CL-ObjC now is published and ready to use. i hope no one will have to
develop another "unpublished" objc bridge because it is possible to
just hack and improve one publicly provided (with examples, testcases,
documentation, tutorial and other stuff that people generally
complaint about the lack of).
> I have to admit it looks nice. And that's despite me having been
> working on a portable ObjC bridge for the last few weeks, too. How
> about joining forces, maybe even a merger? My Objective-C bridge has
Thanks. I have known about 3 or 4 other efforts to build a bridge to
ObjC in the last 2 months. It was a pity that we couldn't join forces
before, maybe due to a lack of communication (also my fault), but now
we can :-)
I think that a merge with your and other works is possible. Whatever
we ll do (a merge, two different or another new bridge) i think we can
discuss about it on the cl-objc-devel mailing list on common-lisp.net
(http://common-lisp.net/mailman/listinfo/cl-objc-devel)
> the advantage of working on both GNUstep and Mac OS X, but yours seems
> more complete. Particularly, mine can't define classes, and I don't
> have equivalents to the utilities you describe in section 2.5 of the
> reference manual.
>
I like the idea to have an objc bridge working on more platforms and
Common Lisp implementations.
Furthermore i think that some decisions i made about the internal of
cl-objc can be discussed. Your code provides less features but it
looks interesting to me for some aspects.
--
Luigi Panzeri aka Matley
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
Quotes on Lisp: http://lispers.org/