chibi-scheme - a tiny Scheme interpreter
chibi-scheme |
[options] [--] [script argument ...] |
chibi-scheme is a sample interactive Scheme interpreter for
the chibi-scheme library. It serves as an example of how to embed
chibi-scheme in applications, and can be useful on its own for
writing scripts and interactive development.
When script is given, it will be loaded with SRFI-22
semantics, calling the procedure main (if defined) with a single
parameter as a list of the command-line arguments, beginning with the script
name. This works as expected with shell #! semantics.
Otherwise, if no script given and no -e or -p
options are present, an interactive REPL is entered, reading, evaluating,
and then printing expressions until EOF is reached. The provided REPL is
very minimal. For a more sophisticated REPL with readline support, signal
handling, module management and smarter read/write you may want to use the
(chibi repl) module. It can be launched automatically with chibi-scheme
-R.
For convenience the default language is the (scheme small) module
which includes every library in the R7RS small standard, and some other
dependencies. All of this together is actually quite large, so for a more
minimal startup language you'll want to use the -xmodule
option described below. The get mostly R5RS-compatible language, use
chibi-scheme -xscheme.r5rs, or to get just the core language used for
bootstrapping, use chibi-scheme -xchibi (or its shortcut
chibi-scheme -q).
Space is optional between options and their arguments. Options
without arguments may not be chained together.
To reduce the need for shell escapes, options with module
arguments (-m, -x and -R) are written in dot notation.
That is, spell module name (foo bar) as foo.bar on the command
line.
- -V
- Print the version information and exit immediately.
- -q
- "Quick" load, a shortcut for chibi-scheme -xchibi. This
is slightly different from (scheme base) -- which may load faster -- and
is guaranteed to not load any additional shared libraries.
- -Q
- "Extra quick" load, a shortcut for chibi-scheme
-xchibi.primitive. The resulting environment will only contain the
core syntactic forms and primitives coded in C. This is very fast and is
guaranteed to not load any external files, but is also very limited.
- -r[main]
- Run the "main" procedure when the script finishes loading as in
SRFI-22.
- -R[module]
- Load the given module and run the "main" procedure it defines
(which need not be exported) with a single argument of the list of
command-line arguments as in SRFI-22. The name "main" can be
overridden with the -r option. module may be omitted, in
which case it defaults to "chibi.repl". Thus chibi-scheme
-R is the recommended way to get an advanced REPL.
- -s
- Strict mode, treating warnings as fatal errors.
- -f
- Enable case-folding of symbols by the reader as in R5RS.
- -T
- Disable tail-call optimization. This can be useful for debugging in some
cases, but also makes it very easy to overflow the stack.
- -hsize[/max_size]
- Specify the initial size of the heap in bytes, optionally followed by the
maximum size the heap can grow up to. size can be any integer
value, optionally suffixed with "K" for kilobytes, "M"
for megabytes, or "G" for gigabytes (all powers of 1024).
-h must be specified before any options which load or evaluate
Scheme code.
- -Ipath
- Insert path in front of the load path list.
- -Apath
- Append path to the load path list.
- -Dfeature
- Add feature to the feature list, useful for cond-expanding
different library code.
- -mmodule
- -xmodule
- Import module as if "(import module)" were
evaluated. If the -x version is used, then module replaces
the current environment instead of extending it.
- -lfile
- Load Scheme code from file searched for in the default load path.
- -eexpr
- Evaluate Scheme expression expr.
- -pexpr
- Evaluate Scheme expression expr and print the result to stdout.
- -tmodule.id
- Enable tracing for the given identifier id in module.
- -dimage-file
- Dump the current Scheme heap to image-file and exit.
This feature is experimental.
- -iimage-file
- Load the Scheme heap from image-file instead of compiling the init
file on the fly.
This feature is experimental.
- CHIBI_MODULE_PATH
- A colon-separated list of directories to search for module files, inserted
before the system default load paths. chibi-scheme searches for
modules in directories in the following order:
- •
- directories specified with the -I path option
- •
- directories from CHIBI_MODULE_PATH
- •
- system default directories
- •
- directories specified with the -A path option
If CHIBI_MODULE_PATH is not set, directories
"./lib" and "." are searched before the system defaults
(in that order).
chibi-doc(1) chibi-ffi(1) snow-chibi(1)