Table of Contents

Name

euxlisp - EuLisp Level 0 interpreter

Synopsis

euxlisp [ command-line switches ] [ files ... ]

Description

euxlisp is a small EuLisp Level 0 interpeter, based on David Michael Betz’ xscheme. Mostly compliant with the EuLisp definition 0.99, with a few Schemeisms still present.

Options

The following options are of general interest:
-h, --help
display usage information.
-q, --quiet
quiet mode: print no messages, prompts or values. Useful when using euxlisp as a filter or other agent.
-n, --no-lisp-image
do not read in the initial Lisp image.
-N, --no-sys-calls
disables system and various other function calls.
-s file, --script file
read and execute script file, skipping its first line. Useful for #!/bin/euxlisp --script and the like in shell scripts.
-m file, --module file
read and execute module from file.
-i file, --image file
read the given image file rather than the default.
-t, --trace
switch on byte-code level tracing.

Other args are not interpreted, but are available though getarg (see below)

Features

The module that contains all the useful stuff (e.g., cons and friends) is called level-0: if you import no modules, you get nothing at all, not even special forms. So a typical module looks like
(defmodule foo
   (syntax (syntax-0)
    import (level-0 ...))
   ...
)
and should be in a file named foo.em

There are keywords (unbindable, unassignable, self-evaluating symbols), e.g.,

(defclass foo ()
  ((a default: 99
      keyword: a:
      accessor: foo-a))
  constructor: (make-foo a:))

Try (describe xx) for information on object xx, and (class-hierarchy) to see all the classes.

Some useful other tools include:

getenv
and putenv to get and set environment variables.
getarg
to get nth arg passed to euxlisp.
exit
to leave euxlisp

In case of error, there is a simple error loop. When in the loop type help: for extra information.

Environment

EU_IMAGE_PATH
a colon-separated list of directory names: where to look for the initial EuLisp image (generally named \uxlisp.wks). euxlisp searches these first, then a system-installed path.
EU_MODULE_PATH
a colon-separated list of directory names: where to look for EuLisp modules. euxlisp searches these first, then a system-installed path (which generally contains the current directory).

Bugs

If euxlisp starts

up in module root then it is a good bet that it couldn’t find the image

file euxlisp.wks

There are a few differences between euxlisp and the EuLisp Level 0 definition, but as both are still changing it’s futile to list them.

See Also

The latest EuLisp definition PDF available from:
http://henry.github.com/EuLisp/Doc/EuLisp-0.991/eulisp.pdf
Online HTML version available from:
http://henry.github.com/EuLisp/Doc/EuLisp-0.991/html/eulisp.html
EuLisp and EuXLisp Introduction:
file://EuLispIntroRef.html
Original Euscheme Starter Notes:
http://www.bath.ac.uk/~masrjb/Sources/eunotes.html
Also useful:
http://www.bath.ac.uk/~masjap/EuLisp/eulisp.html
Lisp and Symbolic Computation, special edition on EuLisp,
vol. 6, nos. 1-2, August 1993, R Kessler, ed.


Table of Contents