[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 "cmucl-bugs@cs.cmu.edu", 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.

Best regards,
Scott Fahlman

Dr. Scott E. Fahlman
Senior Research Scientist
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213

Internet: sef+@cs.cmu.edu

From: ram+@cs.cmu.edu (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 (ram@cs.cmu.edu)

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 cmucl-bugs@cs.cmu.edu.  Please
     consult your local CMU CL maintainer or Common Lisp expert
     to verify that the problem really is a bug before sending to
     this list.

     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
        commercial Lisp.

     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 slisp@cs.cmu.edu.

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.

SunOS credit:

The SunOS support was written by Miles Bader and Ted Dunning.

SPARC Notes:

We have not done any SPARC-specific tuning yet.  Performance will improve from
10-30% when we add instruction scheduling and register windows.

Source availability:

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.