Archive for February 2005
Rich Hickey does it again: Foil – a Foreign Object Interface for Lisp
Foil – a Foreign Object Interface for Lisp
I’ve been using Java for years and am now moving to Lisp. This guy, Rich Hickey, is *really* improving my quality of life. He has come up with “jfli”:http://jfli.sourceforge.net/ and then “lisplets”:http://lisplets.sourceforge.net/ and now “Foil”:http://foil.sourceforge.net/
Briefly, here is what it does:
Foil consists of a protocol and a set of libraries that facilitate access to popular object runtimes, such as the JVM and the CLI/CLR, and their libraries, from Lisp. A protocol is defined which abstracts out the common features provided by Java-like environments – object construction, method, field, and property access, object lifetime management etc. The protocol defines a set of features as well as an s-expression based stream format for communication. Runtime server applications are provided that utilize Java and C# libraries to implement the object runtime side of the protocol for Java and the CLI. Source for the applications is provided so that custom hosts can be built. A library for Common Lisp is provided that implements the consumer side of the protocol, and offers seamless access to the foreign objects in a Lisp-like manner. The design of Foil owes much to jfli, an in-process solution to the same problem for Java, and it remains extremely similar in its Lisp interface. Several factors motivated the significant difference in the Foil design – its use of an out-of-process instance of the foreign runtime
Go read about it at the link above. His documentation is excellent as usual.