Scroll to navigation

CHIBI-SCHEME(1) General Commands Manual CHIBI-SCHEME(1)

NAME

chibi-scheme - a tiny Scheme interpreter

SYNOPSIS

chibi-scheme [options] [--] [script argument ...]

DESCRIPTION

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).

OPTIONS

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.

Print the version information and exit immediately.

"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.

"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.

Run the "main" procedure when the script finishes loading as in SRFI-22.

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.

Strict mode, treating warnings as fatal errors.

Enable case-folding of symbols by the reader as in R5RS.

Disable tail-call optimization. This can be useful for debugging in some cases, but also makes it very easy to overflow the stack.

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.

Insert path in front of the load path list.

Append path to the load path list.

Add feature to the feature list, useful for cond-expanding different library code.

Import module as if "(import module)" were evaluated. If the -x version is used, then module replaces the current environment instead of extending it.

Load Scheme code from file searched for in the default load path.

Evaluate Scheme expression expr.

Evaluate Scheme expression expr and print the result to stdout.

Enable tracing for the given identifier id in module.

Dump the current Scheme heap to image-file and exit.

This feature is experimental.

Load the Scheme heap from image-file instead of compiling the init file on the fly.

This feature is experimental.

ENVIRONMENT

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).

AUTHORS

Alex Shinn

REPORTING BUGS

Please report bugs on Github.

SEE ALSO

chibi-doc(1) chibi-ffi(1) snow-chibi(1)

2020-08-08 0.9 (fluorine)