[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Common Lisp Compiler
Dear Mr. Maegawa:
We have recently begun distributing a version of the CMU Common Lisp system
(CMU CL) for Sparc processors running SunOS. This has given our project
much wider exposure than before, when we only ran under the Mach operating
system. Perhaps the most interesting aspect of the project is the new
compiler, named Python, developed by Rob MacLachlan over the past three
years or so. I run the project and can answer administrative questions;
Rob can directly answer any questions about the compiler. If you try to
run the system and have questions about other parts of CMU CL, they should
be sent to "email@example.com", read by all of us, and the relevant
expert will try to answer.
Our system is public-domain and is freely available via anonymous FTP,
including the sources. So there is no legal problem if you want to include
it in Lilac. We do ask that companies who make any significant use of our
code acknowledge that fact in papers and manuals, since the only reward we
get for this work is recognition, but we have no legal way to enforce that.
I will include below the announcement we made to the "comp.lang.lisp"
newsgroup explaining details of how to get the system.
I believe that Prof. Masayuki Ida of Aoyama Gakuin University has already
obtained CMU CL and is maintaining a copy of it in Japan for the local Lisp
community. I don't know if he has obtained the sources as well, but you
can contact him for details.
With Python, it is easier than in most systems to modify the compiler to
generate code for a new machine, but so far we have done versions only for
the Sparc, MIPS, and IBM RT processors -- all RISC machines. We have not
thought too much about what special problems a VLIW machine might pose, but
they should not be too difficult. Still, to port the system to a new
instruction set is a fairly major undertaking. It will probably require 6
months or so, and some amount of advice from Rob. We are happy to
cooperate with porting eforts, but the time we can spend is limited since
we only have three full-time staff programmers for the whole project.
(Of course, a system like Kyoto Common Lisp, which sits on top of C, can be
ported much more quickly, but at a considerable cost in performance.)
One possibility might be for someone from Sony to come here as a visitor
and work with us for a while. That would save time, but I don't know if
that is possible for you. If you want to explore that possibility, let me
know. Sony just opened a big manufacturing facility in the Pittsburgh
area, and we have had some talks with Sony management about setting up some
kind of Sony research facility in Pittsburgh, but so far these talks have
not produced any definite results.
Dr. Scott E. Fahlman
Senior Research Scientist
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213
From: firstname.lastname@example.org (Rob MacLachlan)
Organization: School of Computer Science, Carnegie Mellon
Date: Fri, 18 Oct 91 20:14:17 GMT
Subject: Beta release of SunOS/SPARC CMU Common Lisp
This message announces a general beta release of CMU Common Lisp for
SPARCstation or Sun4 machines running SunOS. The rest of this message
is derived from the cmucl(1) man page and README file.
Robert A. MacLachlan (email@example.com)
Sun Release 4.1 1
CMUCL(1) USER COMMANDS CMUCL(1)
CMU Common Lisp
CMU Common Lisp is public domain "industrial strength" Com-
mon Lisp programming environment. Many of the X3j13 changes
have been incorporated into CMU CL. Wherever possible, this
has been done so as to transparently allow use of either
CLtL1 or proposed ANSI CL. Probably the new features most
interesting to users are SETF functions, LOOP and the WITH-
CMU CL is currently available for Sparcstations and DECsta-
tions (pmaxes) running Mach (or OSF/1). We are beta-testing
a SunOS SPARC version and an IBM RT Mach version. At least
16 megabytes of memory and 25 megabytes of disk space are
recommended. As usual, more is better.
Bug reports should be sent to firstname.lastname@example.org. Please
consult your local CMU CL maintainer or Common Lisp expert
to verify that the problem really is a bug before sending to
We have insufficient staffing to provide extensive support
to people outside of CMU. We are looking for university and
industrial affiliates to help us with porting and mainte-
nance for hardware and software that is not widely used at
When compared other Common Lisp implementations (such as
Allegro), CMU CL has two broad advantages:
-- The new CMU CL compiler (Python) is more sophisticated
than other Common Lisp compilers. It both produces
better code and is easier to use.
-- The programming environment based on the Hemlock editor
is better integrated than gnu-emacs based environments.
(Though you can still use GNU if you want.)
CMU CL also has significant non-technical advantages:
-- It has good local support for CMU users, and is well
integrated with the CMU CS environment.
-- It is public domain, and is freely available to non-CMU
sites that aren't able to afford a site-license for a
The `Advanced Compiler' chapter of the User's manual exten-
sively discusses Python's optimization capabilities (See
DOCUMENTATION below.) Here are a few high points:
-- Good efficiency and type-checking at the same time. Com-
piling code safe gives a 2x speed reduction at worst.
-- In safe code, type declarations are verified, allowing
declarations to be debugged in safe code. When you go to
compile unsafe, you know the declarations are right.
-- Full source level debugging of compiled code, including
display of the exact call that got an error.
-- Good efficiency notes that tell you why an operation
can't be open coded or where you are number-consing, and
that provide unprecedented source context
-- Block compilation, partial evaluation, lightweight func-
tions and proper tail-recursion allow low-cost use of
function call abstraction.
This software is "as is", and has no warranty of any kind. CMU and the
authors assume no responsibility for the consequences of any use of this
This is a general beta release, meaning that anyone can FTP it, but we won't
be very sympathetic about catastrophes resulting from your dependence on CMU
CL. After the bug reports die down, we will announce a full release, and will
then try to be sympathetic toward desperate users.
See "man cmucl" (man/cmucl.1) for other general information.
CMU Common Lisp is only available via anonymous FTP. We don't have the
manpower to make tapes. All of our files are in the AFS file system. Here
are some suggested gateway machines:
Log in with the user "anonymous" and your real userid as password. Due to the
way anonymous FTP access control is done, it is important to "cd" to the
source directory with a single command, and then do a "get" operation. If you
have any trouble with FTP access, please send mail to email@example.com.
The binary release area is /afs/cs.cmu.edu/project/clisp/release. This
directory holds compressed tar files with names of the form:
FTP compressed tar archives in binary mode. To extract, "cd" to the
directory that is to be the root of the tree, then type:
uncompress <file.tar.Z | tar xf - .
The latest SunOS Sparc release is:
This tar file is 10 megabytes, and the resulting tree is 23 megabytes.
Major release announcements will be made to comp.lang.lisp until there is
enough volume to warrant a comp.lang.lisp.cmu.
The SunOS support was written by Miles Bader and Ted Dunning.
We have not done any SPARC-specific tuning yet. Performance will improve from
10-30% when we add instruction scheduling and register windows.
Lisp and documentation sources are available via anonymous FTP. [See the
README file.] All CMU written code is public domain, but CMU CL also makes
use of several imported packages: PCL, CLX and XP. Although these packages
are copyrighted, they may be freely distributed without any licensing
agreement or fee.