Subject: Re: Lisp and C

From: haible (Bruno Haible)
Date: Fri, 9 Sep 94 19:17:12 +0200

> > - To link these compiled lisp routines (and the lisp kernel needed)  
> > with my App and to call them from a C function.
> > 
> > The problem is that CLisp just produce fasl files and not .o.
> > gcl produce .o file but I didn't reach to do what I wanted.
> 
> akcl might be what you are looking for. Its compiler produces
> C code which is handed to the cc compiler (gcc in my case). This
> makes for a *slow* compiler, but gives *tight* and *fast* code.
> 
> Fair warning : akcl does not seems to be very alive, those days.
> Furthermore, it is *not* in public domain : you'll have to request
> a (free) license from some japanese university...

No, if GCL doesn't serve David Rudloff's, its predecessor AKCL won't
either. Maybe EcoLisp will serve his purpose?

AKCL (the last release) and GCL don't require a license, they are covered
by LGPL. And the code produced by GCL is certainly not "tight", at least
when compared to CLISPs code.

                    Bruno Haible
                    [email-masked]

---

From: [email-masked] (Emmanuel Charpentier)
Date: Mon, 12 Sep 1994 09:46:22 +0200 (MET DST)

> either. Maybe EcoLisp will serve his purpose?

I remember somewhat foggily helping a friend of mine with such a project.
The idea was to modify the back-end part of the compiler, adding a flag
allowing to "include" an almost-verbatim copy of the target C code and
generating a wrapper interface between C and lisp. I didn't achieve this
*myself*, but I heard that it worked and gave fast exeutions and *slowww*
compilations (as usual with akcl...).

BTW : I wasn't aware of gcl, even less of its akcl origin....

What is Ecolisp ?

> AKCL (the last release) and GCL don't require a license, they are covered

I wasn't aware of this "last version"...

> when compared to CLISPs code.

Hmmm... I think that my words betrayed me : what I wanted to say was not
related to the *size* of the code ; I meant that clisp generates code for
an abstract lmachine, which is then interpreted, while (a)kcl generates 
C code which is then *compiled* by a *good* C compiler (gcc). The resulting
native code is larger (by maybe an order of magnitude) but what is executed
is smaller (and faster), since each clisp pseudo-instruction has to be
processed by an interpreter.

>                     [email-masked]

BTW : this letter got me grabbing gcl, and I ran in trouble, but this is
another story (and another mail).

	Sincerely yours,
-- 
Emmanuel Charpentier
[email-masked]

---

From: [email-masked]
Date: Tue, 13 Sep 1994 12:21:27 --100

>From [email-masked] Mon Sep 12 23:25:53 1994
   Date: Mon, 12 Sep 94 23:33:16 +0200
   Errors-To: [email-masked]
   Originator: [email-masked]
   Errors-To: [email-masked]
   Reply-To: clisp-list <[email-masked]>
   Sender: [email-masked]
   Version: 5.5 -- Copyright (c) 1991/92, Anastasios Kotsikonas
   From: [email-masked] (Emmanuel Charpentier)

   ...

   What is Ecolisp ?

ECL is an implementation of Common Lisp designed for being embeddable
into C based applications.

ECL uses standard C calling conventions for Lisp compiled functions,
which allows C programs to easily call Lisp functions and
viceversa. No foreign function interface is required: data can be
exchanged between C and Lisp with no need for conversion.

ECL is based on a Common Runtime Support (CRS) which provides basic
facilities for memory managment, dynamic loading and dumping of binary
images, support for multiple threads of execution.  The CRS is built
into a library that can be linked with the code of the application.
ECL is modular: main modules are the program development tools (top
level, debugger, trace, stepper), the compiler, and CLOS.  A native
implementation of CLOS is available in ECL: one can configure ECL with
or without CLOS.  A runtime version of ECL can be built with just the
modules which are required by the application.

The ECL compiler compiles from Lisp to C, and then invokes the GCC
compiler to produce binaries.

ECL has been ported so far on:

 - Sun workstations with SunOS 4.x
 - Silicon Graphics with IRIX 4.x
 - IBM PC with DOS/go32.
 - IBM PC with Linux 1.0.

The newest versions are available via anonymous ftp from:

 - ftp.icsi.berkeley.edu [128.32.201.7], directory /pub/ai/ecl
 - ftp.di.unipi.it [131.114.4.36], directory /pub/lang/lisp

Since ECoLisp provides many of the features that are desired for GCL,
Richard Stallman has urged me to integrate my work with GCL.
Discussion is underway with Bill Schelter on how to do this.

A paper on ECoLisp has been presented at the Lisp Users and Vendors Conference
in Berkeley last month.

-- Beppe