[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. How to install ILISP

Installation of ILISP and some initialization of your computing environment are described in this chapter. Please read the following sections carefully before getting started with ILISP.

Copy the ILISP distribution archive, e.g. ilisp-x.y.z.tar.gz, to the location where you would like to install it. Next extract the archive, see See section FTP and Web directions. You may need root privileges to perform these operations.

1.1 Configuration and compilation  
1.2 Files of ILISP  

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 Configuration and compilation

Some configuration needs to be done before compiling the Emacs Lisp files that comprise ILISP. Start with the `Makefile' file, in the section after the comment Various variables (you can safely ignore the variables for configuring packaging and distribution, which are intended for maintainers).

First, set the EMACS variable to be the pathname of the Emacs you will be using ILISP with. This is the Emacs that will be used to compile ILISP with. Be sure to check that LN and HyperSpec have appropriate values for your system, especially if you are a Windows user.

If your Emacs supports the easymenu package, it is possible to make ILISP add to Lisp mode buffers and buffers with inferior Lisp processes, or to Scheme mode buffers and buffers with inferior Scheme processes, an Ilisp menu with all available commands. To enable this feature, set to t the variable ilisp-*enable-cl-easy-menu-p* in `ilisp-def.el' for the Common Lisp dialects, and ilisp-*enable-scheme-easy-menu-p* for Scheme dialects. Setting these variables also causes the default Lisp menu to be removed before displaying the Ilisp one.

See the file `INSTALLATION' for additional configuration options and known problems for specific Lisp dialects.

Run make or make compile to build ILISP from source. Ignore any compilation warnings unless they result in ILISP not compiling completely. If you are a Windows user, and you don't have GNU make, you can still compile ILISP by running the `icompile.bat' batch file (be sure to customize for your system the variables mentioned by the comment at the top).

For reducing the Emacs startup time you may run make loadfile. This concatenates all `.elc' (the compiled Emacs Lisp files) into an `ilisp-all.elc' file and removes the `*.elc' files. So your Emacs can load one single compiled file faster than a bunch of smaller compiled files.

To activate ILISP you should add appropriate Emacs Lisp forms to your `.emacs' or to the system-wide `default.el' file, depending on who will be using ILISP. These forms take care of starting it whenever you access a Lisp file or run an inferior Lisp process. You can copy relevant portions of the sample file `ilisp.emacs', which also shows how to customize some ILISP features.

You should add the directory where all of the ILISP Emacs Lisp files reside to your load-path. There is an example of this in `ilisp.emacs'.

As an alternative you could set up a `.ilisp' which contains the appropriate portions of `ilisp.emacs', in order to avoid cluttering too much `.emacs' or `default.el'.

The first time a dialect is started, the interface files will complain about not being compiled, just ignore the message. Once a Lisp dialect is started up, you should execute the command ilisp-compile-inits which will compile the `*.lisp' files and write them to the same directory as the ILISP files.

The binary files should have a unique extension for each different combination of architecture and Lisp dialect. You will need to change ilisp-init-binary-extension and ilisp-init-binary-command to get additional extensions. The binary for each different architecture should be different. If you want to build the interface files into a Lisp world, you will also need to set ilisp-load-inits to nil in the same place that you change ilisp-program to load the Lisp world.

There is an ilisp-site-hook for initializing site specific stuff like program locations when ILISP is first loaded. You may want to define appropriate autoloads in your system Emacs start up file.

Example site init:

;;; CMU site
(setq ilisp-site-hook
      '(lambda ()
        (setq ilisp-motd "CMU ILISP V%s")
        (setq expand-symlinks-rfs-exists t)
        (setq allegro-program "/usr/local/acl5/lisp")
        (setq lucid-program "/usr/misc/.lucid/bin/lisp")))

Kent Pitman and Xanalys Inc. have made publicly available on the Web the Common Lisp HyperSpec, an HTML version of the full text of the ANSI Common Lisp specification:

It is also possible to get a local copy of the HyperSpec, whose latest version is currently v6, by downloading the file HyperSpec-6-0.tar.gz from the above mentioned site.

Daniel Barlow, Stephen Carney and Erik Naggum independently developed Emacs Lisp packages for looking up Lisp symbols in the HyperSpec and displaying the relevant sections with a Web browser. ILISP used to include all of them in the `extra' directory of the distribution tree. However, because of some changes to the CLHS only Erik Naggum's version is now distributed. If you want to use one of the others, please contact the other authors.

The `ilisp.emacs' file provides sample instructions for making Naggum's package access a local copy of the HyperSpec. Since the package relies on the browse-url Emacs package, make sure that the latter is properly configured.

Digital Press has made publicly available online, as a service to the Lisp community, the full text of the book "Common Lisp, The Language" (by Guy L. Steele Jr., 2nd edition, Digital Press, 1990, ISBN 1-55558-041-6; a.k.a. "CLtL2") in a number of formats, including HTML. ILISP provides support, contributed by Utz-Uwe Haus, for looking up Lisp symbols in the HTML version of the book and displaying the relevant sections with a Web browser. See the file `extra/cltl2.el' for more information on configuring this feature. See section 5.2 Documentation functions, for usage instructions.

The `ilisp.emacs' file provides sample instructions for making ILISP's CLtL2 support access a local copy of the book. What has been said above about browse-url configuration also applies to CLtL2 lookup.

Note that, althouth Steele's book is a well written and useful resource, it covers the Common Lisp language in the state it was a few years before ANSI standardization. If you need an accurate description of ANSI Common Lisp, see the above mentioned HyperSpec instead.

Previous versions of ILISP provided commands for accessing the online Common Lisp documentation shipped with Franz Inc.'s Allegro CL product (fi:clman module). The public availability of the HyperSpec, and the inclusion since version 5.9 of ILISP of the hyperspec packages, make access to the Franz documentation no longer necessary. So by default ILISP does not load the fi:clman module, but if you still want to use its commands set the ilisp-*use-fi-clman-interface-p* to t in `ilisp-def.el'.

The ILISP documentation consists of a user manual and a reference card (the latter may not be up to date). Both of them are in the `docs' directory of the distribution tree.

The generation of GNU Info, DVI, PostScript and HTML versions of the documentation from the Texinfo and TeX source is controlled by the `Makefile' in the `docs' directory. Run make docs or just make to generate all of the formats. If you are interested in only some of them then issue the appropriate command: make info for GNU Info, make dvi for DVI, make ps for PostScript and make html for HTML. To remove the intermediate files produced during the generation of DVI output you can run make tmpclean. Note that some of the output formats may not be supported for certain documents.

The ILISP reference card is available as a TeX source file. Check the comments at the beginning of the file if you need to generate a version with a different number of columns (the default is 3).

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 Files of ILISP

The files included with the ILISP distribution are:

Process to process communication.

Extensions for sending commands and getting results.

The basic comint abstraction. You only need this if running Emacs-18.

Partial completion code.

ILISP customization.

Directory containing the documentation.

Directory containing contributed packages.

Windows batch file for compiling ILISP (useful if you don't have GNU make).

Compatibility code between FSF-18, FSF-19, FSF-20, LEmacs-19 and XEmacs.

Uniform interface to Lisp debuggers.

Support for GNU Emacs v18.

Support for GNU Emacs v19.

Support for GNU Emacs v20.

Allegro Common Lisp dialect definition.

Autoload definitions.

ILISP batch code module.

ILISP bug submittal code.

Corman Common Lisp dialect definition.

Haible and Stoll's CLISP Common Lisp dialect definition.

ILISP menu definition (Common Lisp dialects) for the Easymenu package.

Common Lisp dialect definition.

ILISP completer related code.

Comint related code/setup.

CMU CL Common Lisp dialect definition.

Variable definitions.

Code for customizing dialects

ILISP mode documenation.

Standalone lisp-mode extensions.

High level interface code.

Xanalys/Harlequin LispWorks Common Lisp dialect definition.

Error handling.

ILISP specific code for imenu.

Indentation code.

Buffer input module.

Kyoto Common Lisp dialect definition.

Keymap setups, including ilisp-lispm-bindings.

Interface to reset/kill/abort inferior Lisp.

Low level interface code.

Lucid/Liquid Common Lisp dialect definition.

Code for supporting the ILISP build process.

Menu definitions.

Menubar definition code.

ILISP mode definition.

Buffer-point movement code.

OpenMCL dialect definition.

Output handling, include typeout window (a popper replacement).

Process handling code.

Parenthesis handling.

Match ring code.

Scheme->C Scheme dialect definition.

Steel Bank Common Lisp dialect definition.

Scheme dialects definitions.

ILISP menu definition (Scheme dialects) for the Easymenu package.

ilisp-send definitions and associated code.

ILISP source code module.

ILISP symbol handling.

Misc. utilities.

Buffer value interface.

Transfer between Lisp <-> Emacs code.

XLisp and XLisp-Stat dialects definitions.

File to be loaded, loads in all necessary parts of ILISP.

File with sample `.emacs' code for ILISP.

Texinfo file for ILISP.

Support for Lucid Emacs v19.

Support for XEmacs.

Support code for Common Lisp. Each dialect will have one of these files.

Support code for Scheme. Each dialect will have one of these files.

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by XEmacs Webmaster on October, 2 2007 using texi2html