stklos - An efficient Scheme System providing a powerful Object System


stklos [OPTION ...] [ARGUMENT ... ]


STklos 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. STklos 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,
+ Multi-methods
+ 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 stklos.
-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 times.
-A dir
append 'dir' to the directory path. This option can be used several times.
-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 behavior.
-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 strings. 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 or try-load.
This variable must contains an integer which indicates the number of frames printed on an error. Use the value 0 for an unlimited back-trace.
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.


stklos-config(1), stklos-compile(1), stklos-pkg(1)

The full documentation for stklos is available at

Markup created by unroff 1.0sc,    March 04, 2023.