~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The new release 0.6.4 of CLiCC,
a Common Lisp to C Compiler,
is now available.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The major changes from the last release (0.6.2) (January 1994) are:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Inlining of functions across modules.
- &rest arguments are stack allocated if the list is only locally used.
- Better code for nested IF-expressions.
- Foreign function interface is usable now. Look at src/test/time.*
for an example. Documentation is not yet finished.
- Most of the code for array functions is written in Lisp now.
- Print-Functions of defstruct are no longer ignored.
- Function FORMAT knows about ~T directive now.
- Functions SCALE-FLOAT, FLOAT-RADIX, FLOAT-SIGN,
FLOAT-PRECISION and INTEGER-DECODE-FLOAT are implemented now.
The radix and significand-length are taken from float.h if an ANSI-C
compiler is used. These values are calculated by CLiCC otherwise.
- *print-length* and *print-level* have been set to 50 because
*print-circle* is not implemented yet.
- New scripts cl-s and rt-s to produce shared libraries (SUNOS only).
- Function BREAK may be used during macro expansion to debug expander
functions.
- More descriptive error message if macro expansion fails.
- More usable messages if type errors are found.
- Many bug fixes.
KNOWN BUGS
~~~~~~~~~~
- next-method-list may be wrong in case of multiple inheritance
- Compilation fails for functions which use local function
definitions in default forms for optional or keyword parameters.
- User defined methods for standard generic functions like
shared-initialize are silently ignored.
- Compilation fails if :documentation option in slots is used.
- Foreign function interface is not usable if CLiCC is compiled with
itself, because FORMAT directive ~^ is used but currently not
available in our imlementation of FORMAT.
TODO
~~~~
- Foreign function interface has to be finished and documented.
- Module compilation has to be documented
What is CLiCC
~~~~~~~~~~~~~
CLiCC is a Common Lisp to C Compiler. It generates C-executables
from Common Lisp application programs. CLiCC is not a Common Lisp
system. Hence it does not include any program development or
debugging support. CLiCC is intended to be used as an add-on to
existing Common Lisp systems for generating portable applications.
CLiCC supports a subset of Common Lisp + CLOS, which we call CL_0
(CommonLisp_0). CL_0 is a strict and very large subset of full
Common Lisp + CLOS, without (EVAL ...) and friends. At present,
CL_0 is based on CLtL1, but we are working towards CLtL2 and
ANSI-CL.
The target language is a subset of C. CLiCC is adaptable to gene-
rate ANSI-C or K&R-C by using a compiler option. The generated C
code is compilable using a conventional C compiler on the target
machine, and must be linked with the CLiCC runtime library in
order to generate executables.
Requirements
~~~~~~~~~~~~
The following is a list of Common Lisp systems we tested to be usable
for CLiCC to run:
- Allegro Common Lisp 4.1 (Franz Inc.)
- Sun (Lucid) Common Lisp 4.0 (Sun Microsystems Inc., Lucid Inc.)
- CMU Common Lisp 16f or 17c (Carnegie Mellon University)
- CLISP (Bruno Haible & Michael Stoll)
- AKCL 1.615 (Austin Kyoto Common Lisp) with September-16-92-PCL-f
But CLiCC should run on every system which implements Common Lisp as
described in CLtL1 with additional CLOS support.
You need an ANSI-C or K&R-C compiler to generate the executables. On
PC compatible machines you have to use a 32-bit C compiler.
How to get it
~~~~~~~~~~~~~
CLiCC is available via anonymous FTP from
ftp.informatik.uni-kiel.de (134.245.15.114)
file: kiel/apply/clicc-0.6.4.tar.gz
kiel/apply/clicc-0.6.4.tar.Z
How to contact us
~~~~~~~~~~~~~~~~~
Requests or comments regarding CLiCC should be send to:
·····@informatik.uni-kiel.de
Use one of the following addresses to contact us individually:
Wolfgang Goerigk, ··@informatik.uni-kiel.de
Ulrich Hoffmann, ···@informatik.uni-kiel.de
Heinz Knutzen, ··@informatik.uni-kiel.de
Christian-Albrechts-Universitaet zu Kiel,
Institut fuer Informatik und Praktische Mathematik
Preusserstr. 1-9
D-24105 Kiel, Germany
--
Heinz Knutzen email: ··@informatik.uni-kiel.de
Institut fuer Informatik, Universitaet Kiel Tel: +49-431-560426
Preusserstr. 1-9, D-24105 Kiel, Germany Fax: +49-431-566143
From: ·············@cs.cmu.edu
Subject: Re: Release 0.6.4 of CLiCC - Common Lisp to C Compiler is available
Date:
Message-ID: <Qi2mTBm00juDJjOaJm@cs.cmu.edu>
Can anybody give their experiences with CLiCC. Systems like IBUKI
who translate CL into C are reputed to be inherently slow then
compiled systems.
Comments on compability, size of resulting C binaries & speed are very
welcome.
thanks
ritesh