STk home
Source Release
Binary Release
Mailing List

Release STk 3.99

STk is a R4RS Scheme interpreter which can access the Tk graphical package. Concretely it can be seen as the John Ousterhout's Tk package where the Tcl language has been replaced by Scheme.

STk also provides an efficient object oriented system called STklos. STklos is an extensive OO system with multiple inheritance, generic functions, multi-methods and a Meta Object Protocol).

This release runs on majors Unix versions (Linux, Solaris, OSF, ...) Starting with Release 3.99.4, STk also runs on Microsoft Win32 systems.

Version 3.99 uses the Tk 8.0 package for the graphical part (actually Tk 8.0.3).

Features of STk

  • Interpreter is conform to R4RS, with some additions of R5RS (e.g. multiple values and dynamic-wind)
  • STklos is an extensive OO system with multiple inheritance, generic functions, multi methods, a Meta Object Protocol.
  • Interpreter can be easily extended by adding new C modules.
  • All the commands defined by the Tk toolkit are available to the STk interpreter (Tk commands are seen as a special type of objects by the interpreter).
  • Callbacks in a GUI are Scheme closures
  • Supports Tk 8.0
  • Doesn't use the Tcl interpreter when using Tk widgets
  • Tk variables (such as "-textvariable") are reflected back into Scheme as Scheme variables.
  • A set of STklos classes have been defined to manipulate Tk commands (menu, buttons, scales, canvas, canvas items) as STklos objects.
  • New widgets can easily be built in Scheme by composition of existing widgets. Some of the more common composite widgets (file-box, color chooser, gauges, ...) are provided with the package.

Main Changes since Release 3.1.1

  • A module system has been added
  • Integration of the Bigloo MATCH-CASE and MATCH-LAMBDA primitives. Furthermore, the file bigloo.stk provide some compatibility between STk and bigloo modules.
  • A simple FFI has been added. It allows to access C functions without writing C code (works only on a limited set of architectures for now).
  • Integration of the Tk8.0 toolkit
  • The MOP of STklos is now very similar to the CLOS one.
  • When a class is redefined, the instances and methods which uses it are redefined accordingly, as in CLOS.
  • Generic functions can be now traced with the standard TRACE function.
  • Some new composite widgets: Gauge, Valued-Gauge, Balloon-help, ...
  • The HTML-browser has been enhanced to access now the web (i.e. you can grab distant texts or images). The Web browser admit now applets written in Scheme.
  • Works on Windows too (need some more testing, since this is far form perfect)
  • A console mode (which is used by default on Windows, but can be used with the -console option on Unix)
  • A new editor with Scheme fontification and indentation is provided
  • New kind of ports: virtual ports
  • Numerous bug corrections
  • ...


You can find a copy of STk at the following URL:

STk home page

Look at

Mailing list

There is a mailing list for STk. To subscribe the mailing list just send a mail at with the word "subscribe" in the "Subject:" line. The mailing list is also archived and easily browsable at

This page is maintained by Erick Gallesio
Last update Tue Feb 2 22:27:04 CET 1999