Erick Gallesio <eg(at)stklos.net>
STklos** (pronounced /ˈɛs.’ti.kl’ɔss/) is a free Scheme system mostly compliant with the language features defined in R⁷RS small. The aim of this implementation is to be fast as well as light. The implementation is based on an ad-hoc Virtual Machine.
The salient points of STklos are:
STklos is the successor of STk, a Scheme interpreter tightly connected to the Tk toolkit, that I have developed since September 1993.
STklos is very similar to STk for the user but very different in the implementation. Everything has been rewritten and STklos now uses a compiler to a byte-code machine rather than direct interpretation. As a consequence, it is a lot faster than STk.
Whereas STk used the Tk toolkit, STklos uses the GTK+ graphical toolkit. STklos is not completely compatible with STk but it should be easy to port old STk graphical applications (provided that they use objects). The GTK+ extension can be loaded at run time and does not require a special interpreter as was the case with STk.
August 2020 The 1.50 version has been ported to various architectures (in particular to “small” 32-bit little- and big-endian systems) and a port to Android. This version also brings support of 23 new SRFIs. For a complete list of supported SRFIs, see https://www.stklos.net/srfi.html
February 2021 Support for 16 new SRFIs.
November 2021
The 1.70 version supports 14 new SRFIs.
(We now have 98 SRFIs supported). The (new) extensions
directory contains
an OO binding to the GTK+3 toolkit.
August 2023 The 2.00 version is available. This version is conforming to R^7^RS (previous versions of STklos used to implement the R^5^RS standard). It adds support for 24 new SRFIs giving a complete support for 122 SRFIs. You can now use the cURL library thanks to the new curl extension.
October 2024 The 2.10 versions enhances the REPL, the documentation and numerical functions. It adss support for 3 new SRFIs giving a complete support for 125 SRFIs.
The current version of STklos supports more than 120 final SRFIs (a complete list of implemented SRFIs is available in the file SUPPORTED-SRFIS in the distribution). The goal is to support as many final SRFIs as possible. Any help on implementing other SRFIs on STklos is welcome.
There are two recommended IDEs that can be used with STklos:
Quack by Neil van Dyke, which still works fine, but it’s not being updated: https://www.neilvandyke.org/quack/
Geiser:
http://www.nongnu.org/geiser/
The STklos support package can be installed from MELPA: the package
name is geiser-stklos
.
The source code is here: https://gitlab.com/emacs-geiser/stklos/
The current version of STklos works on:
The previous version of STklos (1.10) was known to work on the following architectures:
Very old versions of STklos have run on various architectures. All these ports are pretty old now, but if a port worked a day on a given architecture, it should be not too hard to port recent versions of STklos to it. The old ports were effective on:
More information on supported platforms is available in the PORTING-NOTES file in the distribution.
See the file ./QUICK-INSTALL.md for instructions on how to build STklos. A more complete document is available in ./INSTALL.
If you want to build or run a Docker image of STklos, you can find some information in the ./etc/Docker/README.md
The STklos home page is located at http://stklos.net