8.3 KiB


STk is the ancestor of STklos ( The development of STk has ceased in in September 1999 with the version 4.0.1.

The current repository contains all the versions from 3.1.1 (Sep'96) to 4.0.1 (Sep'99).

It also contains fixes to allow the compilation of 4.0.1 on modern versions of GCC. Running STk on Win32 and MacOs is probably not possible anymore (and there is no plan to assure so).

Please, don't use this version, except for doing some IT archeology.

There are a lot of modern implementations of Scheme which are still developed (STklos is one of them). Prefer a Scheme version which is still maintained.

                This is the release 4.0 of STk

(Latest release is always available from )

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, ...)

This version also runs on Win32. Consider this port as beta.

Version 4.0 uses the Tk 8.0.3 package for the graphical widgets.


Only major changes are listed here. See the file 'CHANGES' in the distribution main directory for more informations.

  • 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 Tk 8.0.3 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, Notespad, Hierarchies, ...
  • 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.
  • Numerous bug corrections
  • Runs on Win32 platforms
  • New option -console to run STk in a windowed environment (with indentation and fontification).
  • define-syntax
  • SRFI-{0,2,6,8,9}
  • New License Policy (request for commercial apps no more needed).
  • ...


Standard make build a light version of STk which does not provide support for the Tk toolkit. This interpreter, called Snow (Scheme with NO Window), can be called directly with the 'snow' shell script. It is implicitly called if your DISPLAY variable is not set.


In Contrib/STk-wtour, you'll find a program (called stk-wtour) which is a kind of tutorial for programming widgets in STk. This program, which is a contribution of Suresh Srinivas (, is an excellent starting point for learning basics of STk widgets programming.


  |___ Contrib     The contributors directory
  |___ Demos       some original Tk demos rewritten for stk plus some other
  |                stuff found on  the net. 
  |___ Extensions  This directory contains extensions of the core interpreter
  |                (hash tables, POSIX.1 support). See the README file for more 
  |                details
  |___ Doc         Documentation of STk.                   
  |___ Help        Various (HTML) help files for STk.
  |___ Lib         a set of Scheme files used by the interpreter
  |___ Stack       files (very architecture dependant) for pushing args on 
  |                the C stack. Used by the FFI of STk.
  |___ Src         contains source files of stk (i.e. the sources files of the 
  |                interpreter + some glue files between Tk and Scheme).
  |___ Snow        contains (mostly) links over Src files. This directory 
  |                is used to build snow the Scheme interpreter without Tk
  |                support
  |___ STklos      an CLOS-like object extension of Scheme based on the
  |    |           Tiny CLOS package.
  |    |_ Tk       A library of Tk objects based on the STklos object
  |    |           extension package (subdirectory Composite contains
  |    |           composite widgets definitions        
  |    |_ Examples A (small) set of examples written in STklos.
  |___ Tcl         contains a set of unchanged files of the Tcl library which 
  |                pertain in Stk
  |___ Tk          contains a modified version of the Tk library. Most of the
  |                files are unchanged; Search the string ORIGINAL_CODE to see
  |                performed changes.
  |___ Win32       contains file necessary to compile STk under Win32


For now, STk is known to run on the following machine/systems

    - Sparc (SunOs 4.1.x & Solaris 2.{34})
    - Dec 5xxx (Ultrix 4.2)
    - SGI (IRIX 4.05, 5.1.1, 5.2)
    - DEC Alpha 3000/400 (OSF-1 V1.3)
    - RS6000 AIX 3.2.5      
    - HP 9000/735 (HP-UX 9.01)
    - PC (Linux 1.0 -> 2.0)
    - PC (FreeBSD 1.1)        
    - PC (SCO)                
    - PC (NetBSD-1.0)         
    - Sony WS (Sony NEWS, NEWSOS 4.2R)
    - PowerPC running Linux
    - ...

Version 3.1.1 was also known to run on Windows 95 (and probably Windows NT). The version 4.0 has also been ported on this environment and should be more stable than previous versions.

If you install it on another architecture/system, please let me now the diffs you used such I can integrate them in the next release.

The file COMPILING-HINTS may be useful for compiling STk on your system.


Support for dynamic loading is provided for the following architectures/systems

            - SunOs 4.1.x
            - SunOs 5.3
            - NetBSD-1.0 (i386-port)
            - Linux (with the DLD package or ELF format). [ Dynamic
              loading is disabled by default. Use -enable-elf or 
              -enable-dld to choose the way you want to make dynamic 
              loading under Linux]
            - FreeBSD
            - HPUX
            - SGI Irix 5.3 


The following architecture support image creation (dumping the interpreter memory in a file): - SunOs 4.1.x - Linux 1.1 (a.out format only) - FreeBSD


Subscription/unsubscription/info requests to the STk mailing list should be sent to ''

To subscribe to the mailing list, simply send a message with the word "subscribe" in the "Subject:" field to the following address: ''

To unsubscribe from the mailing list, simply send a message with the word (you guessed it :-) "unsubscribe" in the "Subject:" field to ''

For more information on the mailing list management send a message with the word "help" in the Subject: field to the ''

Subscription requests are processed automatically without human intervention. If you have a problem, send a mail to

Messages sent to the mailing list are archived and can be browsed from the STk home page.


The STk W3 home page is located at


If you find a bug, please report it to


Erick Gallesio                                    tel : (33) 92-96-51-53
ESSI - I3S                                        fax : (33) 92-96-51-55
Universite de Nice - Sophia Antipolis           email : eg(at)
Route des colles
BP 145
06903 Sophia Antipolis CEDEX