Table of Contents
euxlisp - EuLisp Level 0 interpreter
euxlisp [ command-line switches
] [ files ... ]
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.
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)
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.
- 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).
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.
- 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