This is the release 2.1.7 of STk -------------------------------- (Last release is always available from kaolin.unice.fr [193.48.229.225]) 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. This release provides an efficient object oriented system called STklos. STklos is a full OO system with multiple inheritance, generic functions, multi-methods and a true meta object protocol). STklos can be dynamically loaded on systems which support this feature. See below for more details. IMPORTANT NOTE - IMPORTANT NOTE - IMPORTANT NOTE ------------------------------------------------ | | STk bignums are implemented with the GNU mp APIs. This library provides a | VERY EFFICIENT implementation of multiple precision numbers. This library | is placed under the GNU GENERAL PUBLIC LICENSE. However, to avoid to fall | under the restrictive GPL terms you can use the FGMP package (FGMP is a | public domain implementation of a subset of the GNU gmp library with the | same API, written by Mark Henderson ). This package | has the advantage to be totally *FREE*, and the disadventage to be *SLOW*. | | So, if your concern is speed, and if the GPL is not a problem for you, | use the Gnu package. | --------------------------------------------------------------------- END OF IMPORTANT NOTE - END OF IMPORTANT NOTE - END OF IMPORTANT NOTE INSTALL ------- To install this package: *** 1. Configure the package for your system. In the directory that this file is in, type $ /bin/sh ./configure This line runs the `configure' shell script. This script attempts to guess correct values for various system-dependent variables used during compilation, and creates various files necessary for package building. Default configuration will compile the package with the the "gcc" compiler and the "-O2" option. This can be changed by changing the default value of the CC and CFLAGS shell variables. For instance: $ /bin/sh -c 'CC=another-cc CFLAGS="-O2 -g" ./configure' will configure the package to use the "another-cc" compiler with options "-O2" and "-g". By default, `make install' will install the package's files in /usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify an installation prefix other than /usr/local by giving `configure' the option `--prefix=PATH'. For instance to place everything in the directory whose name is 'another/place' You'll have to type $ /bin/sh configure --prefix=/another/place By default STk is compiled with the Gnu MP library. If using GNU software is a problem for you you can specify to use the FGMP package with the '--with-fgmp' option. Example: $ /bin/sh configure --prefix=/another/place --with-fgmp Several features can also specified at configuration time. To enable the feature XXX you'll have to specify the '--enable-XXX'. Of course, '--disable-XXX' permits to diable an option which is enabled by default. The following table gives the list of possible features available when compiling STk and their default value. ________________________________________________________________ | XXX | Default | | | | value | | |=============|=========|=======================================| | hash | enabled | Compile support for hash tables | |-------------|-------------------------------------------------| | stklos | enabled | Compile support for stklos (requires | | | | hash tables) | |-------------|---------|---------------------------------------| | socket | enabled | Compile support for sockets. | |-------------|-------------------------------------------------| | dynload | depends | Specifies if STk uses dynamic loading | | | | for extensions. By default, dynamic | | | | loading is enabled for systems which | | | | support it (and for which support has | | | | been integrated into the interpreter | | | | This option permit to change this | | | | default value. | | | | See below for systems for which | | | | dynamic loading support exists | |-------------|---------|---------------------------------------| | regexp | enabled | Add support for regular expressions | |-------------|---------|---------------------------------------| | process | enabled | Add support for running processes from| | | | the interpreter and redirecting their | | | | IO | |-------------|---------|---------------------------------------| | posix | enabled | Add support for POSIX.1 functions. | | | | Support is very incmplete but will | | | | grow | |_____________|_________|_______________________________________| For instance $ /bin/sh -c 'CC=gcc ./configure --with-fgmp \ --enable-socket --prefix=/scheme' will configure the package to use the free bignum library and the socket support . All the needed files will be installed in the /scheme/bin /scheme/lib ... directories. *** 2 . Compiling the package (and testing it) Once configuration is done, just type $ make in this directory to make the whole system. Once the make is terminated you can do a minimal test of stk with $ (cd Src; /bin/sh test-stk) This will bring a little squared window on your screen (if your DISPLAY variable is correctly set). When this is done, enter the following line (pack (button '.test :text "Hello, world" :command '(destroy *root*))) at the scheme prompt. This will display an Hello world button. Clicking on it will leave the scheme interpreter. A bigger demo, showing all the Tk widgets can be obtained by doing $ make widget-demo Some other demos are located in the "Demos" directory. See the README file to know how to run them. *** 3. Documentation Documentation is provided in Postscript and in TeX. To rebuild the documentation, you'll have to type $ make doc This will rebuilt the Postscript documentation. To make only the dvi files, use $ make dvi *** 4. Installation To install stk in the definitive place, type $ make install Intalling STk and Tk manual pages is done with $ make install.man Have fun SCHEME WITHOUT TK ----------------- 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 implicitely called if your DISPLAY variable is unset. LEARNING STk ------------ 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 (ssriniva@cs.indiana.edu), is an excellent starting point for learning basics of STk widgets programming. NOTE ON THE STKLOS PACKAGE -------------------------- STklos is an extension of STk which provides a` la CLOS objets to STk. Since 2.1 most of STklos is written in C. So it is far more faster than before (it's usable now :-> ). Before version 2.1, STklos was not compiled by default and you have to install it separately. Now, it is always compiled. STklos will be dynamically loaded on system which support dynmic loading (if you haven't used the --disable-dynload configure option) For more details on STklos, see the README file in the STklos directory. FILE ORGANISATION ----------------- Stk |___ 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. |___ Lib a set of Scheme files used by the interpreter |___ 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. SUPPORTED ARCHITECTURES ----------------------- 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) -- Thanks to Steve Olson (olson@juliet.ll.mit.edu) and Suresh Srinivas (ssriniva@cs.indiana.edu) - DEC Alpha 3000/400 (OSF-1 V1.3) -- Thanks to Dirk Grunwald (grunwald@foobar.cs.colorado.edu) - RS6000 AIX 3.2.5 - HP 9000/735 (HP-UX 9.01) -- Thanks to ottl@informatik.uni-muenchen.de and Dipankar Gupta - PC (Linux 1.0 -> 1.2) - PC (FreeBSD 1.1) -- Thanks to major@dcd.wa.gov.au - PC (SCO) -- Thanks to markd@grizzly.com - PC (NetBSD-1.0) -- Thanks to Franke Ruediger (Ruediger.Franke@rz.tu-ilmenau.de) - Sony WS (Sony NEWS, NEWSOS 4.2R) -- Tanks to Nobuyuki Hikichi If you install it on another Unix box, 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. DYNAMIC LOADING --------------- 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. No ELF support yet) - FreeBSD - HPUX - SGI Irix 5.3 IMAGE CREATION -------------- The following architecture support image creation (dumping the interpreter memory in a file): - SunOs 4.1.x - Linux 1.1 - FreeBSD MAILING LIST ------------ There is now a mailing list for STk. Subcription/unsubscription/info requests should be sent to 'stk-request@kaolin.unice.fr' To subscribe to the mailing list, simply send a message with the word "subscribe" in the "Subject:" field to the following address: 'stk-request@kaolin.unice.fr' To unsubscribe from the mailing list, simply send a message with the word (you guessed it :-) "unsubscribe" in the "Subject:" field to 'stk-request@kaolin.unice.fr' For more information on the mailing list management send a message with the word "help" in the Subject: field to the 'stk-request@kaolin.unice.fr' Subscription requests are processed automatically without human intervention. If you have a problem, send a mail to eg@kaolin.unice.fr. Messages sent to the mailing list are archived - in raw format at http://kaolin.unice.fr/pub/Mailing-list/ - as hypertext at http://kaolin.unice.fr:/pub/Mailing-list/Hypermail/index.html STK W3 HOME PAGE ---------------- The STk W3 home page is located at http://kaolin.unice.fr/html/STk.html STk FAQ ------ Marc Furrer has set up a FAQ for STk. This FAQ is regularly posted on on the STk mailing list. It can also be accessed through http://ltiwww.epfl.ch/~furrer/STk/FAQ.html ASCII version of the FAQ is available from http://ltiwww.epfl.ch/~furrer/STk/FAQ.txt}. BUGS ---- If you find a bug, please report it to stk-bugs@kaolin.unice.fr. AUTHOR ADDRESS -------------- Erick Gallesio tel : (33) 92-96-51-53 ESSI - I3S fax : (33) 92-96-51-55 Universite de Nice - Sophia Antipolis email : eg@unice.fr Route des colles BP 145 06903 Sophia Antipolis CEDEX FRANCE