Commit 2e8354f9 authored by Erick Gallesio's avatar Erick Gallesio

Commit version stklos-0.80

parent 464b522e
......@@ -5,6 +5,8 @@
* src/stklos.c:
* src/stklos.h: Fixes for MacOS X
* src/*-lurc.*: Aplied the pathches from Stephane for Lurc.
2006-10-27 Erick Gallesio <eg@essi.fr>
* Changed the GC to version 7.0alpha7
......
......@@ -6,7 +6,16 @@
* version 0.80 (2006 10 27)
This is a version with important changes for supporting multi-threading.
This is a version with important changes to support
multi-threading. This version provides two kinds of threads: LURC
threads and Posix threads (aka pthreads). LURC threads are
implemented using the LURC library, the Light ULM/Reactive library
for C developed at INRIA. LURC supports the creation of
synchronous cooperative threads, synchronizing and communicating
with each other using signals in a deterministic scheduler (see
http://www-sop.inria.fr/mimosa/Stephane.Epardaud/lurc for
details).
* Thread support
* Better error messages
......
......@@ -15,10 +15,10 @@
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-19777">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-29879">*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-809">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-4175">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>
......@@ -31,19 +31,20 @@
<tr class="navnorm"><td width="8%" align="left" valign="top">6&nbsp;</td><td align="left"><a href="stklos-ref-6.html#Pattern-Matching">Pattern Matching</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">7&nbsp;</td><td align="left"><a href="stklos-ref-7.html#Exceptions-and-Conditions">Exceptions and Conditions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">8&nbsp;</td><td align="left"><a href="stklos-ref-8.html#STklos-Object-System">STklos Object System</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">9&nbsp;</td><td align="left"><a href="stklos-ref-9.html#Customizations">Customizations</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Using-the-SLIB-package">Using the SLIB package</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#SRFIs">SRFIs</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">12&nbsp;</td><td align="left"><a href="stklos-ref-12.html#Index">Index</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">&nbsp;</td><td align="left"><a href="stklos-ref-13.html#Bibliography">Bibliography</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">9&nbsp;</td><td align="left"><a href="stklos-ref-9.html#Threads--Mutexes-and-Condition-Variables">Threads, Mutexes and Condition Variables</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Customizations">Customizations</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#Using-the-SLIB-package">Using the SLIB package</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">12&nbsp;</td><td align="left"><a href="stklos-ref-12.html#SRFIs">SRFIs</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">13&nbsp;</td><td align="left"><a href="stklos-ref-13.html#Index">Index</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">&nbsp;</td><td align="left"><a href="stklos-ref-14.html#Bibliography">Bibliography</a></td></tr>
</tbody></table>
</td>
<td align="left" valign="top">
<a name="-section-809"></a>
<a name="-section-4175"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3><font color="#000000">1.1 Overview of <span style="font-variant: small-caps">STklos</span></font></h3></table>
<a name="--index-entry-765"></a><a name="--index-entry-770"></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-13.html#Gallesio95-1a">6</a>], a Scheme interpreter which was tightly
connected to the Tk graphical toolkit [<a href="stklos-ref-13.html#Ouster-Tk">11</a>].
<a name="--index-entry-4131"></a><a name="--index-entry-4136"></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-14.html#Gallesio95-1a">6</a>], a Scheme interpreter which was tightly
connected to the Tk graphical toolkit [<a href="stklos-ref-14.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
time, <span style="font-variant: small-caps">STk</span> was used to denote the base Scheme interpreter and
<span style="font-variant: small-caps">STklos</span> was used to denote its object layer, which was an
......@@ -51,7 +52,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-793"></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-4159"></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
......@@ -59,19 +60,19 @@ minor and adapting a <span style="font-variant: small-caps">STk</span> program f
generally quite easy. The only programs which need heavier work
are programs which use Tk without objects, since the new
preferred GUI system is now based on GTK+
[<a href="stklos-ref-13.html#GTK">2</a>]. Programmers used to GUI programming using
[<a href="stklos-ref-14.html#GTK">2</a>]. Programmers used to GUI programming using
<span style="font-variant: small-caps">STklos</span> classes will find that both system, even if not
identical in every points, share the same philosophy.</p><a name="-Lexical-Conventions"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="-Lexical-Conventions"><font color="#000000">1.2 Lexical Conventions</font></h3></table>
<a name="Identifiers"></a>
<h4 id="Identifiers"><font color="darkolivegreen">1.2.1 Identifiers</font></h4>
<a name="--index-entry-812"></a><p>In <span style="font-variant: small-caps">STklos</span>, identifiers which start (or end) with a colon
<a name="--index-entry-4178"></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-830"></a><a name="--index-entry-834"></a><a name="--index-entry-838"></a><a name="--index-entry-842"></a><a name="--index-entry-846"></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-4196"></a><a name="--index-entry-4200"></a><a name="--index-entry-4204"></a><a name="--index-entry-4208"></a><a name="--index-entry-4212"></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:
......@@ -97,7 +98,7 @@ the notation introduced in <strong><a href="http://srfi.schemers.org/srfi-22/srf
keywords "<code>:key</code>", "<code>:optional</code>" and
"<code>:rest</code>". This permits to Scheme lambdas, which
accepts keywords and optional arguments, to be compatible with
DSSSL lambdas [<a href="stklos-ref-13.html#dsssl-96">10</a>].</p></li>
DSSSL lambdas [<a href="stklos-ref-14.html#dsssl-96">10</a>].</p></li>
</ul><a name="Other-Notations"></a>
<h4 id="Other-Notations"><font color="darkolivegreen">1.2.3 Other Notations</font></h4>
<p><span style="font-variant: small-caps">STk</span> accepts all the notations defined in <span style="font-variant: small-caps">R<sup>5</sup>RS</span> plus</p><ul><li>"<code>[]</code>" Brackets are equivalent to
......@@ -134,6 +135,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.inria.fr/mimosa/fp/Skribe">Skribe</a>.<br />Last update <em>Wed Jan 4 14:05:32 2006</em></small>
<a href="http://www.inria.fr/mimosa/fp/Skribe">Skribe</a>.<br />Last update <em>Sat Oct 28 21:51:46 2006</em></small>
</body>
</html>
......@@ -11,11 +11,11 @@
<link href="doc-style.css" rel="stylesheet" type="text/css">
</head>
<body >
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#E6F2E6"><center><h1>STklos Reference Manual<hr align="center" width="10%">10. Using the SLIB package</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#E6F2E6"><center><h1>STklos Reference Manual<hr align="center" width="10%">10. Customizations</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-19777">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-29879">*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>
......@@ -24,31 +24,92 @@
<tr class="navnorm"><td width="8%" align="left" valign="top">6&nbsp;</td><td align="left"><a href="stklos-ref-6.html#Pattern-Matching">Pattern Matching</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">7&nbsp;</td><td align="left"><a href="stklos-ref-7.html#Exceptions-and-Conditions">Exceptions and Conditions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">8&nbsp;</td><td align="left"><a href="stklos-ref-8.html#STklos-Object-System">STklos Object System</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">9&nbsp;</td><td align="left"><a href="stklos-ref-9.html#Customizations">Customizations</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Using-the-SLIB-package">Using the SLIB package</a><br /></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#SRFIs">SRFIs</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">12&nbsp;</td><td align="left"><a href="stklos-ref-12.html#Index">Index</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">&nbsp;</td><td align="left"><a href="stklos-ref-13.html#Bibliography">Bibliography</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">9&nbsp;</td><td align="left"><a href="stklos-ref-9.html#Threads--Mutexes-and-Condition-Variables">Threads, Mutexes and Condition Variables</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Customizations">Customizations</a><br /></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#Using-the-SLIB-package">Using the SLIB package</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">12&nbsp;</td><td align="left"><a href="stklos-ref-12.html#SRFIs">SRFIs</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">13&nbsp;</td><td align="left"><a href="stklos-ref-13.html#Index">Index</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">&nbsp;</td><td align="left"><a href="stklos-ref-14.html#Bibliography">Bibliography</a></td></tr>
</tbody></table>
</td>
<td align="left" valign="top">
<a name="--index-entry-19046"></a><a name="--index-entry-19050"></a><p>Aubrey Jaffer maintains a package called
<em><a href="http://swiss.csail.mit.edu/~jaffer/SLIB">SLIB</a></em>
which is a portable Scheme library which provides compatibility
and utility functions for all standard Scheme implementations. To
use this package, you have just to type</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;slib&quot;</font>)
<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-28604"></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.
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(real-precision) &#8658; 15
(<font color="#6959cf"><strong>define</strong></font> f 0.123456789)
(display f) -| 0.123456789
(real-precision 3)
(display f) -| 0.123
</pre></td></tr>
</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-28646"></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
value of this parameter is f.
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(read-case-sensitive) &#8658; f
(<font color="#6959cf"><strong>define</strong></font> x 'Symbol)
(display x) -| symbol
(read-case-sensitive t)
(<font color="#6959cf"><strong>define</strong></font> y 'Symbol)
(display y) -| Symbol
</pre></td></tr>
</tbody></table></blockquote>
<p>and follow the instructions given in the <em>SLIB</em> library
to use a particular package.</p><p><strong>Note:</strong> <em>SLIB</em> uses also the
<em>require and provide</em> mechanism to load components of the
library. Once <em>SLIB</em> has been loaded, the standard
<span style="font-variant: small-caps">STklos</span> <code>require</code> and <code>provide</code> are overloaded
such as if their parameter is a string this is the old <span style="font-variant: small-caps">STklos</span>
procedure which is called, and if their parameter is a symbol,
this is the <em>SLIB</em> one which is called.</p></td>
<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="load-path"></a><a name="--index-entry-28705"></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
returns the current load path. The load path is a list of strings
which correspond to the directories in which a file must be searched for
loading. Directories of the load path are <em>prepended</em> (in
their apparition
order) to the file name given to <code>load</code> or <code>try-load</code> until the file
can be loaded.
<br /><br />
The initial value of the current load path can be set from the shell, by
setting the <code>STKLOS_LOAD_PATH</code> shell variable.
<br /><br />
Giving a <code>value</code> to the parameter <code>load-path</code> permits to change the
current list of paths.</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="load-suffixes"></a><a name="--index-entry-28745"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(load-suffixes)</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-suffixes value)</font></strong></code><br /><br /><code>load-suffixes</code> is a parameter object. It
returns the list of possible suffixes for a Scheme file. Each suffix,
must be a string. Suffixes are appended (in their apparition order)
to a file name is appended to a file name given to <code>load</code> or <code>try-load</code>
until the file can be loaded. </td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="load-verbose"></a><a name="--index-entry-28773"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(load-verbose)</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-verbose value)</font></strong></code><br /><br /><code>load-verbose</code> is a parameter object. It permits to display the
path name of the files whch are loaded by <code>load</code> or <code>try-load</code> on
the current error port, when set to a true value. If <code>load-verbose</code>
is set to <code>#f</code>, no message is printed.</td></tr>
</tbody></table></td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.inria.fr/mimosa/fp/Skribe">Skribe</a>.<br />Last update <em>Wed Jan 4 14:05:39 2006</em></small>
<a href="http://www.inria.fr/mimosa/fp/Skribe">Skribe</a>.<br />Last update <em>Sat Oct 28 21:51:51 2006</em></small>
</body>
</html>
......@@ -11,11 +11,11 @@
<link href="doc-style.css" rel="stylesheet" type="text/css">
</head>
<body >
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#E6F2E6"><center><h1>STklos Reference Manual<hr align="center" width="10%">11. SRFIs</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#E6F2E6"><center><h1>STklos Reference Manual<hr align="center" width="10%">11. Using the SLIB package</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-19777">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-29879">*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>
......@@ -24,308 +24,32 @@
<tr class="navnorm"><td width="8%" align="left" valign="top">6&nbsp;</td><td align="left"><a href="stklos-ref-6.html#Pattern-Matching">Pattern Matching</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">7&nbsp;</td><td align="left"><a href="stklos-ref-7.html#Exceptions-and-Conditions">Exceptions and Conditions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">8&nbsp;</td><td align="left"><a href="stklos-ref-8.html#STklos-Object-System">STklos Object System</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">9&nbsp;</td><td align="left"><a href="stklos-ref-9.html#Customizations">Customizations</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Using-the-SLIB-package">Using the SLIB package</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#SRFIs">SRFIs</a><br /><table cellspacing="1" cellpadding="1" width="100%">
<tbody>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-0----Feature-based-conditional-expansion-construct">SRFI-0 -- Feature-based conditional expansion construct</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-1----List-Library">SRFI-1 -- List Library</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-2----AND-LET---an-AND-with-local-bindings--a-guarded-LET--special-form">SRFI-2 -- AND-LET*: an AND with local bindings, a guarded LET* special form</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-4----Homogeneous-numeric-vector-datatypes">SRFI-4 -- Homogeneous numeric vector datatypes</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-6----Basic-String-Ports">SRFI-6 -- Basic String Ports</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-7----Feature-based-program-configuration-language-">SRFI-7 -- Feature-based program configuration language </td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-8----Receive--Binding-to-multiple-values">SRFI-8 -- Receive: Binding to multiple values</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-9----Defining-Record-Types">SRFI-9 -- Defining Record Types</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-10----Sharp-Comma-External-Form">SRFI-10 -- Sharp Comma External Form</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-11----Syntax-for-receiving-multiple-values">SRFI-11 -- Syntax for receiving multiple values</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-13----String-Library">SRFI-13 -- String Library</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-14----Character-Set-Library">SRFI-14 -- Character-Set Library</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-16----Syntax-for-procedures-of-variable-arity">SRFI-16 -- Syntax for procedures of variable arity</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-17----Generalized-set-">SRFI-17 -- Generalized set!</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-22----Running-Scheme-Scripts-on-Unix">SRFI-22 -- Running Scheme Scripts on Unix</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-23----Error-reporting-mechanism">SRFI-23 -- Error reporting mechanism</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-26----Notation-for-Specializing-Parameters-without-Currying">SRFI-26 -- Notation for Specializing Parameters without Currying</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-27----Source-of-random-bits">SRFI-27 -- Source of random bits</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-28----Basic-Format-Strings">SRFI-28 -- Basic Format Strings</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-30----Nested-Multi-line-Comments">SRFI-30 -- Nested Multi-line Comments</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-31----A-special-form-for-recursive-evaluation">SRFI-31 -- A special form for recursive evaluation</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-34----Exception-Handling-for-Programs">SRFI-34 -- Exception Handling for Programs</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-35----Conditions">SRFI-35 -- Conditions</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-36----I-O-Conditions">SRFI-36 -- I/O Conditions</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-38----External-representation-of-shared-structures">SRFI-38 -- External representation of shared structures</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-39----Parameters-objects">SRFI-39 -- Parameters objects</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-48----Intermediate-Format-Strings">SRFI-48 -- Intermediate Format Strings</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-55----Require-extension">SRFI-55 -- Require-extension</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-60----Integers-as-bits">SRFI-60 -- Integers as bits</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-62----S-expression-comments">SRFI-62 -- S-expression comments</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-66----Octet-Vectors">SRFI-66 -- Octet Vectors</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-69----Basic-Hash-Tables">SRFI-69 -- Basic Hash Tables</td></tr>
<tr><td valign="top" align="left"></td><td colspan="4" width="100%"><a href="stklos-ref-11.html#SRFI-70----Numbers">SRFI-70 -- Numbers</td></tr>
</tbody>
</table>
</td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">12&nbsp;</td><td align="left"><a href="stklos-ref-12.html#Index">Index</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">&nbsp;</td><td align="left"><a href="stklos-ref-13.html#Bibliography">Bibliography</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">9&nbsp;</td><td align="left"><a href="stklos-ref-9.html#Threads--Mutexes-and-Condition-Variables">Threads, Mutexes and Condition Variables</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Customizations">Customizations</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#Using-the-SLIB-package">Using the SLIB package</a><br /></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">12&nbsp;</td><td align="left"><a href="stklos-ref-12.html#SRFIs">SRFIs</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">13&nbsp;</td><td align="left"><a href="stklos-ref-13.html#Index">Index</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">&nbsp;</td><td align="left"><a href="stklos-ref-14.html#Bibliography">Bibliography</a></td></tr>
</tbody></table>
</td>
<td align="left" valign="top">
<p>The <em>Scheme Request for Implementation</em>
(<a href="http://srfi.schemers.org">SRFI</a>) process
grew out of the Scheme Workshop held in Baltimore, MD, on
September 26, 1998, where the attendees considered a number of
proposals for standardized feature sets for inclusion in Scheme
implementations. Many of the proposals received overwhelming
support in a series of straw votes. Along with this there was
concern that the next Revised Report would not be produced for
several years and this would prevent the timely implementation of
standardized approaches to several important problems and needs
in the Scheme community.</p><p>Only the implemented SRFIs are (briefly) presented here. For further
information on each SRFI, please look at the official
<a href="http://srfi.schemers.org">SRFI site</a>.</p><a name="--index-entry-19106"></a><a name="SRFI-0----Feature-based-conditional-expansion-construct"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-0----Feature-based-conditional-expansion-construct"><font color="#000000"> SRFI-0 -- Feature-based conditional expansion construct</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-0/srfi-0.html">SRFI-0</a> defines the <code>cond-expand</code>
special form. It is fully supported by <span style="font-variant: small-caps">STklos</span>. <span style="font-variant: small-caps">STklos</span>
defines several features identifiers which are of the form
<em>srfi-n</em> where <em>n</em> represents the number of the
SRFI supported by the implementation (for instance
<em>srfi-1</em> or <em>srfi-30</em>).</p><p><span style="font-variant: small-caps">STklos</span> <code>cond-expand</code> accepts also some
feature identifiers which are the same that the ones
defined in igure <a href="stklos-ref-11.html#Feature-identifiers">2</a></p><p>Furthermore, the feature
identifier <em>stklos</em> is defined for application which need
to know on which Scheme implementation they are running on.</p><a name="--index-entry-19124"></a><a name="SRFI-1----List-Library"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-1----List-Library"><font color="#000000"> SRFI-1 -- List Library</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-1/srfi-1.html">SRFI-1</a> defines an extensive library for list
manipulation. The implementation used in STklos is based on the
reference implementation from Olin Shivers. To use, SRFI-1 you
need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-1&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19144"></a><a name="SRFI-2----AND-LET---an-AND-with-local-bindings--a-guarded-LET--special-form"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-2----AND-LET---an-AND-with-local-bindings--a-guarded-LET--special-form"><font color="#000000"> SRFI-2 -- AND-LET*: an AND with local bindings, a guarded LET* special form</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-2/srfi-2.html">SRFI-2</a> defines an <em>and</em> form with local
binding which acts as a guarded <em>let*</em>. To use, SRFI-2
you need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-2&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19162"></a><a name="SRFI-4----Homogeneous-numeric-vector-datatypes"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-4----Homogeneous-numeric-vector-datatypes"><font color="#000000"> SRFI-4 -- Homogeneous numeric vector datatypes</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-4/srfi-4.html">SRFI-4</a> defines a set of data types for vectors
whose element are of the same numeric type (homogeneous vectors).
To use SRFI-4, you need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-4&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19169"></a><a name="--index-entry-19173"></a><a name="--index-entry-19177"></a><a name="--index-entry-19187"></a><a name="SRFI-6----Basic-String-Ports"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-6----Basic-String-Ports"><font color="#000000"> SRFI-6 -- Basic String Ports</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-6/srfi-6.html">SRFI-6</a> is fully supported and is completely
described in this document (procedures
<code>open-input-string</code>, <code>open-output-string</code> and
<code>get-output-string</code>). </p><a name="--index-entry-19205"></a><a name="SRFI-7----Feature-based-program-configuration-language-"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-7----Feature-based-program-configuration-language-"><font color="#000000"> SRFI-7 -- Feature-based program configuration language </font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-7/srfi-7.html">SRFI-7</a> is fully supported. To use SRFI-7, you
need to insert the following expression </p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-7&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19212"></a><a name="--index-entry-19220"></a><a name="SRFI-8----Receive--Binding-to-multiple-values"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-8----Receive--Binding-to-multiple-values"><font color="#000000"> SRFI-8 -- Receive: Binding to multiple values</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-8/srfi-8.html">SRFI-8</a> is fully supported and is completely
described in this document (special form <code>receive</code>)</p><a name="--index-entry-19239"></a><a name="SRFI-9----Defining-Record-Types"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-9----Defining-Record-Types"><font color="#000000"> SRFI-9 -- Defining Record Types</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-9/srfi-9.html">SRFI-9</a> is fully supported (the implementation
uses <span style="font-variant: small-caps">STklos</span> classes to implement SRFI-9 records). To use
SRFI-9, you need to insert the following expression </p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-9&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19256"></a><a name="SRFI-10----Sharp-Comma-External-Form"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-10----Sharp-Comma-External-Form"><font color="#000000"> SRFI-10 -- Sharp Comma External Form</font></h3></table>
<a name="--index-entry-19246"></a><p><a href="http://srfi.schemers.org/srfi-10/srfi-10.html">SRFI-10</a> is fully supported. This SRFI extends the
STklos reader with the "<code>#,</code>" notation which is fully described in
this document (see <a href="stklos-ref-4.html#define-reader-ctor">???</a>).</p><a name="--index-entry-19263"></a><a name="--index-entry-19267"></a><a name="--index-entry-19282"></a><a name="SRFI-11----Syntax-for-receiving-multiple-values"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-11----Syntax-for-receiving-multiple-values"><font color="#000000"> SRFI-11 -- Syntax for receiving multiple values</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-11/srfi-11.html">SRFI-11</a> is fully supported. To use SRFI-11, you
need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-11&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19289"></a><a name="--index-entry-19304"></a><a name="SRFI-13----String-Library"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-13----String-Library"><font color="#000000"> SRFI-13 -- String Library</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-13/srfi-13.html">SRFI-13</a> is fully supported. To use SRFI-13, you
need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-13&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19311"></a><a name="--index-entry-19326"></a><a name="SRFI-14----Character-Set-Library"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-14----Character-Set-Library"><font color="#000000"> SRFI-14 -- Character-Set Library</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-14/srfi-14.html">SRFI-14</a> is fully supported. To use SRFI-14, you
need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-14&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19333"></a><a name="--index-entry-19337"></a><a name="--index-entry-19345"></a><a name="SRFI-16----Syntax-for-procedures-of-variable-arity"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-16----Syntax-for-procedures-of-variable-arity"><font color="#000000"> SRFI-16 -- Syntax for procedures of variable arity</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-16/srfi-16.html">SRFI-16</a> is fully supported and is completely
described in this document (procedure <code>case-lambda</code>).</p><a name="--index-entry-19352"></a><a name="--index-entry-19356"></a><a name="--index-entry-19360"></a><a name="--index-entry-19377"></a><a name="SRFI-17----Generalized-set-"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-17----Generalized-set-"><font color="#000000"> SRFI-17 -- Generalized set!</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-17/srfi-17.html">SRFI-17</a> is fully supported and is completely
described in this document (procedures <code>set!</code> and
<code>setter</code>). However, the following expression </p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-17&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code (or the use of the <code>cond-expand</code> special form) permits
to define the setters for the (numerous) cXXXXr list procedures.</p><a name="--index-entry-19384"></a><a name="--index-entry-19421"></a><a name="SRFI-22----Running-Scheme-Scripts-on-Unix"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-22----Running-Scheme-Scripts-on-Unix"><font color="#000000"> SRFI-22 -- Running Scheme Scripts on Unix</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-22/srfi-22.html">SRFI-22</a> describes basic prerequisites for
running Scheme programs as Unix scripts in a uniform
way. Specifically, it describes: <ul><li>the syntax of Unix scripts written in Scheme,</li>
<li>a uniform convention for calling the Scheme script interpreter,
and</li>
<li>a method for accessing the Unix command line arguments from
within the Scheme script.</li>
</ul></p><p><strong>SRFI-22</strong> (Running Scheme Scripts on Unix) recommends to invoke the Scheme script interpreter from the
script via a /usr/bin/env trampoline, like this:
<blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>#!/usr/bin/env &lt;executable&gt;
</pre></td></tr>
</tbody></table></blockquote>
where <code>&lt;executable&gt;</code> can recover several specified names.
<span style="font-variant: small-caps">STklos</span> uses only the name <code>stklos-script</code> for
<code>&lt;executable&gt;</code>.</p><p>Here is an example of the classical <code>echo</code>
command (without option) in Scheme:</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>#!/usr/bin/env stklos-script
(<font color="#6959cf"><strong>define</strong></font> (main arguments)
(for-each (<strong>lambda</strong> (x) (display x) (display #space))
(cdr arguments))
(newline)
0)
</pre></td></tr>
</tbody></table></blockquote>
<a name="--index-entry-19428"></a><a name="--index-entry-19437"></a><a name="SRFI-23----Error-reporting-mechanism"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-23----Error-reporting-mechanism"><font color="#000000"> SRFI-23 -- Error reporting mechanism</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-23/srfi-23.html">SRFI-23</a> is fully supported. See the
documentation of the (ref :mark &quot;error&quot;) primitive form more
information (in fact <span style="font-variant: small-caps">STklos</span> <code>error</code> is more general
than the one defined in SRFI-23).</p><a name="--index-entry-19455"></a><a name="SRFI-26----Notation-for-Specializing-Parameters-without-Currying"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-26----Notation-for-Specializing-Parameters-without-Currying"><font color="#000000"> SRFI-26 -- Notation for Specializing Parameters without Currying</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-26/srfi-26.html">SRFI-26</a> is fully supported. To use SRFI-31,
you need to insert the following expression </p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-26&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19462"></a><a name="--index-entry-19466"></a><a name="--index-entry-19475"></a><a name="SRFI-27----Source-of-random-bits"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-27----Source-of-random-bits"><font color="#000000"> SRFI-27 -- Source of random bits</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-27/srfi-27.html">SRFI-27</a> is fully supported. See
<a href="stklos-ref-4.html#random-integer">random-integer</a> and
<a href="stklos-ref-4.html#random-real">random-real</a>.</p><a name="--index-entry-19482"></a><a name="--index-entry-19493"></a><a name="SRFI-28----Basic-Format-Strings"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-28----Basic-Format-Strings"><font color="#000000"> SRFI-28 -- Basic Format Strings</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-28/srfi-28.html">SRFI-28</a> is fully supported. See the
documentation of the <a href="stklos-ref-4.html#format">???</a> primitive form more
information (in fact <span style="font-variant: small-caps">STklos</span> <code>format</code> is more general
than the one defined in <strong>SRFI-28</strong> (Basic Format Strings)).</p><a name="--index-entry-19504"></a><a name="SRFI-30----Nested-Multi-line-Comments"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-30----Nested-Multi-line-Comments"><font color="#000000"> SRFI-30 -- Nested Multi-line Comments</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-30/srfi-30.html">SRFI-30</a> is fully supported by <span style="font-variant: small-caps">STklos</span>
reader.</p><a name="--index-entry-19522"></a><a name="SRFI-31----A-special-form-for-recursive-evaluation"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-31----A-special-form-for-recursive-evaluation"><font color="#000000"> SRFI-31 -- A special form for recursive evaluation</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-31/srfi-31.html">SRFI-31</a> is fully supported. To use SRFI-31,
you need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-31&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19529"></a><a name="--index-entry-19533"></a><a name="--index-entry-19542"></a><a name="SRFI-34----Exception-Handling-for-Programs"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-34----Exception-Handling-for-Programs"><font color="#000000"> SRFI-34 -- Exception Handling for Programs</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-34/srfi-34.html">SRFI-34</a> is fully supported and is completely
described in this document (see <code>with-exception-handler</code>
and <code>guard</code>).</p><a name="--index-entry-19561"></a><a name="SRFI-35----Conditions"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-35----Conditions"><font color="#000000"> SRFI-35 -- Conditions</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-35/srfi-35.html">SRFI-35</a> is fully supported. To use SRFI-35,
you need to insert the following expression </p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-35&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.
See section <a href="stklos-ref-7.html#Predefined-Conditions">Predefined Conditions</a> for the predefined conditions
and when it is required to load this file.</p><a name="--index-entry-19580"></a><a name="SRFI-36----I-O-Conditions"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-36----I-O-Conditions"><font color="#000000"> SRFI-36 -- I/O Conditions</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-36/srfi-36.html">SRFI-36</a> is fully supported. To use SRFI-36,
you need to insert the following expression </p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-36&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.
See section <a href="stklos-ref-7.html#Predefined-Conditions">Predefined Conditions</a> for the predefined conditions
and when it is required to load this file.</p><a name="--index-entry-19591"></a><a name="SRFI-38----External-representation-of-shared-structures"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-38----External-representation-of-shared-structures"><font color="#000000"> SRFI-38 -- External representation of shared structures</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-38/srfi-38.html">SRFI-38</a> is fully supported by <span style="font-variant: small-caps">STklos</span>
reader.</p><a name="--index-entry-19603"></a><a name="SRFI-39----Parameters-objects"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-39----Parameters-objects"><font color="#000000"> SRFI-39 -- Parameters objects</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-39/srfi-39.html">SRFI-39</a> is fully supported and is completely
described in this document (procedures
<a href="stklos-ref-4.html#make-parameter">???</a> and
<a href="stklos-ref-4.html#parameterize">???</a>).</p><a name="--index-entry-19610"></a><a name="--index-entry-19618"></a><a name="SRFI-48----Intermediate-Format-Strings"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-48----Intermediate-Format-Strings"><font color="#000000"> SRFI-48 -- Intermediate Format Strings</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-48/srfi-48.html">SRFI-48</a> is fully supported and is completely
described in this document (procedure <code>format</code>).</p><a name="--index-entry-19625"></a><a name="--index-entry-19681"></a><a name="SRFI-55----Require-extension"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-55----Require-extension"><font color="#000000"> SRFI-55 -- Require-extension</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-55/srfi-55.html">SRFI-55</a> is fully supported and is completely
described in this document (procedure <a href="stklos-ref-4.html#require-extension">???</a>).</p><p>Furthermore, <span style="font-variant: small-caps">STklos</span> also accepts the symbols defined in
figure <a href="stklos-ref-11.html#Feature-identifiers">2</a> in a
<code>require-extension</code> clause.</p><br id="Feature-identifiers"><a name="Feature-identifiers"></a>
<center><table width="60%" style="border-collapse: collapse;" frame="border" rules="cols"><tbody>
<tr bgcolor="#eeeeee"><th align="center">Symbol</th><th align="center">require SRFI(s)</th></tr>
<tr><td align="left">lists</td><td align="left">srfi-1</td></tr>
<tr><td align="left">and-let*</td><td align="left">srfi-2</td></tr>
<tr><td align="left">hvectors</td><td align="left">srfi-4</td></tr>
<tr><td align="left">program</td><td align="left">srfi-7</td></tr>
<tr><td align="left">records</td><td align="left">srfi-9</td></tr>
<tr><td align="left">strings</td><td align="left">srfi-13</td></tr>
<tr><td align="left">charsets</td><td align="left">srfi-14</td></tr>
<tr><td align="left">case-lambda</td><td align="left">srfi-16</td></tr>
<tr><td align="left">error</td><td align="left">srfi-23</td></tr>
<tr><td align="left">random</td><td align="left">srfi-27</td></tr>
<tr><td align="left">conditions</td><td align="left">srfi-34, srfi-35, srfi-36</td></tr>
<tr><td align="left">hash-tables</td><td align="left">srfi-69</td></tr>
</tbody></table>
</center>
<center>
<strong>Fig. 2:</strong> Feature identifiers</center>
<br>
<a name="--index-entry-19699"></a><a name="SRFI-60----Integers-as-bits"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-60----Integers-as-bits"><font color="#000000"> SRFI-60 -- Integers as bits</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-60/srfi-60.html">SRFI-60</a> is fully supported. To use SRFI-60,
you need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-60&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19710"></a><a name="SRFI-62----S-expression-comments"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-62----S-expression-comments"><font color="#000000"> SRFI-62 -- S-expression comments</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-62/srfi-62.html">SRFI-62</a> is fully supported. See <a href="stklos-ref-1.html#Comments">Comments</a></p><a name="--index-entry-19728"></a><a name="SRFI-66----Octet-Vectors"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-66----Octet-Vectors"><font color="#000000"> SRFI-66 -- Octet Vectors</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-66/srfi-66.html">SRFI-66</a> is fully supported. To use SRFI-66,
you need to insert the following expression</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-66&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19749"></a><a name="SRFI-69----Basic-Hash-Tables"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-69----Basic-Hash-Tables"><font color="#000000"> SRFI-69 -- Basic Hash Tables</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-69/srfi-69.html">SRFI-69</a> is fully supported. Note that the
default comparison function in STklos is <code>eq?</code> whereas it
is <code>equal?</code> for the SRFI. Furthermore the hash functions
defined in the SRFI are not defined by default in STklos. To have
a fully compliant <strong>SRFI-69</strong> (Basic Hash Tables) behaviour, you need to insert the
following expression </p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;srfi-69&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>in your code or uses the <code>cond-expand</code> special form.</p><a name="--index-entry-19759"></a><a name="SRFI-70----Numbers"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="SRFI-70----Numbers"><font color="#000000"> SRFI-70 -- Numbers</font></h3></table>
<p><a href="http://srfi.schemers.org/srfi-70/srfi-70.html">SRFI-70</a> is fully supported.</p></td>
<a name="--index-entry-28825"></a><a name="--index-entry-28829"></a><p>Aubrey Jaffer maintains a package called
<em><a href="http://swiss.csail.mit.edu/~jaffer/SLIB">SLIB</a></em>
which is a portable Scheme library which provides compatibility
and utility functions for all standard Scheme implementations. To
use this package, you have just to type</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(require <font color="red">&quot;slib&quot;</font>)
</pre></td></tr>
</tbody></table></blockquote>
<p>and follow the instructions given in the <em>SLIB</em> library
to use a particular package.</p><p><strong>Note:</strong> <em>SLIB</em> uses also the
<em>require and provide</em> mechanism to load components of the
library. Once <em>SLIB</em> has been loaded, the standard
<span style="font-variant: small-caps">STklos</span> <code>require</code> and <code>provide</code> are overloaded
such as if their parameter is a string this is the old <span style="font-variant: small-caps">STklos</span>
procedure which is called, and if their parameter is a symbol,
this is the <em>SLIB</em> one which is called.</p></td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.inria.fr/mimosa/fp/Skribe">Skribe</a>.<br />Last update <em>Wed Jan 4 14:05:39 2006</em></small>
<a href="http://www.inria.fr/mimosa/fp/Skribe">Skribe</a>.<br />Last update <em>Sat Oct 28 21:51:51 2006</em></small>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -15,7 +15,7 @@
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-19777">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-29879">*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="navsel"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a><br /><table cellspacing="1" cellpadding="1" width="100%">
<tbody>
......@@ -38,11 +38,12 @@
<tr class="navnorm"><td width="8%" align="left" valign="top">6&nbsp;</td><td align="left"><a href="stklos-ref-6.html#Pattern-Matching">Pattern Matching</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">7&nbsp;</td><td align="left"><a href="stklos-ref-7.html#Exceptions-and-Conditions">Exceptions and Conditions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">8&nbsp;</td><td align="left"><a href="stklos-ref-8.html#STklos-Object-System">STklos Object System</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">9&nbsp;</td><td align="left"><a href="stklos-ref-9.html#Customizations">Customizations</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Using-the-SLIB-package">Using the SLIB package</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#SRFIs">SRFIs</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">12&nbsp;</td><td align="left"><a href="stklos-ref-12.html#Index">Index</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">&nbsp;</td><td align="left"><a href="stklos-ref-13.html#Bibliography">Bibliography</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">9&nbsp;</td><td align="left"><a href="stklos-ref-9.html#Threads--Mutexes-and-Condition-Variables">Threads, Mutexes and Condition Variables</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Customizations">Customizations</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#Using-the-SLIB-package">Using the SLIB package</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">12&nbsp;</td><td align="left"><a href="stklos-ref-12.html#SRFIs">SRFIs</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">13&nbsp;</td><td align="left"><a href="stklos-ref-13.html#Index">Index</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">&nbsp;</td><td align="left"><a href="stklos-ref-14.html#Bibliography">Bibliography</a></td></tr>
</tbody></table>
</td>
<td align="left" valign="top">
......@@ -52,7 +53,7 @@ very succinctly here for reference. See the (ref :bib &quot;R5RS&quot;) for a co
description.</p><a name="Literal-expressions"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="Literal-expressions"><font color="#000000">2.1 Literal expressions</font></h3></table>
<br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="quote"></a><a name="--index-entry-950"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="quote"></a><a name="--index-entry-4414"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(quote &lt;datum&gt;)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">R<sup>5</sup>RS</span> syntax</i></font></td></tr>
</tbody></table>
<code><strong><font color="IndianRed">'&lt;datum&gt;</font></strong></code><br /><br />The quoting mechanism is identical to <span style="font-variant: small-caps">R<sup>5</sup>RS</span>, except that keywords
......@@ -74,8 +75,8 @@ constants, character constants, and boolean constants
constant vectors. This is not necessary with <span style="font-variant: small-caps">STklos</span>.</td></tr>
</tbody></table><a name="Procedures"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="Procedures"><font color="#000000">2.2 Procedures</font></h3></table>
<a name="--index-entry-1015"></a><a name="--index-entry-1019"></a><a name="--index-entry-1023"></a><a name="--index-entry-1027"></a><a name="--index-entry-1031"></a><a name="--index-entry-1035"></a><a name="--index-entry-1039"></a><a name="--index-entry-1043"></a><a name="--index-entry-1047"></a><a name="--index-entry-1051"></a><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="lambda"></a><a name="--index-entry-1057"></a><table width="100%" style="border-collapse: collapse;"