[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: enhancements needed, resources for achieving them
- To: clisp-list@ma2s2.mathematik.uni-karlsruhe.de
- Subject: Re: enhancements needed, resources for achieving them
- From: Giuseppe Attardi <attardi@DI.UniPi.IT>
- Date: Thu, 13 Jan 94 00:27:02 +0100
- Organization: Dipartimento di Informatica - Universita' di Pisa - Italy
I just want to mention some work that I have been doing that might be of
relevance to this discussion.
I have an implementation of an Embeddable Common Lisp (ECL).
It compiles from Lisp to C (like AKCL, from which it is derived) using
standard C procedure conventions.
This provides a two-way foreign function interface: from Lisp to C and from
C to Lisp.
Lisp functions can be called from C, and of course also the opposite
is easy.
ECL uses a conservative GC, so that Lisp objects can be passed to C procedures
without worring of them being garbage collected.
Compiled C code is loaded dynamically with a dynamic loader.
ECL includes a native CLOS implementation and a Multiple Thread facility.
I currently have versions of ECL for Sun, SGI and DOS.
Code is available for HP and IBM-RT, but I have not tested these yet.
I think CLISP and ECL have complementary features that might be worth
integrating.
I am currenting writing documentation and restructuring the code to
improve modularity. The goal is to create a library with the run-time support
so that a Lisp kernel can be incorporated in applications.
ECL is free software available under the GNU GPL.
Interested people can ask me where to ftp the sources.
The following table compares the performance of several PD CL.
Times are in seconds on a Sun4 ECL diskless with 16MB of memory.
The following table compares the performance of several PD CL.
Times are in seconds on a Sun4 ECL diskless with 16MB of memory.
Bench ECL AKCL CMU CLISP
(0.1) (1.615) (16f) (5.5)
BOYER 2.067 2.233 4.100 22.600
BROWSE 3.750 4.167 9.130 15.510
CTAK 0.967 1.517 0.500 4.270
DDERIV 1.717 1.200 1.980 5.000
DERIV 1.200 0.817 1.910 3.800
DESTRU 0.350 0.400 0.340 2.070
DIV2 2.467 2.033 1.990 4.860
FFT 2.317 71.333 0.410 9.900
FPRINT 0.167 0.150 0.990 0.260
FREAD 0.133 0.167 0.810 0.320
PUZZLE 1.833 1.300 1.300 17.990
STAK 0.000 0.550 0.380 1.920
TAK 0.200 0.067 0.080 0.890
TAKL 0.267 0.283 0.520 4.300
TAKR 0.233 0.100 0.190 2.260
TPRINT 0.117 0.167 1.270 3.110
TRAVERSE 6.783 6.717 11.310 69.780
TRIANG 10.067 13.133 32.210 198.220
-- Beppe