Commit of 4.0.1 version

master Version_4.0.1
Erick Gallesio 24 years ago
parent a6b9113d17
commit 9eaf788564

@ -1,6 +1,17 @@
09/27/99 Release 4.0.1
----------------------
Mains changes/modifications since 4.0.0 are:
* Small bug fixes
* Integration of SRFI-9 (records)
* Accepts mailto: links in the browser
09/03/99 Release 4.0.0
----------------------
Mains changes/modifications since 4.0 are:
Mains changes/modifications since 3.99.4 are:
* Lot of Win32 fixes

@ -1,3 +1,70 @@
1999-09-27 Erick Gallesio <eg@unice.fr>
* Release 4.0.1
* Doc/Reference/*.tex : Numerous documentation correction provided
by Ben L. Di Vito <bld@air57.larc.nasa.gov>
* Lib/srfi-9.stk: New file which implements (guess what?) SRFI-9
aka records.
* STklos/stklos.stk : Bug correction in find-class
1999-09-16 Erick Gallesio <eg@unice.fr>
* Doc/Reference/Reference2.tex : Added documentation on the
primitive export-al-symbols which was missing.
* Lib/www-mailto:
* Lib/www.stk: New hook "www:hook-mailto" to handle "mailto:"
requests. Furthermore, unknown protocol are properly handled now.
* Lib/www-browser.stklos: Added a mail composer !!! It is used
by the HTML browser when a "mailto:" is encountered.
1999-09-15 Erick Gallesio <eg@unice.fr>
* STklos/Tk/Composite/Hierarchy.stklos (maybe-update-hierarchy):
new function which retain that a update of the hierarchy is
requested. If there is already a request pending nothing is
done. This solves the problem (and enhance redisplay btw)
signalled by Harvey Stein <hjstein@bfr.co.il>
* Lib/www-url.stk : Applied a patch provided by Harvey Stein to
correctly parse URL which use proxies.
* Src/unix.c (STk_setenv): Use of STk_must_malloc instead of
malloc.
1999-09-14 Erick Gallesio <eg@unice.fr>
* Lib/init.stk (dotimes): Corrected incorrect behavior for
negative bounds. Bug signalled by "Ben L. Di Vito"
<bld@air57.larc.nasa.gov>. BTW, if no result is given by the user
in the dotimes, the result is now undetermined.
* Extensions/process.c (run_process): Added the option :fork to
run-process. This allows to simulate the "exec" command of Unix
shells. Not implemented on Win32
* Src/: Minor problems for Alpha compilation (thanks to Jeremie
Petit <Jeremie.Petit@Digital.com>)
1999-09-13 Erick Gallesio <eg@unice.fr>
* Demos/README.html: Modified the applet for allowing the
execution of the examples when STk is installed (bug signalled
by Harvey Stein <hjstein@bfr.co.il>
1999-09-12 Erick Gallesio <eg@unice.fr>
* Demos/server.stk : Bug correction: two xterm were launched and a
GC caused the death of all the demo.
* Doc/Makefile: Added the installation of manual in
$(prefix)/stk-$(version). Manual is also added in RPMS as
requested by Harvey Stein <hjstein@bfr.co.il>
1999-09-05 Erick Gallesio <eg@unice.fr>
* Release 4.0.0

@ -1,5 +1,5 @@
#!/bin/sh
:;exec /usr/local/bin/stk -f
:;exec /usr/local/bin/stk -f "$0" "$@"
;;
;; STk/Scheme widget tour, Version 0.2
;;

@ -12,7 +12,7 @@
# This software is provided ``AS IS'' without express or implied
# warranty.
#
# Last file update: 3-Sep-1999 19:20 (eg)
# Last file update: 13-Sep-1999 18:11 (eg)
#
include ../config.make
@ -41,6 +41,13 @@ install:
cp Html-Demos/Images/*.gif $(DEMODIR)/Html-Demos/Images
chmod 0644 $(DEMODIR)/Html-Demos/Images/*
(cd $(DEMODIR)/Html-Demos; ln -s ../amib.stklos ../stklos-widgets .)
-if [ ! -d $(DEMODIR)lib ] ; then mkdir -p $(DEMODIR)/lib; fi
$(CP) ../Contrib/STk-wtour/lib/*.xbm $(DEMODIR)/lib
chmod 0644 $(DEMODIR)/lib/*
-if [ ! -d $(DEMODIR)/lessons ] ; then mkdir -p $(DEMODIR)/lessons; fi
$(CP) ../Contrib/STk-wtour/lessons/*.stk $(DEMODIR)/lessons
$(CP) ../Contrib/STk-wtour/lessons/index $(DEMODIR)/lessons
chmod 0644 $(DEMODIR)/lessons/*
install.libs:

@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Demo directory README (Version 4.0 - August 1999)</title>
<title>Demo directory README (Version 4.0)</title>
</head>
<body bgcolor="#FFFFFF">
@ -15,10 +15,14 @@
>
<script language="STk">
(lambda (parent url)
(eval '(define (Run x)
(system (string-append "../Src/test-stk " x "&amp;")))
(global-environment))))
(eval '(begin
(define *interp*
(if (file-exists? "../Src/test-stk") "../Src/test-stk" "stk"))
(define (run x) (system (string-append *interp* " " x " &amp;"))))
(global-environment)))
</script>
@ -62,10 +66,18 @@
</ul>
<h4>Running demonstration programs in the STk web browser</h4>
<ul>
<ul>
<b>Note: </b> In this document the notation
<font color=red>RUN</font> means that you must type either
<i>../Src/test-stk</i> if you have not completed the
installation of <B>STk</b>, either type <i>stk</i>
(provided that the install location is in your path)
</ul>
<p>
<b>STk</b> provides a simple Web browser which can be used to launch
the demo of this directory. If you are not running it now, you can
type the following command:
<pre> ../Src/test-stk -f S-scape README.html</pre>
<pre> <font color=red>RUN</font> -f S-scape README.html</pre>
at the shell prompt.
</ul>
@ -80,14 +92,14 @@
that you can click on.
<BR>
<u>Run with </u>:
<a expr=(run "hello.stk")> ../Src/test-stk -f hello.stk </a>
<a expr=(run "hello.stk")> <font color=red>RUN</font> -f hello.stk </a>
<p><li>
<B><A name=browse>browse.stk</a></B>
<BR>
A simple Unix file browser. The code of this demo is less than a page.
<BR>
<u>Run with</u>:
<A expr=(run "browse.stk")>.../Src/test-stk -f browse.stk </A>
<A expr=(run "browse.stk")>.<font color=red>RUN</font> -f browse.stk </A>
</UL>
<h4>1.2 Basics of STk programming</h4>
@ -102,7 +114,7 @@
<BR>
<u>Run with</u>:
<A expr=(run "wtour.stk ../Contrib/STk-wtour")>
../Src/test-stk -f ./wtour.stk ../Contrib/STk-wtour
<font color=red>RUN</font> -f ./wtour.stk ../Contrib/STk-wtour
</A>
<BR><u>Comment</u>: This code is a contribution of <B>Suresh Srinivas</B>
<tt>&lt;ssriniva@cs.indiana.edu&gt;</tt>
@ -119,7 +131,7 @@
the socket is closed
<br>
<u>Run with</u>:
<A expr=(run "-no -f server.stk")> ../Src/test-stk -no -f server.stk </A>
<A expr=(run "-no -f server.stk")> <font color=red>RUN</font> -no -f server.stk </A>
<p><li>
<b>mc-server.stk</b>
<br>
@ -129,8 +141,8 @@
when you want to exit the demo.
<br>
<u>Run with</u>:
<A expr=(system "xterm -e ../Src/test-stk -load mc-server.stk &")>
../Src/test-stk -load mc-server.stk </A>
<A expr=(system (string-append "xterm -e " *interp* " -load mc-server.stk &"))>
<font color=red>RUN</font> -load mc-server.stk </A>
</ul>
@ -142,14 +154,14 @@
A Logo turtle package + some demo functions.
<br>
<u>Run with</u>:
<A expr=(run "turtle.stk")> ../Src/test-stk -f turtle.stk </A>
<A expr=(run "turtle.stk")> <font color=red>RUN</font> -f turtle.stk </A>
<p><li>
<b>hanoi.stk</b>
<br>
Hanoi towers animation.
<br>
<u>Run with</u>:
<A expr=(run "hanoi.stk")> ../Src/test-stk -f hanoi.stk </A>
<A expr=(run "hanoi.stk")> <font color=red>RUN</font> -f hanoi.stk </A>
<p><li>
<b>queens.stk</b>
<br>
@ -158,7 +170,7 @@
puzzle starting with a given board configuration.
<br>
<u>Run with</u>:
<A expr=(run "queens.stk")> ../Src/test-stk -f queens.stk </A>
<A expr=(run "queens.stk")> <font color=red>RUN</font> -f queens.stk </A>
<br>
<u>Comment</u>: This code is a contribution of <b>Grant
Edwards</b> <tt>&lt;grante@rosemount.com)&gt;</tt>
@ -171,7 +183,7 @@
faster. Have fun.
<br>
<u>Run with</u>:
<A expr=(run "stetris.stk")> ../Src/test-stk -f stetris.stk </A>
<A expr=(run "stetris.stk")> <font color=red>RUN</font> -f stetris.stk </A>
<br>
<u>Comment</u>:
This code is a contribution of <B>Harvey J. Stein</B>
@ -184,7 +196,7 @@
board of four planes with four rows and four columns each.
<br>
<u>Run with</u>:
<A expr=(run "ttt.stk")> ../Src/test-stk -f ttt.stk </A>
<A expr=(run "ttt.stk")> <font color=red>RUN</font> -f ttt.stk </A>
<br>
<u>Comment</u>:
This code is a contribution of <b>Edin "Dino" Hodzic</b>
@ -200,7 +212,7 @@
This is a simple demo showing a repl loop in a console.
<br>
<u>Run with</u>:
<A expr=(run "console-demo.stk")> ../Src/test-stk -f console.stk </A>
<A expr=(run "console-demo.stk")> <font color=red>RUN</font> -f console.stk </A>
<br>
<u>Comment</u>: This demo is useful for Unix users only, since under
Win32 <B>STk</B> is started with such a console.
@ -211,7 +223,7 @@
This is a simple color palette written in STk.
<br>
<u>Run with</u>:
<A expr=(run "colormap.stk")> ../Src/test-stk -f colormap.stk </A>
<A expr=(run "colormap.stk")> <font color=red>RUN</font> -f colormap.stk </A>
<br>
<u>Comment</u>: Note that this program is no more really useful since
<B>STk</B> offers now the function <tt>Tk:choose-color</tt>
@ -223,7 +235,7 @@
This is a simple program which uses the STk font chooser.
<br>
<u>Run with</u>:
<A expr=(run "stkfontsel.stk")> ../Src/test-stk -f stkfontsel.stk </A>
<A expr=(run "stkfontsel.stk")> <font color=red>RUN</font> -f stkfontsel.stk </A>
<p><li>
<b>small-ed.stk</b>
@ -231,7 +243,7 @@
A small editor to create enhanced text
<br>
<u>Run with</u>:
<A expr=(run "small-ed.stk")> ../Src/test-stk -f small-ed.stk </A>
<A expr=(run "small-ed.stk")> <font color=red>RUN</font> -f small-ed.stk </A>
<br>
<u>Comment</u>:
This editor use a <I>ad-hoc</I> format for saving file and was
@ -246,9 +258,10 @@
variables (named a,b and c) Changing the value of one of
these vars (with a <tt><b>set!</b></tt> for instance) will
redisplay its new value immediately.
<br>
<u>Run with</u>:
<A expr=(run "-load showvars.stk")>
../Src/test-stk -load showvars.stk </A>
<A expr=(system (string-append "xterm -e " *interp* " -l showvars.stk &"))>
<font color=red>RUN</font> -load showvars.stk </A>
<br>
<p><li>
@ -257,7 +270,7 @@
A simple demo of the inspector on Tk widgets
<br>
<u>Run with</u>:
<A expr=(run "inspector.stk")> ../Src/test-stk -f inspector.stk </A>
<A expr=(run "inspector.stk")> <font color=red>RUN</font> -f inspector.stk </A>
<br>
<u>Comment</u>:
<STRONG> Does not work with this version of <I>STk</I>
@ -270,7 +283,7 @@
A simple terminal emulator (a kind of xterm, but in a text widget).
<br>
<u>Run with</u>:
<A expr=(run "term.stk")> ../Src/test-stk -f term.stk </A>
<A expr=(run "term.stk")> <font color=red>RUN</font> -f term.stk </A>
<br>
<u>Comment</u>: Users of <b>Glibc2 (aka libc6, or RedHat 5.0
users)</b>: This program has problems with new release of the
@ -314,7 +327,7 @@
demonstration in <b>STklos</b>
<br>
<u>Run with</u>:
<A expr=(run "hello.stklos")> ../Src/test-stk -f hello.stklos </A>
<A expr=(run "hello.stklos")> <font color=red>RUN</font> -f hello.stklos </A>
<p><li>
<b>browse.stklos</b>
@ -323,7 +336,7 @@
demonstration in <b>STklos</b>
<br>
<u>Run with</u>:
<A expr=(run "browse.stklos")> ../Src/test-stk -f browse.stklos </A>
<A expr=(run "browse.stklos")> <font color=red>RUN</font> -f browse.stklos </A>
@ -332,7 +345,7 @@
A simple demo written in STklos.
<br>
<u>Run with</u>:
<A expr=(run "stklos-demo.stklos")>../Src/test-stk -f stklos-demo.stklos</a>
<A expr=(run "stklos-demo.stklos")><font color=red>RUN</font> -f stklos-demo.stklos</a>
<br>
<u>Comment</u>: What is interesting in this demo is not what
it does, nothing specially fancy, but how it is easy to
@ -344,7 +357,7 @@
<br>
<u>Run with</u>:
<A expr=(run "stklos-demo2.stklos")>
../Src/test-stk -f stklos-demo2.stklos</a>
<font color=red>RUN</font> -f stklos-demo2.stklos</a>
<br>
<u>Comment</u>: Here again, what is interesting in this demo is not what
it does, nothing specially fancy, but how it is easy to
@ -355,7 +368,7 @@
<br>
<u>Run with</u>:
<A expr=(run "classbrowse.stklos")>
../Src/test-stk -f classbrowse.stklos</a>
<font color=red>RUN</font> -f classbrowse.stklos</a>
<br>
</ul>
@ -374,7 +387,7 @@
modified version by clicking the button <tt>"Rerun demo"</tt>
<br>
<u>Run with</u>:
<A expr=(run "widget.stk")> ../Src/test-stk -f widget.stk </A>
<A expr=(run "widget.stk")> <font color=red>RUN</font> -f widget.stk </A>
<br>
<u>Comment</u>: This demo illustrate only the simple widgets
(the ones of the Tk library). For a <i>composite widgets</i>
@ -389,7 +402,7 @@
itself a composition of various composite widget classes.
<br>
<u>Run with</u>:
<A expr=(run "filebox.stklos")> ../Src/test-stk -f filebox.stklos </A>
<A expr=(run "filebox.stklos")> <font color=red>RUN</font> -f filebox.stklos </A>
<p><li>
<b>stklos-widgets.stklos</b>
@ -399,7 +412,7 @@
<br>
<u>Run with</u>:
<A expr=(run "stklos-widgets.stklos")>
../Src/test-stk -f stklos-widgets.stklos </A>
<font color=red>RUN</font> -f stklos-widgets.stklos </A>
<br>
<u>Comment</u>: This code is a contribution of <b>Drew Whitehouse</b>
<TT>&lt;Drew.Whitehouse@anu.edu.au&gt</TT>.
@ -414,7 +427,7 @@
This is a simplistic calculator.
<br>
<u>Run with</u>:
<A expr=(run "calc.stklos")>../Src/test-stk -f calc.stklos </A>
<A expr=(run "calc.stklos")><font color=red>RUN</font> -f calc.stklos </A>
<p><li>
<b>tkcolor.stklos</b>
@ -428,7 +441,7 @@
background color.
<br>
<u>Run with</u>:
<A expr=(run "tkcolor.stklos")>../Src/test-stk -f tkcolor.stklos </A>
<A expr=(run "tkcolor.stklos")><font color=red>RUN</font> -f tkcolor.stklos </A>
<p><li>
<b>amib.stklos</b>
@ -436,7 +449,7 @@
<B>A</B> <B>M</B>ini <B>I</B>nterface <B>B</B>uilder.
<br>
<u>Run with</u>:
<A expr=(run "amib.stklos")> ../Src/test-stk -f amib.stklos </A>
<A expr=(run "amib.stklos")> <font color=red>RUN</font> -f amib.stklos </A>
<br>
<u>Comment</u>: The current version of AMIB allow you to:
<ul>
@ -455,7 +468,7 @@
The STk web browser. You are probably using it while seeing these lines.
<br>
<u>Run with</u>:
<A expr=(run "S-scape.stklos")> ../Src/test-stk -f S-scape.stklos </A>
<A expr=(run "S-scape.stklos")> <font color=red>RUN</font> -f S-scape.stklos </A>
</ul>
@ -463,7 +476,7 @@
<address><a href="mailto:eg@unice.fr">Erick Gallesio</a></address>
<!-- Created: Sun Mar 1 15:56:45 CET 1998 -->
<!-- hhmts start -->
Last modified: Sat Sep 4 15:02:13 CEST 1999
Last modified: Mon Sep 13 19:59:47 CEST 1999
<!-- hhmts end -->
</body>
</html>

@ -1,3 +1,5 @@
#!/bin/sh
:;exec /usr/local/bin/stk -f "$0" "$*"
;;;; console-demo.stk -- A simple demo for the console
;;;;
;;;; Copyright © 1999 Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
@ -13,7 +15,7 @@
;;;;
;;;; Author: Erick Gallesio [eg@unice.fr]
;;;; Creation date: 22-Aug-1999 21:05
;;;; Last file update: 3-Sep-1999 18:56 (eg)
;;;; Last file update: 12-Sep-1999 23:29 (eg)

@ -1,4 +1,5 @@
#!/usr/local/bin/stk -f
#!/bin/sh
:;exec /usr/local/bin/stk -f "$0" "$@"
;;;;
;;;; Hanoi - Towers of Hanoi diversion
;;;;
@ -13,7 +14,7 @@
;;;; This software is provided ``AS IS'' without express or implied
;;;; warranty.
;;;; Author: Erick Gallesio [eg@unice.fr]
;;;; Last file update: 3-Sep-1999 19:22 (eg)
;;;; Last file update: 13-Sep-1999 18:00 (eg)
;;;; This program is a rewriting in STk of a program found on the net. Original
;;;; author is Damon A Permezel (probably fubar!dap@natinst.com)

@ -1,4 +1,5 @@
#!/usr/local/bin/stk -load
#!/bin/sh
:;exec /usr/local/bin/stk -load "$0" "$@"
;;;;
;;;; m c - s e r v e r . s t k -- A simple server which accept
;;;; multiple client connections
@ -16,7 +17,7 @@
;;;;
;;;; Author: Erick Gallesio [eg@kaolin.unice.fr]
;;;; Creation date: 23-Jul-1996 09:00
;;;; Last file update: 3-Sep-1999 18:58 (eg)
;;;; Last file update: 13-Sep-1999 18:01 (eg)
(require "posix")
(require "socket")

@ -1,6 +1,7 @@
#!/usr/local/bin/stk -f
#!/bin/sh
:;exec /usr/local/bin/stk -f "$0" "$@"
; -* Lisp -*-
; -* Scheme -*-
; Yet another "my first STk program" type thing. This one is the "8
; queens" puzzle. You try to figure out how to place 8 queens on a

@ -1,4 +1,7 @@
#!/usr/local/bin/stk -f
#!/bin/sh
:; exec /usr/local/bin/stk -f "$0" "$@"
;;;;
;;;;
;;;; s e r v e r . s t k -- A simple sever
;;;;
;;;; Copyright © 1993-1999 Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
@ -14,7 +17,7 @@
;;;;
;;;; Author: Erick Gallesio [eg@kaolin.unice.fr]
;;;; Creation date: 4-Feb-1995 18:17
;;;; Last file update: 4-Sep-1999 15:32 (eg)
;;;; Last file update: 12-Sep-1999 23:36 (eg)
(define s (make-server-socket))
(define p (run-process ; define a var to avoid GC problems
@ -24,8 +27,6 @@
(dynamic-wind
;; Init: Launch an xterm with telnet running on the s listening port and connect
(lambda ()
(run-process "xterm" "-e" "telnet" "localhost"
(number->string (socket-port-number s)))
(socket-accept-connection s)
(format (socket-output s) "\nWelcome on the socket REPL.\n\n> ")
(flush (socket-output s)))

@ -18,7 +18,7 @@
;;;;
;;;; Author: Erick Gallesio [eg@unice.fr]
;;;; Creation date: 9-Aug-1993 22:06
;;;; Last file update: 3-Sep-1999 19:23 (eg)
;;;; Last file update: 13-Sep-1999 20:01 (eg)
(define (show-vars w . args)
(catch (destroy w))
@ -51,5 +51,6 @@
(define b '(1 2 (a b d) x 1))
(define c "A string")
(show-vars '.test 'a 'b 'c)
(format #t "Try to modify value of displayed variables with set!\n")
(format #t
"\n***\n*** Try to modify value of displayed variables with set!\n***\n\n")

@ -1,4 +1,6 @@
#!/usr/local/bin/stk -f
#!/bin/sh
:;exec /usr/local/bin/stk -f "$0" "$@"
;;;; s m a l l - e d . s t k -- A small editor to create enhanced
;;;; text (used for Help page construction)
;;;;
@ -15,7 +17,7 @@
;;;;
;;;; Author: Erick Gallesio [eg@kaolin.unice.fr]
;;;; Creation date: 6-Dec-1993 17:25
;;;; Last file update: 3-Sep-1999 18:58 (eg)
;;;; Last file update: 13-Sep-1999 18:02 (eg)
(require "editor")

@ -1,3 +1,7 @@
#!/bin/sh
:; exec /usr/local/bin/stk -f "$0" "$@"
;;;;
;;;;
;;;; s t k f o n t s e l . s t k l o s -- A demo of the font chooser
;;;;
;;;; Copyright © 1999 Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
@ -13,7 +17,7 @@
;;;;
;;;; Author: Erick Gallesio [eg@unice.fr]
;;;; Creation date: 25-Apr-1999 19:35
;;;; Last file update: 3-Sep-1999 18:59 (eg)
;;;; Last file update: 12-Sep-1999 23:37 (eg)
(require "font-chooser")

@ -1,4 +1,5 @@
#!/usr/local/bin/stk -f
#!/bin/sh
:;exec /usr/local/bin/stk -f "$0" "$@"
;;;;
;;;; s t k l o s - d e m o . s t k -- A demo which use some STklos classes
;;;;
@ -15,7 +16,7 @@
;;;;
;;;; Author: Erick Gallesio [eg@unice.fr]
;;;; Creation date: 24-Aug-1993 19:55
;;;; Last file update: 3-Sep-1999 19:00 (eg)
;;;; Last file update: 13-Sep-1999 18:03 (eg)
(require "Tk-classes")

@ -1,4 +1,6 @@
#!/usr/local/bin/stk -f
#!/bin/sh
:;exec /usr/local/bin/stk -f "$0" "$@"
;;;;
;;;; s t k l o s - d e m o 2 . s t k -- A demo which use some STklos classes
;;;;
@ -15,7 +17,7 @@
;;;;
;;;; Author: Erick Gallesio [eg@unice.fr]
;;;; Creation date: 24-Aug-1993 19:55
;;;; Last file update: 3-Sep-1999 19:00 (eg)
;;;; Last file update: 13-Sep-1999 18:03 (eg)
(require "Tk-classes")

@ -1,6 +1,7 @@
#
# Makefile for Doc/Extension
#
include ../../config.make
SRC = Extending.tex
@ -9,6 +10,10 @@ all: dvi ps
dvi: Extending.dvi
ps: Extending.ps
install: ps
$(CP) Extending.ps $(DOC_DIR)
Extending.dvi: $(SRC)
echo -n > Extending.ind
latex Extending; makeindex Extending; bibtex Extending;

Binary file not shown.

File diff suppressed because it is too large Load Diff

@ -14,17 +14,17 @@
#
# Author: Erick Gallesio [eg@unice.fr]
# Creation date: 21-Oct-1994 11:25
# Last file update: 3-Sep-1999 21:22 (eg)
# Last file update: 12-Sep-1999 20:31 (eg)
include ../config.make
MAN1_DIR=$(mandir)/man1
MANN_DIR=$(mandir)/mann
DOC_DIR=$(prefix)/doc/stk-$(VERSION)
DIRS=Extension Reference STklos+Tk Manual Isotas96
install: install.man
install: install.man install.ps
all: dvi ps
@ -41,6 +41,11 @@ ps:
install.man:
(cd Manual; make install.man)
install.ps:
-if [ ! -d $(DOC_DIR) ] ; then mkdir -p $(DOC_DIR); fi
(cd Extension; make install DOC_DIR=$(DOC_DIR))
(cd Reference; make install DOC_DIR=$(DOC_DIR))
clean:
for i in $(DIRS) ;do \
(cd $$i; $(MAKE) clean); \

@ -3,7 +3,7 @@
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: ??-Nov-1993 ??:??
% Last file update: 21-Jan-1996 18:29
% Last file update: 27-Sep-1999 14:40 (eg)
%
When {\stk} detects that a \var{tk-command} must be called, parameters are
@ -109,7 +109,7 @@ arrows for example), the scrollbar is updated by calling it's
associated closure. Tk library passes position informations to
scrolling closures. This informations are the parameters of the
closure. Hereafter is an example implementing a text widget with a
scrollbar (see the help pages for details):
scrollbar (see the help pages for details and \ref{help}):
\begin{scheme}
(text '.txt :yscrollcommand (lambda l (apply .scroll 'set l)))
(scrollbar '.scroll :command (lambda l (apply .txt 'yview l)))

@ -3,7 +3,7 @@
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: ??-Nov-1993 ??:??
% Last file update: 20-Apr-1998 11:54
% Last file update: 27-Sep-1999 14:42 (eg)
%
\newcommand{\schglob}[1]{*#1*}
@ -87,9 +87,9 @@ The following symbols are defined only when Tk is loaded:
\item {\tt\schglob{help-path}}\schindex{help,
getting}\schindex{\schglob{help-path}} must contain a list of
strings. Each string is taken as a directory path name in which
documentation files are searched. This variable can be set
automatically from the {\tt STK\_HELP\_PATH} shell variable. See
{\tt stk(1)} for more details.
documentation files are searched by the command \var{help}\ref{help}.
This variable can be set automatically from the {\tt STK\_HELP\_PATH}
shell variable. See {\tt stk(1)} for more details.
\item {\tt\schglob{image-path}}\schindex{\schglob{image-path}} must contain
a list of strings. Each string is taken as a directory path name in which

@ -3,7 +3,7 @@
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: 22-May-1994 22:13
% Last file update: 5-Jun-1999 14:48
% Last file update: 18-Sep-1999 15:21 (eg)
%
\section{Introduction}
@ -113,7 +113,7 @@ For instance,
\begin{scheme}
(class-slots A) \lev (a)
(class-slots E) \lev (a e c)
(class-slots F) \lev (d a b c f)
(class-slots F) \lev (b e c d a f)
\end{scheme}
\begin{note}
@ -311,10 +311,10 @@ For instance, the following expression
permits to set the angle of the {\tt c} complex number. This expression
conducts, in fact, to the evaluation of the following expression
\begin{scheme}
((lambda o m)
((lambda (o a)
(let ((m (slot-ref o 'm)))
(slot-set! o 'r (* m (cos a)))
(slot-set! o 'i (* m (sin a))))
(slot-set! o 'i (* m (sin a)))))
c 3)
\end{scheme}
A more complete example is given below:
@ -494,7 +494,7 @@ each parameter can use a specializer. In this case, the parameter list is scanne
from left to right to determine the applicability of a method. Suppose we declare
now
\begin{scheme}
(define-method M ((a <integer>) (b <number>)) 'integer-number)
(define-method M ((a <integer>) (b <integer>)) 'integer-integer)
(define-method M ((a <integer>) (b <real>)) 'integer-real)
(define-method M (a (b <number>)) 'top-number)
\end{scheme}

@ -3,7 +3,7 @@
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: 21-Dec-1997 20:09
% Last file update: 1-Sep-1999 23:17 (eg)
% Last file update: 27-Sep-1999 15:45 (eg)
%
\section*{Introduction}
@ -16,6 +16,13 @@ the various recent versions of STk. Differences with older versions
as well as implementation changes are described in the CHANGES file
located in the main directory of the STk distribution.
\section*{Release 4.0.1}
\small{\emph{Release date: 09/27/99}}
Mains changes/modifications since 4.0.1:
\begin{itemize}
\item Integration of SFI-9
\end{itemize}
\section*{Release 4.0.0}
\small{\emph{Release date: 09/03/99}}
Mains changes/modifications since 3.99.4:

@ -3,7 +3,7 @@
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: 21-Dec-1994 12:05
% Last file update: 27-Jun-1998 10:12
% Last file update: 22-Sep-1999 11:50 (eg)
%
\section{Introduction}
@ -230,22 +230,32 @@ document is available at
{\tt file://swiss-ftp.ai.mit.edu/pub/scm/HTML/r4rs\_toc.html}
\end{quote}
\subsection{The Scheme Repository}
\subsection{Web sites}
The main site where you can find (many) informations about Scheme is
located in the University of Indiana. The Scheme repository\index{Scheme
Repository} is maintained by David Eby. The repository currently consists
of the following areas:
The most up to date general site on Scheme is located at
www.schemers.org\index{Schemers.org}. This site contains informations
and links about
\begin{itemize}
\item Lots of scheme code meant for benchmarking, library/support, research, education, and fun.
\item On-line documents: Machine readable standards documents, standards proposals, various Scheme-related tech reports, conference papers, mail archives, etc.
\item Most of the publicly distributable Scheme Implementations.
\item Material designed primarily for instruction.
\item Freely-distributable promotional or demonstration material for Scheme-related products.
\item Utilities (e.g., Schemeweb, SLaTeX).
\item Extraneous stuff, extensions, etc.
\item textbooks on Scheme, tutorials and standards
\item various implementations of the language as well as environments for Scheme
\item SRFI (Scheme Request For Implementation)
\item events related to Scheme programming
\item and much more ...
\end{itemize}
Another important site is the Scheme repository\index{Scheme
Repository}. Hopelessly, this site is no more maintained, but its
content is rich enough to spend some time on it. The repository
consists of the following areas:
\begin{itemize}
\item Lots of scheme code meant for benchmarking, library/support, research, education, and fun.
\item On-line documents: Machine readable standards documents, standards proposals, various Scheme-related tech reports, conference papers, mail archives, etc.
\item Most of the publicly distributable Scheme Implementations.
\item Material designed primarily for instruction.
\item Freely-distributable promotional or demonstration material for Scheme-related products.
\item Utilities (e.g., Schemeweb, SLaTeX).
\item Extraneous stuff, extensions, etc.
\end{itemize}
You can access the Scheme repository with
{\tt
\begin{itemize}
@ -253,7 +263,6 @@ You can access the Scheme repository with
\item http://www.cs.indiana.edu/scheme-repository/SRhome.html
\end{itemize}
}
The Scheme Repository is mirrored in Europe:
{\tt
\begin{itemize}
@ -262,6 +271,7 @@ The Scheme Repository is mirrored in Europe:
\item ftp.informatik.uni-muenchen.de:/pub/comp/programming/languages/scheme/scheme-repository
\end{itemize}
}
\subsection{Usenet newsgroup and other addresses}
There is a usenet newsgroup about the Scheme Programming language: {\tt
@ -277,3 +287,8 @@ at MIT
\item {\tt http://www.ai.mit.edu/projects/su/su.html} is the Scheme Underground
web page
\end{itemize}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "manual"
%%% End:

@ -1,5 +1,7 @@
# Makefile for Manual building
include ../../config.make
TEX= manual.tex commands.tex Reference1.tex Reference2.tex \
Appendix-A.tex Appendix-B.tex Appendix-C.tex Appendix-D.tex
@ -8,6 +10,9 @@ all: dvi ps
dvi: manual.dvi
ps: manual.ps
install: ps
$(CP) manual.ps $(DOC_DIR)
manual.dvi: bibli $(TEX)
echo -n > index.tex
latex manual.tex

@ -3,7 +3,7 @@
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: ??-Nov-1993 ??:??
% Last file update: 31-Aug-1999 13:04 (eg)
% Last file update: 18-Sep-1999 15:08 (eg)
%
\section*{Introduction}
@ -104,7 +104,7 @@ This kind of comment extends to the end of the line (as described in \rrrr).
{\tt \sharpsign{\em n}\sharpsign} syntax (see below). The scope of
the label is the expression being read by the outermost \ide{read}.
\item[\tt\sharpsign{\em n}=] is used to reference a some object
\item[\tt\sharpsign{\em n}\sharpsign] is used to reference a some object
labeled by a {\tt \sharpsign{\em n}=} syntax; that is,
{\tt \sharpsign{\em n}\sharpsign} represents a pointer to the object
labeled exactly by {\tt \sharpsign{\em n}=}. For instance, the object
@ -437,7 +437,7 @@ have been deleted. The predicate used to test the presence of \var{obj} in
Returns the last pair of \var{list}\footnote{\ide{Last-pair} was a standard
procedure in {\rthree}.}.
\begin{scheme}
(last-pair '(1 2 3)) \lev 3
(last-pair '(1 2 3)) \lev (3)
(last-pair '(1 2 . 3)) \lev (2 . 3)
\end{scheme}
\end{entry}
@ -1050,12 +1050,12 @@ the port is given by the user).
specifying the command to execute prefixed with the string {\tt
"|~"}. Specification of a pipe port can occur everywhere a file
name is needed.
\item Virtual ports creation needs that the basic I/O functions are
at the port creation time. This functions will be used to simulate
low level accesses a ``virtual device''. This kind of port is
particularly convenient for reading or writing in a graphical window
as if it was a file. Once virtual port is created, it can be accessed
as a normal port with the standard Scheme primitives.
\item Virtual ports are created by supplying basic I/O functions at
port creation time. These functions will be used to simulate low
level accesses to a ``virtual device''. This kind of port is
particularly convenient for reading or writing in a graphical
window as if it was a file. Once a virtual port is created, it can
be accessed as a normal port with the standard Scheme primitives.
\end{itemize}
@ -1281,18 +1281,18 @@ output string \var{port}.
\saut
Returns a virtual port using the \var{getc} procedure to read a
character from the port, \var{readyp} to know if there is to read from
the port, \var{eofp} to know if the end of file is reached on the port
and finally \var{close} to close the port. All theses procedure takes
one parameter which is the port from which the input is done.
\var{Open-input-virtual} accepts also the special value \schfalse{} for
the I/O procedures with the following conventions:
character from the port, \var{readyp} to know if there is any data to
read from the port, \var{eofp} to know if the end of file is reached
on the port and finally \var{close} to close the port. All theses
procedure takes one parameter which is the port from which the input
is done. \var{Open-input-virtual} accepts also the special value
\schfalse{} for the I/O procedures with the following conventions:
\begin{itemize}
\item if \var{getc} or \var{eofp} is \schfalse{} any attempt to read
the virtual port will an eof object;
the virtual port will return an eof object;
\item if \var{readyp} is \schfalse{}, the file will always be ready
for reading;
\item if \var{clos} is \schfalse{}, no action is done when the port is
\item if \var{close} is \schfalse{}, no action is done when the port is
closed.
\end{itemize}
@ -1424,7 +1424,7 @@ returned by \ide{write*} is undefined.
(l2 '(3 4))
(l3 '(5 6)))
(append! l1 l2 l3)
(list l1 l2 l3)) \ev \textit{writes} \verb+((1 2 . #0=(3 4 . #1=(5 6))) #0# #1#)+
(write* (list l1 l2 l3))) \ev \textit{writes} \verb+((1 2 . #0=(3 4 . #1=(5 6))) #0# #1#)+
\end{scheme}
\end{entry}
@ -1604,20 +1604,6 @@ Closes \var{port}. If \var{port} denotes a string port, further
reading or writing on this port is disallowed.
\end{entry}
\begin{entry}{%
\proto{copy-port}{ src dst}{procedure}}
\saut
Copies the content of the input port \var{src} to the output-port \var{dest}.
\begin{scheme}
(define copy-file
(lambda (src dst)
(with-input-from-file src (lambda ()
(with-output-to-file dst (lambda ()
(copy-port (current-input-port)
(current-output-port))))))))
\end{scheme}
\end{entry}
\begin{entry}{%
\proto{port-closed?}{ port}{procedure}}
\saut

@ -3,7 +3,7 @@
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: ??-Nov-1993 ??:??
% Last file update: 16-Aug-1999 20:21
% Last file update: 27-Sep-1999 15:24 (eg)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -155,6 +155,37 @@ Returns the widget name of \var{widget} as a symbol.
\end{scheme}
\end{entry}
\begin{entry}{%
\proto{tk-get}{ widget opt}{procedure}}
\saut
Returns the value of the widget option \var{opt} of \var{widget}.
\begin{scheme}
(begin
(label '.lab :text "Hello" :bd 3)
(cons (tk-get .lab :bd) (tk-get .lab :text)))
\lev (3 . "Hello")
\end{scheme}
See the online documentation for all the options provided by the Tk widgets.
(see \ref{help}).
\end{entry}
\begin{entry}{%
\proto{tk-set!}{ widget opt value}{procedure}}
\saut
Sets the value of the widget option \var{opt} of \var{widget} to the
given \var{value}.
\begin{scheme}
(begin
(label '.lab :text "Hello")
(tk-set! .lab :text "Hello, world!")
(tk-get .lab :text))
\lev "Hello, world!"
\end{scheme}
See the online documentation for all the options provided by the Tk widgets.
(see \ref{help}).
\end{entry}
\begin{entry}{
\proto{set-widget-data!}{ widget expr}{procedure}}
\saut
@ -273,6 +304,16 @@ in all the \texttt{export} clauses.
The result of \var{export} is undefined.
\end{entry}
\begin{entry}{%
\proto{export-all-symbols}{ } {procedure}}
\saut
Exports all the symbols defined in the current module.
The result of \var{export-all-symbols} is undefined.
\end{entry}
\begin{entry}{%
\proto{import}{ \hyperi{module} \hyperii{module}\ldots} {syntax}}
@ -1613,6 +1654,13 @@ option uses the external command {\tt rsh}. The shell variable {\tt
PATH} must be correctly set for accessing it without specifying its
abolute path.
\item {\tt :fork} must be followed by a boolean value. This value
specifies if a \emph{fork} system call must be done before running
the process. If the process is run without \emph{fork} the Scheme
program is lost. This feature mimics the ``exec'' primitive of the
Unix shells. By default, the process a fork is executed before
running the process (i.e. {\tt :fork} is \schtrue). This options
works on Unix implementations only.
\end{itemize}
The following example launches a process which execute the
Unix command {\tt ls} with the arguments {\tt -l} and {\tt

@ -3,7 +3,7 @@
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: 16-Dec-1997 14:00
% Last file update: 17-May-1999 00:07
% Last file update: 27-Sep-1999 15:30 (eg)
%
@ -770,6 +770,28 @@ of \var{symbol}. Symbols are searched for in the current environment.
\end{scheme}
\end{entry}
\begin{entry}{%
\proto{apropos}{ symbol}{ procedure}}
\saut
\ide{Apropos} returns a list of symbol whose print name contains the characters
of \var{symbol}. Symbols are searched for in the current environment.
\begin{scheme}
(apropos 'cadd) \lev (caddar caddr cadddr)
\end{scheme}
\end{entry}
\begin{entry}{%
\proto{help}{}{ procedure}}
\saut
\label{help}\schindex{help, getting}
\ide{help} pops a graphical help window giving acces to the online
documentation.
\begin{note}
Tk must be initialized to use \ide{inspect}.
\end{note}
\end{entry}
\begin{entry}{%
\proto{inspect}{ obj}{ procedure}}
\saut %
@ -787,7 +809,7 @@ Tk must be initialized to use \ide{inspect}.
\begin{figure}
\centerline{\psfig{figure={Inspector.ps}}}
\caption{A view of the Inspector}
\caption{A View of the Inspector}
\end{figure}
\end{entry}

Binary file not shown.

File diff suppressed because it is too large Load Diff

@ -16,7 +16,7 @@
*
* Author: Erick Gallesio [eg@kaolin.unice.fr]
* Creation date: 17-Jan-1994 17:49
* Last file update: 3-Sep-1999 20:20 (eg)
* Last file update: 14-Sep-1999 14:15 (eg)
*/
#include <stk.h>
@ -95,14 +95,17 @@ unsigned long sxhash(SCM obj)
case tc_integer:
case tc_bignum: return (unsigned long) STk_integer_value_no_overflow(obj);
case tc_flonum: return (unsigned long) FLONM(obj);
case tc_symbol: /* For some reasons
* return (unsigned long) obj;
* which is correct, yiels worse results than the
* following code. Perhaps, we have a better
*repartion by using hashing on the chars. Weird!
case tc_symbol: if (CELLINFO(obj) & CELL_INFO_UNINTERNED)
/* Interned symbol. Work on the interned one
* to have the same hash value
*/
obj = Intern(PNAME(obj));
/* For some reasons, returning just obj as an unsigned
* long, which is correct, yields worse results than
* the following code.
*/
return HASH_WORD(0, (unsigned long) obj);
return HashString(PNAME(obj));
return HASH_WORD(0, (unsigned long) obj);
case tc_keyword: return HashString(KEYVAL(obj));
case tc_string: return HashString(CHARS(obj));
case tc_vector: h = 0;
@ -116,8 +119,7 @@ unsigned long sxhash(SCM obj)
* object as a key. Note that returning the type
* works even if we have not COMPACT_SMALL_CST (as far as
* I know, nobody undefine it). In this case SMALL_CSTP
* always return FALSE.
*/
* always return FALSE. */
return (SMALL_CSTP(obj)) ? (unsigned long) obj:
(unsigned long) TYPE(obj);
}

@ -932,6 +932,9 @@ static void ImgXpmGetPixmapFromData(interp, masterPtr, instancePtr)
instancePtr->tkwin, Tk_GetUid("black"));
}
}
#if defined(STk_CODE) && defined(WIN32)
else colors[i].colorPtr = NULL;
#endif
} else {
colors[i].colorPtr = Tk_GetColor(interp,
instancePtr->tkwin, Tk_GetUid("black"));

@ -15,7 +15,7 @@
*
* Author: Erick Gallesio [eg@kaolin.unice.fr]
* Creation date: ??-???-1994 ??:??
* Last file update: 3-Sep-1999 20:22 (eg)
* Last file update: 14-Sep-1999 15:24 (eg)
*
*
* The implementation for Win32 is a contribution of people from Grammatech
@ -101,6 +101,10 @@ static char key_err[] = ":error";
static char key_wit[] = ":wait";
static char key_hst[] = ":host";
static char key_hide[] = ":hide";
#ifndef WIN32
static char key_fork[] = ":fork";
#endif
#if defined(SIGCHLD) && !defined(HPUX)
# define USE_SIGCHLD 1 /* What's the problem with HP? */
@ -635,14 +639,14 @@ static PRIMITIVE run_process(SCM l, int len)
static PRIMITIVE run_process(SCM l, int len)
{
SCM proc, tmp, redirection[3];
int pid, i, argc, waiting, hidden;
int pid, i, argc, waiting, hidden, do_fork;
struct process_info *info;
char host[100], msg[256], **argv, **argv_start;
/* Initializations */
int pipes[3][2];
argc = 0; waiting = FALSE; hidden = FALSE;
argc = 0; waiting = FALSE; hidden = FALSE; do_fork = TRUE;
argv_start = (char**)must_malloc((len+3)*sizeof(char *)); /* 3= NULL+rsh+host */
argv = argv_start + 2;
@ -691,6 +695,13 @@ static PRIMITIVE run_process(SCM l, int len)
hidden