egallesio / STklos

STklos Scheme
http://stklos.net
GNU General Public License v2.0
67 stars 17 forks source link
mop r5rs r7rs scheme stk stklos

STklos (version 2.00)

Erick Gallesio <eg(at)stklos.net>

Purpose

*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:

History

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.

SRFI Support

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.

IDEs

There are two recommended IDEs that can be used with STklos:

Supported architectures

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.

STklos Installation

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

Project Home

The STklos home page is located at http://stklos.net