Documentation: manuals, tips and links
Manuals and documentation that are specific to CMUCL (see below for general information on Common Lisp):
- The CMUCL User's Manual is a detailed document
containing a lot of information on the Python compiler and CMUCL
extensions to Common Lisp, such as the FFI. It is available in the
following formats (last updated 2010-09-27):
- The current HTML version all on one page for online browsing.
- The current HTML version on multiple pages for online browsing.
- Tarball of the HTML version on multiple pages for local browsing.
- Tarball of the info files for local use with emacs.
- PDF (US letter size) with embedded hyperlinks.
- Older versions can be found below. We keep these for reference because the above version was manually converted to texinfo from LaTeX.
- The CLX manual as a compressed tar file of the html version online browsing or in gzipped tarred Postscript (486 kB, last updated 2001-10-01).
- Documentation on the CMUCL Motif toolkit:
- The design document describing the internals of CMUCL. This is very incomplete (last updated 2003-01):
- Internal design of CMU common Lisp on the IBM RT PC. This is a nice complement to the current design document.
Tips and tricks
- On GNU/Linux systems running kernel 2.2 or greater, CMUCL-compiled files can be made directly executable by the kernel by registering them with the binfmt_misc module.
- Example uses of CMUCL's foreign function interface to call a tcl interpreter, and a more complicated example showing how to use callbacks into lisp, again from tcl.
- On x86 platforms, the multiprocessing support allows CMUCL to act as a Lisp server.
- Sample code showing how to change the CMUCL prompt.
- Information on adding custom commandline switches.
- Information on analyzing memory usage.
- Some hints on tuning the CMUCL garbage collector.
- Hints on using the PCL metaobject protocol , which is a little different from the MOP in other Common Lisp implementations. This page also includes an explanation of the parallel class hierarchies in the CMUCL kernel and in PCL.
- Hints on reading disassembly of functions compiled to byte-code or native code.
- A presentation of the differences between the interpreter, the byte-code compiler and the native-code compiler.
- Hints on resolving X11 authorization problems with CLX.
- Some historical information on bootstrapping of early versions of CMUCL.
- A description of the *features* list for CMUCL.
- Douglas Crosher has worked on making Franz's ELI Emacs interface work with CMUCL.
- The first step to being able to improve CMUCL is knowing how to build it (ie recompile it from its source). This is a slightly delicate process, since a running Lisp is used to produce a new lisp. There are two sets of instructions and scripts for building CMUCL:
- A trickier process is a cross-compile, which can be necessary to add certain features to CMUCL, or to port it to a new platform. Details ...
- Pointers to architecture-specific information.
Further documentation is welcome!
General information on Common Lisp
- The Common Lisp HyperSpec is an online version of the ANSI Common Lisp Standard, with extensive cross references.
- The Common Lisp Object System's MetaObject Protocol is a semi-standardized reflective extension to CLOS. Most Common Lisp implementations (including CMUCL) implement a metaobject protocol that is similar to the specification given in chapters 5 and 6 of the The Art of the MetaObject Protocol.
- The Evolution of Lisp by Guy L. Steele and Richard Gabriel is a paper which describes the history of the Lisp programming language.
- The paper Lisp: Good News, Bad News, How to Win Big by Richard Gabriel (often referred to as the "Worse is Better" paper) describes Lisp philosophy. Gabriel later gave other talks on the same subject.
- Papers by Kent Pitman, as well as his Parenthetically Speaking articles.
- Successful Lisp is a book aimed at hands-on Lisp use.
- The CLiki is a collection of links and information on free software implemented in Common Lisp and available on Unix-like systems. It is a collaborative web authoring system based on the Wiki.
- The Common Lisp Cookbook is a source of tasty Common Lisp morsels.
- CLISP is a free Common Lisp implementation which uses a bytecode interpreter written in C. It is available on a greater number of platforms than CMUCL, and has lower memory requirements (but runs significantly more slowly on most problems).
- The CMU AI Repository contains useful Lisp software.
- CLtL2, the second edition of Common Lisp: the Language, is a reference book which preceded the ANSI Common Lisp standard.
- The Association of Lisp Users site contains information about other Lisp implementations, documentation and code.