-
Notifications
You must be signed in to change notification settings - Fork 17
/
README.md
137 lines (100 loc) · 4.39 KB
/
README.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
STklos (version 1.70)
=====================
**Erick Gallesio** <eg(at)unice.fr>
Purpose
-------
STklos is a free Scheme system compliant with the languages features
defined in R7RS. 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 and embedded 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
- a full tower of numbers implementation, as defined in R5RS,
- easy connection to the GTK+ toolkit,
- a Perl compatible regular expressions thanks to the PCRE package,
- it implements properly tail recursive calls.
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. STklos is also better
designed and should be easily embedded in an application. (This was not
completely the case with 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.
**June 2020**
The 1.40 version continues to add R7RS traits to STklos.
**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**](https://www.stklos.net/srfi.html).
**November 2021**
The 1.70 version supports 14 new [**SRFIs**](https://www.stklos.net/srfi.html).
(We now have 98 SRFIs supported.) The (new) `extensions` directory contains
an OO binding to the [GTK+3](https://docs.gtk.org/gtk3/) toolkit.
SRFI Support
------------
The current version of STklos supports several 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:
* 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/
Supported architectures
-----------------------
The current version of STklos works on:
- GNU/Linux 4.x and 5.0 (64 bits).
- macOS 10.13 High Sierra
- Win32 (using WSL - Windows Subsystem for Linux)
The previous version of STklos (1.10) was known to work on the following
architectures:
- GNU/Linux 1.6.x (i386/gcc 32 and 64bits)
- Mac OS X 10.5+ (i386/gcc 32 and 64 bits)
- FreeBSD 8.x (i386/gcc 32 bits and 64 bits)
- Win32 (using Cygwin 1.7.x)
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:
- Win-NT/Win-XP (i386/gcc(Cygwin))
- GNU/Linux >= 2.2 (i386/gcc and alpha/gcc)
- FreeBSD 4.2 (i386/gcc)
- Mac OS X (ppc & Intel/gcc)
- Solaris 8 (ultrasparc/gcc)
- Irix 6.5.20 (Octane, mips R10,000)
- Open Darwin 7.0 (PPC/gcc)
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