From 60ca1dd2f567558eea1bb0f19c47465c1a64ea37 Mon Sep 17 00:00:00 2001 From: Pierre THIERRY Date: Sun, 30 Mar 2008 01:26:57 +0100 Subject: Described Lisp part of the binding project and proposed mentorship for it. --- community/gsoc/project_ideas.mdwn | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'community') diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index 037e894a..6186912a 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -58,6 +58,37 @@ bindings](http://www.sigill.org/files/pytrivfs-20060724-ro-test1.tar.bz2), that perhaps can be re-used. Also some work on [Perl bindings](http://www.nongnu.org/hurdextras/#pith) is availabled. +### Lisp + +Most Lisp implementations provide a Foreign Function Interface (FFI) that +enables the Lisp code to call functions written in another language. +Specifically, most implementations provide an FFI to the C ABI (hence giving +access to C, Fortran and possibly C++). + +Common Lisp has even a portability layer for such FFI, +[CFFI](http://common-lisp.net/project/cffi/), so that you can write bindings +purely in Lisp and use the same binding code on any implementation supported by +CFFI. + +Many Scheme implementation also provide an FFI. [Scheme48](http://www.s48.org/) +is even the implementation used to run scsh, a Scheme shell designed to provide +instant access to POSIX functions. +[Guile](http://www.gnu.org/software/guile/guile.html) is the GNU project's +Scheme implementation, meant to be embeddable and provide access to C. At least +[Gambit](http://dynamo.iro.umontreal.ca/~gambit/), +[Chicken](http://www.call-with-current-continuation.org/), +[Bigloo](http://www-sop.inria.fr/mimosa/fp/Bigloo/) and +[PLT](http://www.plt-scheme.org/) are known to provide an FFI too. + +With respect to the packaging and dependencies, the good news is that Debian +comes handy: 5 Common Lisp implementations are packaged, one of which has +already been ported to Hurd (ECL), and CFFI is also packaged. As far as Scheme +is concerned, 14 [R5RS](http://www.schemers.org/Documents/Standards/R5RS/) +implementations are provided and 1 [R6RS](http://www.r6rs.org/). + +Pierre THIERRY would mentor creation of bindings for either Common Lisp or +Scheme with their FFI (and welcome any attempt). + ## Virtualization Using Hurd Mechanisms -- cgit v1.2.3