[92] in Software_Announce
stk locker
daemon@ATHENA.MIT.EDU (John Hawkinson)
Sun Nov 26 23:02:46 1995
Date: Sun, 26 Nov 1995 23:01:12 -0500
To: software-announce@MIT.EDU
From: John Hawkinson <jhawk@MIT.EDU>
The stk locker now exists.
It currently contains STk 2.2.0 for NetBSD/i386 and Solaris. I'll do
other builds when I have time.
People should bug me if they want other platforms done.
This locker is currently in beta.
--jhawk
This is the release 2.2 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 <markh@wimsey.bc.ca>). 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 |
|-------------|-------------------------------------------------|
| elf | disabled| Use it to enable dynamic loading using|
| | | ELF format (works on Linux only) |
|-------------|-------------------------------------------------|
| dld | disabled| Use it to enable synamic loading using|
| | | the DLD package (works on Linux only) |
|-------------|---------|---------------------------------------|
| 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 <dg@hplb.hpl.hp.com>
- 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 <hikichi@sra.co.jp>
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 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
IMAGE CREATION
--------------
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
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