NESL release 3.1 (November, 1995)

Nesl 3.1 is available in the file nesl/nesl.tar.gz (0.8 Mbytes).

Once copied over to your machine, it can be unpacked by running:

	gunzip -c nesl.tar.gz | tar -xf -
This will create a subdirectory nesl in the current directory with this structure.

Useful information

- The NESL page.
- New features in version 3.1.
- Directory structure of the release.
- Requirements.
- How to build.
- Getting the lightweight sequential implementation.
- Examples included in the release.
- Support and reliability.
- The people who helped.

To be added to the NESL mailing list send e-mail to

New features:

Directory structure of the release:

The files in these directories are also available individually.
  BUILD           Directions on how to build NESL
  COPYRIGHT       Copyright information
  Makefile        Used for building the release
  README          This file
    runnesl       The NESL executable
    vinterp.*     The VCODE interpreter, for various architectures
    xneslplot     X11 interface used for NESL graphics
    foreground.*  Scripts for executing VCODE from NESL in the foreground
    background.*  Scripts for executing VCODE from NESL in the foreground
    cm2/	  Source code for the CM-2 version of CVL
    cm5/	  Source code for the CM-5 version of CVL 
    cray/	  Source code for the CRAY version of CVL
    mpi/	  Source code for the MPI version of CVL
    serial/	  Source code for the serial version of CVL
  doc/	  The CVL manual	  The NESL manual	  The NESL user's guide  The VCODE manual
  emacs/          NESL editing mode for GNU Emacs
  examples/       Collection of NESL examples
  include/	  cvl.h include file
    libcvl.a	  The CVL library
  neslseqsrc/     Source code for stand-alone NESL
  neslsrc/        Source code for NESL
  release.notes   List of changes since the last release
  utils/          Source code for xneslplot
  vcode/          Source code for the VCODE interpreter


You will need either GNU, Allegro, CMU, or Lucid Common Lisp to run NESL. CMU and GNU Common Lisp are available for free. You will also need a Unix-like operating system (SunOS, AIX, HP-UX, Ultrix, Mach and Unicos work fine). For the full NESL release you will also need a C compiler, lex, yacc, and if you want the graphics routines, an X11 library.

How to Build

The following steps should be sufficient to build a version of NESL to run on your local workstation. If you have problems, or for further details, see the user's manual (in html or postscript).

Here is a list of machine/OS/compiler combinations we have tested VCODE with:

  Cray {C90,J90}/Unicos 8.0.x/cc 4.0.x
  CM-5/CMMD 3.0/gcc 2.6.3
  CM-5/CMMD 3.0/gcc 2.6.3 (MPICH 1.0.8)
  Paragon/OSF 1.2.7/icc (MPICH 1.0.11)
  Alpha/OSF 2.0/gcc 2.6.3 (MPICH 1.0.9)
  Sparc/SunOS 4.1.3/gcc 2.7.0 (MPICH 1.0.11)
  Sparc/SunOS 4.1.3/{gcc 2.6.3,cc}
  Sparc/Solaris/gcc 2.6.3
  RS6000/AIX 3.2.5/gcc 2.6.3

A Lightweight Sequential Implementation

This release comes with a pure Common Lisp version of NESL that does not need the VCODE interpreter and runs stand alone on most versions of Common Lisp. This version is not as fast as the VCODE version and does not run on any parallel machines, but serves as a good testbed for experimenting with NESL. This version is available as part of the full release, and is also available on its own. Once you have the lisp files, you can compile and load nesl by starting up Common Lisp and typing
  (load "load.lisp")
A [Nesl] prompt should appear. This is currently a BETA version and not all NESL features have been implemented yet. Features that are not currently included are:

In this sequential version, top level expressions and function definitions are translated to lisp, compiled using the Common Lisp compiler, and then executed. A NESL file can be loaded, translated to lisp and compiled into an object file, so that subsequent loads of the file will be significantly faster.

This version has been tested on Allegro Common Lisp, CMU Common Lisp and gcl, with most testing being done on Allegro. It is expected to run on Kyoto and Lucid common lisps, and on clisp. Although we have done a reasonable job testing it, it is likely not to be as robust as the VCODE version.

How to get the Sequential Version of NESL

The release comes with several examples:


Due to our modest resources, we cannot support NESL at the level we would like to. We are happy to receive bug reports at and will try to respond to them reasonably quickly, but cannot guarantee that we can fix the bug within any specified time.

Overall the VCODE-based sequential implementation of NESL is very reliable and we have found few bugs in the past year, even though we have had many users. The Cray C90 version is also quite reliable. The MPI version is a little less stable, largely because MPI implementations are changing at a rapid rate.

The people who helped

The MasPar port was implemented by R. Faith, D. Hoffman, and D. Stahl at the University of North Carolina. Last updated 28 Nov 1995