July 13, 2004
Lisp's Very Own JVM: JFLI

found at foundphotos

Rich Hickey's jfli embeds a JVM in Lispworks [via Bill Clementson].

jfli (“jay fly”) provides:

  • Automatic function generation for constructors, fields and methods, either by named class, or entire package (sub)trees given a jar file.
  • Java -> Lisp package and name mapping with an eye towards lack of surprise, lack of conflict, and useful editor completion.
  • setf-able setter generation for fields as well as for methods that follow the JavaBeans property protocol.
  • Java array creation and aref-like access to Java arrays.
  • A 'new' macro that allows for keyword-style field and property initialization.
  • Typed references to Java objects with an inheritance hierarchy on the Lisp side mirroring that on the Java side - allowing for Lisp methods specialized on Java class and interface types.
  • Implementation of arbitrary Java interfaces in Lisp, and callbacks from Java to Lisp via those interfaces. (* this required a single 5-line dummy Java proxy stub, provided with jfli)
  • Automatic lifetime maintenance of Lisp-referenced Java objects, boxing/unboxing of primitive args/returns, string conversions, Java exception handling, overload resolution etc.

Bill says

I tried the included demos and they worked fine. The SWT example was particularly interesting (although all it does is display a simple Java SWT dialog box with a button which, when pressed, calls back to LispWorks to get the version number of LispWorks). What interested me was the potential for using jfli together with SWT to develop native look-and-feel UI's.

Posted by jjwiseman at July 13, 2004 10:49 AM
Post a comment

Email Address:


Unless you answer this question, your comment will be classified as spam and will not be posted.
(I'll give you a hint: the answer is “lisp”.)


Remember info?