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 :-)