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 to let the user use a Common
Lisp system with XCode.
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/