Commit 77befc1f authored by Erick's avatar Erick

Commit version stklos-1.10

parent a27ab980
2011-12-04 Erick Gallesio <eg at unice.fr> <eg at unice.fr>
* doc/Makefile.in, lib/ffi.stk, src/Makefile.in, src/boot.c,
src/boot.img:
Fixed compilation problem with Cygwin. Now all tests are running on
Windows
[78b3362ddd8b] [tip]
2011-12-04 Erick Gallesio <eg at unice.fr> <eg at unice.fr>
* aclocal.m4, configure, doc/Makefile.in, pkgman/Makefile.am,
pkgman/Makefile.in, pkgman/lang-bigloo.inc, pkgman/lang-chicken.inc,
pkgman/lang-mzscheme.inc, src/Makefile.in, utils/stklos-genlex.stk,
utils/tmpgenlex:
Code adaptation for Win32
[76c31923b156]
2011-12-03 Erick Gallesio <[email protected]>
* lib/describe.stk, src/gnu-getopt.h, src/md5.c, src/md5.h:
Prefix md5 and getopt function with "STk_" to avoid name space
pollution.
[f2611bbc4ded]
* PORTING-NOTES, configure, configure.ac, etc/lion.patch:
Adding a patch for building on MacOs X Lion
[45124ff049e6]
2011-10-08 Erick Gallesio <[email protected]>
* src/read.c, tests/test-utf8.stk:
MacOs X Bug fix: isspace returns true for bytes beyond 0x80 even if
we use UTF-8 encoding.
[4a01e33d2e5d]
2011-09-18 Erick Gallesio <[email protected]>
* src/regexp.c, src/stklos.h, src/str.c, src/utf8.c:
Fixed a bug with indices of regexp-match-position with UTF-8 encoded
strings
[5297cdf417eb]
2011-09-04 Erick Gallesio <[email protected]>
* lib/repl-readline.stk, src/boot.c, src/boot.img, src/str.c, tests
/test-utf8.stk:
Bug fix with read-line and UTF-8 strings
[0062015a4dfe]
2011-08-28 Erick Gallesio <[email protected]>
* configure, configure.ac, lib/Makefile.in, pkgman/Makefile.in:
Corrected a typo in configure.ac
[600e1c10a12b]
* doc/stklos.1.in, lib/repl-readline.stk, src/boot.c, src/boot.img,
src/char.c, src/misc.c, src/port.c, src/stklos.h, src/str.c,
tests/test-utf8.stk:
Bug fix: read-line built bad UTF-8 strings
[ee299be2ff09]
2011-08-22 Erick Gallesio <[email protected]>
* doc/Makefile.am, doc/Makefile.in, doc/skb/Makefile,
doc/skb/biblio.skb, doc/skb/biblio.skbib, doc/skb/cond.skb,
doc/skb/custom.skb, doc/skb/doc-style.css, doc/skb/doc-style.tex,
doc/skb/eg-web-book.ske, doc/skb/expr.skb, doc/skb/ffi.skb,
doc/skb/index.skb, doc/skb/intro.skb, doc/skb/match.skb,
doc/skb/object.skb, doc/skb/overview.skb, doc/skb/progstruct.skb,
doc/skb/regexp.skb, doc/skb/scmpkg.skb, doc/skb/slib.skb,
doc/skb/srfi.skb, doc/skb/srfi.stk, doc/skb/stklos-version.stk.in,
doc/skb/threads.skb, doc/stklos-compile.1.in, doc/stklos-
config.1.in, doc/stklos-genlex.1.in, doc/stklos-pkg.1.in,
doc/stklos.1.in, etc/README, etc/simple-module.c, etc/simple-
stklos.c, etc/stk-dynload.c, examples/Makefile.am,
examples/Makefile.in, examples/fork-test.stk, examples/hello.stk,
examples/secho.stk, examples/socket-client.stk, examples/socket-
server.stk, examples/threads.stk, gmp/AUTHORS, gmp/ChangeLog,
gmp/Makefile.am, gmp/Makefile.in, gmp/NEWS, gmp/README,
gmp/README.mpi, gmp/gmp.c, gmp/gmp.h, gmp/mpi-config.h, gmp/mpi.c,
gmp/mpi.h, lib/Makefile.in, lib/STklos.init, lib/ScmPkg.d/scmpkg-
interface.stk, lib/ScmPkg.d/scmpkg-languages.stk, lib/ScmPkg.d
/scmpkg-support.stk, lib/assembler.stk, lib/bb.stk, lib/bigloo-
support.stk, lib/bigmatch.stk, lib/bonus.stk, lib/boot.stk,
lib/callcc.stk, lib/compfile.stk, lib/compiler.stk,
lib/computils.stk, lib/date.stk, lib/describe.stk, lib/env.stk,
lib/expand.ss, lib/ffi.stk, lib/full-conditions.stk, lib/full-
syntax.stk, lib/getopt.stk, lib/help.stk, lib/http.stk, lib/lex-
rt.stk, lib/load.stk, lib/logical.stk, lib/make-C-boot.stk,
lib/module.stk, lib/object.stk, lib/obsolete.stk, lib/peephole.stk,
lib/pp.stk, lib/process.stk, lib/r5rs.stk, lib/r7rs.stk,
lib/readline.stk, lib/recette.stk, lib/regexp.stk, lib/repl-
readline.stk, lib/repl.stk, lib/runtime.stk, lib/slib.stk,
lib/srfi-0.stk, lib/srfi-1.stk, lib/srfi-100.stk, lib/srfi-11.stk,
lib/srfi-13.stk, lib/srfi-14.stk, lib/srfi-17.stk, lib/srfi-2.stk,
lib/srfi-26.stk, lib/srfi-27.stk, lib/srfi-31.stk, lib/srfi-34.stk,
lib/srfi-35.stk, lib/srfi-36.stk, lib/srfi-4.stk, lib/srfi-45.stk,
lib/srfi-48.stk, lib/srfi-59.stk, lib/srfi-60.stk, lib/srfi-66.stk,
lib/srfi-69.stk, lib/srfi-7.stk, lib/srfi-70.stk, lib/srfi-74.stk,
lib/srfi-89.stk, lib/srfi-9.stk, lib/srfi-96.stk, lib/str.stk,
lib/struct.stk, lib/tar.stk, lib/thread.stk, lib/trace.stk,
pkgman/Makefile.am, pkgman/Makefile.in, pkgman/add.stk,
pkgman/copy.stk, pkgman/etc/Makefile-scmpkg.tmpl,
pkgman/extract.stk, pkgman/install.stk, pkgman/lang-bigloo.inc,
pkgman/lang-bigloo.l, pkgman/lang-chicken.inc, pkgman/lang-
chicken.l, pkgman/lang-mzscheme.inc, pkgman/lang-mzscheme.l,
pkgman/lang.stk, pkgman/main.stk, pkgman/misc.stk,
pkgman/params.stk, pkgman/pkgball.stk, pkgman/repository.stk,
pkgman/rewrite.stk, pkgman/tune.stk, pkgman/types.stk, src/base64.c,
src/boolean.c, src/boot.c, src/boot.img, src/box.c, src/char.c,
src/cond.c, src/cpointer.c, src/dynload.c, src/env.c, src/error.c,
src/extend.c, src/ffi.c, src/fixnum.c, src/fport.c, src/fport.h, src
/gnu-getopt.c, src/gnu-getopt.h, src/gnu-glob.c, src/hash.c,
src/hash.h, src/keyword.c, src/lib.c, src/list.c, src/md5.c,
src/md5.h, src/misc.c, src/mutex-common.c, src/mutex-common.h, src
/mutex-none.c, src/mutex-pthreads.c, src/mutex-pthreads.h,
src/number.c, src/object.c, src/object.h, src/parameter.c,
src/path.c, src/path.h, src/port.c, src/print.c, src/proc.c,
src/process.c, src/promise.c, src/read.c, src/regexp.c,
src/signal.c, src/sio.c, src/socket.c, src/socket.h, src/sport.c,
src/stklos.c, src/stklos.h, src/str.c, src/struct.c, src/struct.h,
src/symbol.c, src/system.c, src/thread-common.c, src/thread-
common.h, src/thread-none.c, src/thread-none.h, src/thread-
pthreads.c, src/thread-pthreads.h, src/utf8.c, src/uvector.c,
src/vector.c, src/vm.c, src/vm.h, src/vport.c, tests/Makefile.am,
tests/Makefile.in, tests/do-test.stk, tests/test-base64.stk, tests
/test-box.stk, tests/test-callcc.stk, tests/test-ffi.stk, tests
/test-fport.stk, tests/test-keyword.stk, tests/test-md5.stk, tests
/test-number.stk, tests/test-r5.stk, tests/test-r5rs-pitfall.stk,
tests/test-r7rs.stk, tests/test-regexp.stk, tests/test-sport.stk,
tests/test-srfi.stk, tests/test-threads.stk, tests/test.stk, utils
/make-doc, utils/shlib-options, utils/stklos-compile.stk,
utils/stklos-config.in, utils/stklos-genlex.stk,
utils/stklos-script.in, utils/tmpcomp:
Big source code patch with no modification: files are now encoded in
UTF-8
[4cd936478aa3]
2011-08-21 Erick Gallesio <[email protected]>
* configure, configure.ac, src/parameter.c, src/promise.c,
src/regexp.c, src/utf8.c:
Recognize UTF-8 strings in regexps
[39f976ea7fb8]
2011-08-19 Erick Gallesio <[email protected]>
* lib/srfi-74.stk:
Going back to the original implementation of SRFI-74, since there
are no more conflicting names
[efcd1746ca7a]
* lib/compfile.stk, lib/r7rs.stk, lib/srfi-4.stk, src/Makefile.am,
src/Makefile.in, src/blob.c, src/boolean.c, src/boot.c,
src/boot.img, src/lib.c, src/read.c, src/stklos.h, src/uvector.c:
Moved R7RS (draft-1) blobs to R7RS bytevectors (Draft-3). The
implementation is now in Scheme and fully compatible with u8vectors.
[9a269ab500b2]
2011-08-16 Erick Gallesio <[email protected]>
* doc/skb/stdproc.skb, lib/repl-readline.stk, src/char.c, src/port.c,
src/read.c, src/stklos.h, src/str.c, src/utf8.c:
- Added the possibility
* to insert hexadecimal character in symbols as in R6RS
* to specify characters in hexadecimal
- Changed the syntax of hexadecimal escape sequence in strings. (Octal
bytes are now deprecated)
- Added Continuation lines in strings compatible with R6RS
[2db7e5964220]
2011-08-14 Erick Gallesio <[email protected]>
* etc/Unicode/CaseFolding-6.0.0.txt, etc/Unicode/make-table.stk,
src/char.c:
Added the syntax #\x... to read character in hexadecimal
[4aa61d5580b7]
* doc/skb/lib.stk, doc/skb/stdproc.skb, doc/skb/stklos.skb,
src/char.c, src/hash.c, src/stklos.h, src/str.c:
Added new primitives: char-foldcase, string-foldcase,
string-foldcase!
[2447af70bb41]
2011-08-10 Erick Gallesio <[email protected]>
* lib/Makefile.am, lib/Makefile.in, lib/boot.stk, lib/srfi-0.stk,
lib/str.stk, src/boot.c, src/boot.img, src/stklos.c, src/str.c:
All string-* functions are now able to manage string encoded in
UTF-8
[c5b8fc4ea419]
2011-07-27 Erick Gallesio <[email protected]>
* configure, configure.ac, src/str.c:
Added comparison functions for UTF-8 strings
[27e88fbd9cee]
* src/uvector.c:
Weird: fix on s64/u64 patch disappeared.
[dc908643c386]
* lib/make-C-boot.stk, src/boot.c, src/boot.img:
Use read-byte instead of read-char when making the C boot file.
[5e9edbdd4c8a]
2011-07-24 Erick Gallesio <[email protected]>
* src/uvector.c:
Bug fix: u64 and s64 types were inverted
[2d9d0dcb6734]
2011-06-25 Erick Gallesio <eg at unice.fr> <eg at unice.fr>
* lib/compiler.stk, src/boot.c, src/boot.img:
Typo Fix leading to an illegal instruction on INT-SINT-FXMUL2
[7761db05ed07]
2011-07-27 Erick Gallesio <[email protected]>
* doc/skb/lib.stk, lib/bonus.stk, lib/compiler.stk, lib/date.stk,
lib/ffi.stk, lib/getopt.stk, lib/load.stk, lib/mbe.stk,
lib/module.stk, lib/pp.stk, lib/process.stk, lib/r5rs.stk,
lib/struct.stk, lib/thread.stk, src/boolean.c, src/boot.c,
src/boot.img, src/char.c, src/cond.c, src/env.c, src/fport.c,
src/hash.c, src/mutex-pthreads.c, src/number.c, src/parameter.c,
src/port.c, src/print.c, src/process.c, src/read.c, src/socket.c,
src/stklos.c, src/stklos.h, src/str.c, src/struct.c, src/system.c,
src/thread-pthreads.c, src/utf8.c, src/vport.c, tests/do-test.stk,
tests/test-utf8.stk:
Added UTF-8 support to most of the string functions (string-ref
string-set!, string-upcase, string-downcase, ...). Comparisons are
not done yet
[99f89e3625bd]
2011-05-06 Erick Gallesio <[email protected]>
* src/lib.c, src/stklos.h, src/str.c, src/utf8.c:
Added UTF-8 support to string-ref, string<->list
[c532fed16b13]
2011-05-05 Erick Gallesio <[email protected]>
* src/stklos.h, src/str.c, src/utf8.c:
started implementation of multi-bytes strings
[cfa72908efa7]
* src/stklos.h, src/str.c:
Changed the internal representation of strings to support multibytes
strings No real support for now
[0c983684e5e9]
2011-05-01 Erick Gallesio <[email protected]>
* src/Makefile.am, src/Makefile.in, src/char.c, src/sio.c,
src/stklos.h, src/utf8.c:
Added the utf8.c file
[6617ae7519dd]
2011-04-23 Erick Gallesio <[email protected]>
* Makefile.in, configure, configure.ac, doc/Makefile.in,
examples/Makefile.in, lib/Lalr.d/Makefile.in, lib/Makefile.in,
lib/Match.d/Makefile.in, lib/SILex.d/Makefile.in,
lib/ScmPkg.d/Makefile.in, lib/boot.stk, lib/repl.stk,
pkgman/Makefile.in, src/Makefile.in, src/boot.c, src/boot.img,
src/char.c, src/port.c, src/print.c, src/read.c, src/stklos.c,
src/stklos.h, tests/Makefile.in, utils/Makefile.in:
Start adding support for UTF-8. See below for details:
- Implementation is far form complete
- Unicode characters are recognized but strings are not yet in UTF-8
- Unicode characters are printed in UTF-8
- added a new option to enable/disable UTF-8
[0848c16be70e]
2011-04-20 Erick Gallesio <[email protected]>
* doc/extract-doc.stk, lib/r7rs.stk, lib/srfi-74.stk, src/Makefile.am,
src/Makefile.in, src/blob.c, src/boolean.c, src/boot.c,
src/boot.img, src/lib.c, src/stklos.h, src/vector.c, tests/do-
test.stk, tests/test-r7rs.stk:
Added R7RS blobs
[f692bd102e36]
2011-04-17 Erick Gallesio <[email protected]>
* lib/Makefile.am, lib/Makefile.in, lib/boot.stk, lib/r7rs.stk,
src/boot.c, src/boot.img, tests/test-r7rs.stk:
Added support for R7RS. New primitives: make-list, string-map,
string-for-each, vector-for-each, vector-map
[139b3ea334d1]
2010-12-30 Erick Gallesio <[email protected]>
* STklos 1.01 Release
......
......@@ -4,6 +4,32 @@
| NEWS |
+======+
* version 1.10
This version brings the support of UTF-8 encoding and begins to support some (future) R7RS traits:
* Added full support for UTF-8 strings and symbols
* Added support for Win32 support under Cygwin
* Added some support for R7RS traits:
o bytesvectors
o hexadecimal chars in strings and symbols
o continuations lines in strings
o New primitives
- char-foldcase
- string-foldcase
- string-foldcase!
- make-list
- string-map
- string-for-each
- vector-for-each
- vector-map
* Added support for MacOs X Lion
* Added back support for Win32 using Cygwin (this support has still rough
edges. See the file PORTING-NOTES in the distribution directory for
details)
* Bug Fixes
* version 1.01 (2010 12 29)
This is mainly a maintenance version.
......
Version 1.0 is known to compile with the standard invocation
Version 1.x is known to compile with the standard invocation
configure && make && sudo make install
on the following architectures
- Linux 2.6 (gcc-4.x 32 and 64 bits)
- MacOS 10.5+ (gcc-4.x 32 and 64 bits)
- FreeBSD 8.x (gcc-4.x 32 bits)
- Win32 (cygwin 1.7.x)
MacOs X Lion
To compile stklos on MacOs X Lion, you the following
To compile stklos on MacOs X Lion, the following
configuration line is known to work:
$ CFLAGS="-Wl,-no_pie,-no_compact_unwind" ./configure \
--with-provided-gc --with-provided-regexp \
--with-provided-ffi --with-provided-bignum
--with-provided-ffi --with-provided-bignum
Win32
The Cygwin version of Boehm GC doesn't work with STklos. Consequently,
you need at least a configuration such as
$ ./configure --with-provided-gc
to have a working version of STklos.
Note that the current version is a rather direct port of STklos and
has rough edges (in particular thers is no real support for the DOS
drives and the functions using pathnames use a Unixy syntax, rather
than the more conventional DOS one). Dynamic loading works, but GTK
support has not been tested.
======================================================================
======================================================================
......
-*- outline -*-
S T k l o s ( v e r s i o n 1 . 0 1 )
S T k l o s ( v e r s i o n 1 . 1 0 )
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
Erick Gallesio
......@@ -64,6 +64,7 @@ STklos is known to work on the following architectures:
* Linux 1.6.x (i386/gcc 32 and 64bits)
* Mac OS X 10.5+ (i386/gcc 32 and 64 bits)
* FreeBSD 8.x (i386/gcc 32 bits and 64 bits)
* Win32 (using Cygwin 1.7.x)
Previous versions of STklos have run on various architectures. All
......
/*
* CSS for STklos Documentation
*
*
* Author: Erick Gallesio [[email protected]]
* Creation date: 13-Oct-2004 11:42 (eg)
* Last file update: 10-Aug-2010 00:13 (eg)
*/
html {
html {
background: #F1EEE0;
}
h3 {
h3 {
font-size: 150%;
}
h4 {
h4 {
font-size: 120%;
}
......@@ -33,18 +33,18 @@ h4 {
.code {
border: 1px solid;
border: 1px solid;
border-bottom: 2px solid;
border-right: 2px solid;
}
A:link, A:visited {
color: #0B4796 ;
text-decoration: none;
text-decoration: none;
}
A:hover {
background: #aaaaff;
text-decoration: none;
background: #aaaaff;
text-decoration: none;
}
......@@ -15,10 +15,10 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-43510">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44516">*Top*</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a><br /><table cellspacing="1" cellpadding="1" width="100%">
<tbody>
<tr><td valign="top" align="left">1.1</td><td colspan="4" width="100%"><a href="stklos-ref-1.html#-section-5038">Overview of <span style="font-variant: small-caps">STklos</span></td></tr>
<tr><td valign="top" align="left">1.1</td><td colspan="4" width="100%"><a href="stklos-ref-1.html#-section-5059">Overview of <span style="font-variant: small-caps">STklos</span></td></tr>
<tr><td valign="top" align="left">1.2</td><td colspan="4" width="100%"><a href="stklos-ref-1.html#-Lexical-Conventions"> Lexical Conventions</td></tr>
<tr><td valign="top" align="left">1.3</td><td colspan="4" width="100%"><a href="stklos-ref-1.html#Basic-Concepts">Basic Concepts</td></tr>
</tbody>
......@@ -42,9 +42,9 @@
</tbody></table>
</td>
<td align="left" valign="top">
<a name="-section-5038"></a>
<a name="-section-5059"></a>
<h3><font color="darkolivegreen">1.1 Overview of <span style="font-variant: small-caps">STklos</span></font></h3>
<a name="--index-entry-4994"></a><a name="--index-entry-4999"></a><p> <span style="font-variant: small-caps">STklos</span> is the successor of <span style="font-variant: small-caps">STk</span>
<a name="--index-entry-5015"></a><a name="--index-entry-5020"></a><p> <span style="font-variant: small-caps">STklos</span> is the successor of <span style="font-variant: small-caps">STk</span>
[<a href="stklos-ref-16.html#Gallesio95-1a">6</a>], a Scheme interpreter which was tightly
connected to the Tk graphical toolkit [<a href="stklos-ref-16.html#Ouster-Tk">11</a>].
<span style="font-variant: small-caps">STk</span> had an object layer which was called <span style="font-variant: small-caps">STklos</span>. At this
......@@ -54,7 +54,7 @@ extension. For instance, when programming a GUI application,
a user could access the widgets at the (low) Tk level, or access
them using a neat hierarchy of classes wrapped in <span style="font-variant: small-caps">STklos</span>.</p><p> Since the object layer is now more closely integrated with
the language, the new system has been renamed <span style="font-variant: small-caps">STklos</span> and
<span style="font-variant: small-caps">STk</span> is now used to designate the old system. </p><a name="--index-entry-5022"></a><p> <strong>Compatibility with <span style="font-variant: small-caps">STk</span></strong>: <span style="font-variant: small-caps">STklos</span> has been
<span style="font-variant: small-caps">STk</span> is now used to designate the old system. </p><a name="--index-entry-5043"></a><p> <strong>Compatibility with <span style="font-variant: small-caps">STk</span></strong>: <span style="font-variant: small-caps">STklos</span> has been
completely rewritten and as a consequence, due to new
implementation choices, old <span style="font-variant: small-caps">STk</span> programs are not fully
compatible with the new system. However, these changes are very
......@@ -68,13 +68,13 @@ identical in every points, share the same philosophy.</p><a name="-Lexical-Conve
<h3 id="-Lexical-Conventions"><font color="darkolivegreen">1.2 Lexical Conventions</font></h3>
<a name="Identifiers"></a>
<h4 id="Identifiers"><font color="darkolivegreen">1.2.1 Identifiers</font></h4>
<a name="--index-entry-5041"></a><p>In <span style="font-variant: small-caps">STklos</span>, identifiers which start (or end) with a colon
<a name="--index-entry-5062"></a><p>In <span style="font-variant: small-caps">STklos</span>, identifiers which start (or end) with a colon
"<code>:</code>" are considered as keywords. For instance
<code>:foo</code> and <code>bar:</code> are <span style="font-variant: small-caps">STklos</span> keywords, but
<code>not:key</code> is not a keyword. See
section&nbsp;<a href="stklos-ref-4.html#Keywords">Keywords</a> for more information</p><a name="Comments"></a>
<h4 id="Comments"><font color="darkolivegreen">1.2.2 Comments</font></h4>
<a name="--index-entry-5059"></a><a name="--index-entry-5063"></a><a name="--index-entry-5067"></a><a name="--index-entry-5071"></a><a name="--index-entry-5075"></a><p>There are four types of comments in <span style="font-variant: small-caps">STklos</span>:</p><ul><li>a semicolon "<code>;</code>" indicates the start of a
<a name="--index-entry-5080"></a><a name="--index-entry-5084"></a><a name="--index-entry-5088"></a><a name="--index-entry-5092"></a><a name="--index-entry-5096"></a><p>There are four types of comments in <span style="font-variant: small-caps">STklos</span>:</p><ul><li>a semicolon "<code>;</code>" indicates the start of a
comment. This kind of comment extends to the end of the line (as
described in <span style="font-variant: small-caps">R<sup>5</sup>RS</span>).</li>
<li> multi-lines comment use the classical Lisp convention:
......@@ -82,17 +82,17 @@ a comment begins with "<code>#|</code>" and ends with "<code>|#</code>".
This form of comment is now defined by <strong><a href="http://srfi.schemers.org/srfi-30/srfi-30.html">SRFI-30</a></strong>
(<em>Nested Multi-line Comments</em>).</li>
<li>a sharp sign followed by a semicolon "<code>#;</code>"
comments the next Scheme expression. This is useful to comment
comments the next Scheme expression. This is useful to comment
a piece of code which spans multiple lines</li>
<li>comments can also be introduced by "<code>#!</code>"''.
Such a comment extends to the end of the line which introduces
it. This extension is particularly useful for building <span style="font-variant: small-caps">STklos</span>
scripts. On most Unix implementations, if the first line of a
script looks like this:
script looks like this:
<pre> #!/usr/local/bin/stklos -file </pre>
then the script can be started directly as if it was a binary
program. <span style="font-variant: small-caps">STklos</span> is loaded behind the scene and
executes the script as a Scheme program. This form is compatible with
executes the script as a Scheme program. This form is compatible with
the notation introduced in <strong><a href="http://srfi.schemers.org/srfi-22/srfi-22.html">SRFI-22</a></strong>
(<em>Running Scheme Scripts on Unix</em>)<p>Note that, as a special case, that the sequences
"<code>#!key</code>", "<code>#!optional</code>" and
......@@ -103,10 +103,10 @@ accepts keywords and optional arguments, to be compatible with
DSSSL lambdas [<a href="stklos-ref-16.html#dsssl-96">10</a>].</p></li>
</ul><a name="Here-Strings"></a>
<h4 id="Here-Strings"><font color="darkolivegreen">1.2.3 Here Strings</font></h4>
<a name="--index-entry-5130"></a><a name="--index-entry-5134"></a><p>Here strings permit to easily enter multilines strings in programs.
The sequence of characters <em>#&lt;&lt;</em> starts a here string. The characters
<a name="--index-entry-5151"></a><a name="--index-entry-5155"></a><p>Here strings permit to easily enter multilines strings in programs.
The sequence of characters <em>#&lt;&lt;</em> starts a here string. The characters
following this sequence #&lt;&lt; until a newline character define a terminator for
the here string. The content of the string includes all characters between
the here string. The content of the string includes all characters between
the <em>#&lt;&lt;</em> line and a line whose only content is the specified terminator.
No escape sequences are recognized between the starting and terminating lines.</p><p><strong>Example: </strong>the sequence</p><pre>
#&lt;&lt;EOF
......@@ -132,7 +132,7 @@ outermost <code>read</code>.</li>
previously labeled by a <code>#n=</code> notation; that is,
<code>#n#</code> represents a pointer to the object labeled exactly
by <code>#n=</code>. For instance, the object returned by the
following expression
following expression
<pre>
(let* ((a (list 1 2))
......@@ -149,6 +149,6 @@ can also be represented in this way:
See the original <span style="font-variant: small-caps">R<sup>5</sup>RS</span> document for more informations on
the basic concepts of the Scheme Programming Language.<p></p></td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Wed Dec 29 20:20:59 2010</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Sat Dec 31 15:49:29 2011</em></small>
</body>
</html>
......@@ -15,7 +15,7 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-43510">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44516">*Top*</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">3&nbsp;</td><td align="left"><a href="stklos-ref-3.html#Program-structure">Program structure</a></td></tr>
......@@ -38,11 +38,11 @@
<p><span style="font-variant: small-caps">STklos</span> environement can be customized using
<a href="stklos-ref-4.html#Parameter-Objects">parameters objects</a>. These
parmaters are listed below.</p><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="real-precision"></a><a name="--index-entry-40758"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="real-precision"></a><a name="--index-entry-41766"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(real-precision)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<code><strong><font color="IndianRed">(real-precision value)</font></strong></code><br /><br />This parameter object permits to change the default precision used
to print real numbers.
<code><strong><font color="IndianRed">(real-precision value)</font></strong></code><br /><br />This parameter object permits to change the default precision used
to print real numbers.
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="ivory"><pre>(real-precision) &#8658; 15
(<font color="#6959cf"><strong>define</strong></font> f 0.123456789)
......@@ -53,37 +53,37 @@ to print real numbers.
</tbody></table></blockquote>
</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="read-case-sensitive"></a><a name="--index-entry-40809"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="read-case-sensitive"></a><a name="--index-entry-41817"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(read-case-sensitive)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<code><strong><font color="IndianRed">(read-case-sensitive value)</font></strong></code><br /><br />This parameter object permits to change the default behaviour of
the <code>read</code> primitive when reading a symbol. If this parameter has a
a true value a symbol is not converted to a default case when interned.
Since <span style="font-variant: small-caps">R<sup>5</sup>RS</span> requires that symbol are case insignificant, the default
<code><strong><font color="IndianRed">(read-case-sensitive value)</font></strong></code><br /><br />This parameter object permits to change the default behaviour of
the <code>read</code> primitive when reading a symbol. If this parameter has a
a true value a symbol is not converted to a default case when interned.
Since <span style="font-variant: small-caps">R<sup>5</sup>RS</span> requires that symbol are case insignificant, the default
value of this parameter is <code>#f</code>.
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="ivory"><pre>(read-case-sensitive) &#8658; <code>#f</code>
(<font color="#6959cf"><strong>define</strong></font> x 'Symbol)
(display x) -| symbol
(read-case-sensitive t)
(read-case-sensitive #t)
(<font color="#6959cf"><strong>define</strong></font> y 'Symbol)
(display y) -| Symbol
</pre></td></tr>
</tbody></table></blockquote>
<strong>Note:</strong> Default behaviour can be changed for a whole execution
<strong>Note:</strong> Default behaviour can be changed for a whole execution
with the <code>--case-sensitive</code> option.
<br /><br />
<strong>Note:</strong> See also syntax for <a href="stklos-ref-4.html#bar-in-symbol">special characters</a> in symbols.
</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="write-pretty-quotes"></a><a name="--index-entry-40905"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="write-pretty-quotes"></a><a name="--index-entry-41913"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(write-pretty-quotes)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<code><strong><font color="IndianRed">(write-pretty-quotes value)</font></strong></code><br /><br />This parameter object permits to change the default behaviour of
the <code>display</code> or <code>write</code> primitives when they write a list which starts with
the symbol quote, quasiquote, unquote or unquote-splicing. If this parameter
has a false value, the writer uses the list notation instead of a
<code><strong><font color="IndianRed">(write-pretty-quotes value)</font></strong></code><br /><br />This parameter object permits to change the default behaviour of
the <code>display</code> or <code>write</code> primitives when they write a list which starts with
the symbol quote, quasiquote, unquote or unquote-splicing. If this parameter
has a false value, the writer uses the list notation instead of a
more human-readable value.
By default, this parameter value is set to <code>#t</code>.
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
......@@ -96,33 +96,33 @@ By default, this parameter value is set to <code>#t</code>.
</tbody></table></blockquote>
</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="load-path"></a><a name="--index-entry-40963"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="load-path"></a><a name="--index-entry-41971"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(load-path)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<code><strong><font color="IndianRed">(load-path value)</font></strong></code><br /><br /><code>load-path</code> is a parameter object. It