stklos - An efficient Scheme System providing a powerful Object
stklos [OPTION ...] [ARGUMENT ... ]
is a free Scheme System (nearly) conforming to R5RS. The aim of this
implementation is to be fast as well as light. The implementation is
based on an ad-hoc Virtual Machine.
can also be compiled as a library, so that one can easily embed it
in an application.
The salient points of STklos are:
- an efficient and powerful object system based on CLOS providing:
+ Multiple Inheritance,
+ Generic Functions,
+ an efficient MOP (Meta Object Protocol)
- a simple to use module system
- implementing the full tower of numbers defined in R5RS
- an easy connection to the GTK+ toolkit
- Perl compatible regular expressions thanks to the PCRE package
- properly implemented tail recursive calls
Here are the options available in the version @VERSION@ of
- -l file, --load=file
load 'file' before going interactive
- -f file, --file=file
use 'file' as program
- -I dir
prepend 'dir' to the directory path. This option can be used several
- -A dir
append 'dir' to the directory path. This option can be used several
- -e sexpr, --execute=sexpr
evaluate the given sexpr and exit
- -b file, --boot-file=file
use 'file' to boot the system instead of the default one
- -D directory, --conf-dir=directory
use the given directory to store the various configuration files. This
directory is also used to store the packages installed with the
stklos-pkg(1) command. Note that the shell variable
STKLOS_CONFDIR can also be used to set this directory (see below).
- -q, --no-init-file
quiet: do not load the user init file
- -i, --interactive
be interactive, even if the command finds it is not the case. This
option is generally useful when used inside emacs since it permits to
display the REPL prompts.
- -n, --no-line-editor
tell the REPL to not use the line editor even if GNU readline or BSD
libedit libraries are found. This permit to use an external tool such
as rlwrap(1) instead of the internal line editor support.
- -d, --debug
insert informations to ease debugging (e.g, line numbers, signaling
usage of undefined symbols, ...). Can be used multiple times to
increase the debugging level;
- -s, --stack-size=n
use a stack of n cells.
be case insensitive as in R5RS (see below).
- -c, --case-sensitive
be case sensitive as in R7RS. This is the default value (unless stklos
has been built with the --enable-case-insensitive configure
option). This option (and the previous one) permits to change the default
- -u yes|no, --utf8-encoding=yes|no
At initialisation time, STklos infers the current locale from the
LC_ALL variable. From the character encoding used in the selected
locale, STklos determines if UTF-8 should be used for representing
The --utf8-encoding permits to force the encoding used. Note
that if LC_ALL is unset and this option is not used, UTF-8
encoding will be used.
- -v, --version
print program version and exit.
print detailed program version and information in machine-readable format,
as per SRFI-176, and exit.
- -h, --help
print this help and exit.
This special option signals the end of the stklos command. The
arguments placed after this option are taken as program arguments,
even if they start with a "-" character.
Default case sensitivity depends on the way STklos is built.
This is a colon-separated list of directories in which stklos
looks for loading files. It is used by functions such as load
This variable must contains an integer which indicates the number of
frames printed on an error. Use the value 0 for an unlimited
This variable can be used to designate the directory used by stklos
to store its configuration or packages files. It not set, the default
stklos configuration directory is by default ~/.stklos.
This file is the user init file which is loaded when stklos
starts. Use the -q to avoid the loading of this file.
The full documentation for
is available at http://www.stklos.net/documentation.html
Markup created by unroff 1.0sc, March 04, 2023.