Commit 7c19f58d authored by Erick's avatar Erick

Generate documentation for 1.0

parent f5116ca1
......@@ -3,30 +3,43 @@
*
* Author: Erick Gallesio [eg@essi.fr]
* Creation date: 13-Oct-2004 11:42 (eg)
* Last file update: 21-Oct-2004 14:27 (eg)
* Last file update: 10-Aug-2010 00:13 (eg)
*/
html {
background: #F1EEE0;
}
h3 {
font-size: 150%;
}
h4 {
font-size: 120%;
}
.skribetitle {
padding: 10 0 20 0;
background: #E6F2E6;
background: #4B4C4C;
}
.navnorm {
background: white;
background: ivory;
}
.navsel {
background: #ffffd0;
background: #FAFAD2;
}
.code {
border: 1px solid;
border-bottom: 2px solid;
border-right: 2px solid;
}
A:link, A:visited {
color: #0000ff;
color: #0B4796 ;
text-decoration: none;
}
......
......@@ -11,14 +11,14 @@
<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%">1. Introduction</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#8A8983"><font color="#FAFAFA"><center><h1>STklos Reference Manual<hr align="center" width="10%">1. Introduction</h1></center></font></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-42992">*Top*</a></td></tr>
<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-43269">*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-4885">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-4874">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-4885"></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-4841"></a><a name="--index-entry-4846"></a><p> <span style="font-variant: small-caps">STklos</span> is the successor of <span style="font-variant: small-caps">STk</span>
<a name="-section-4874"></a>
<h3><font color="darkolivegreen">1.1 Overview of <span style="font-variant: small-caps">STklos</span></font></h3>
<a name="--index-entry-4830"></a><a name="--index-entry-4835"></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-4869"></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-4858"></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
......@@ -65,16 +65,16 @@ preferred GUI system is now based on GTK+
[<a href="stklos-ref-16.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>
<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-4888"></a><p>In <span style="font-variant: small-caps">STklos</span>, identifiers which start (or end) with a colon
<a name="--index-entry-4877"></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-4906"></a><a name="--index-entry-4910"></a><a name="--index-entry-4914"></a><a name="--index-entry-4918"></a><a name="--index-entry-4922"></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-4895"></a><a name="--index-entry-4899"></a><a name="--index-entry-4903"></a><a name="--index-entry-4907"></a><a name="--index-entry-4911"></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:
......@@ -103,7 +103,7 @@ 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-4977"></a><a name="--index-entry-4981"></a><p>Here strings permit to easily enter multilines strings in programs.
<a name="--index-entry-4966"></a><a name="--index-entry-4970"></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
......@@ -145,10 +145,10 @@ can also be represented in this way:
<pre>
(#0=(1 2) (x . #0#))</pre></li>
</ul><a name="Basic-Concepts"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="Basic-Concepts"><font color="#000000">1.3 Basic Concepts</font></h3></table>
<h3 id="Basic-Concepts"><font color="darkolivegreen">1.3 Basic Concepts</font></h3>
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>Sun May 18 19:38:15 2008</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Tue Aug 10 09:20:50 2010</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. Customizations</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#8A8983"><font color="#FAFAFA"><center><h1>STklos Reference Manual<hr align="center" width="10%">10. Customizations</h1></center></font></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-42992">*Top*</a></td></tr>
<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-43269">*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,13 +38,13 @@
<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-40443"></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-40592"></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
<tr><td bgcolor="ivory"><pre>(real-precision) &#8658; 15
(<font color="#6959cf"><strong>define</strong></font> f 0.123456789)
(display f) -| 0.123456789
(real-precision 3)
......@@ -53,7 +53,7 @@ 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-40494"></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-40643"></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
......@@ -62,7 +62,7 @@ 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="#eee8bf"><pre>(read-case-sensitive) &#8658; <code>#f</code>
<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)
......@@ -77,7 +77,7 @@ with the <code>--case-sensitive</code> option.
<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-40590"></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-40739"></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
......@@ -87,7 +87,7 @@ 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>
<tr><td bgcolor="#eee8bf"><pre>(<strong>let</strong> ((x ''a))
<tr><td bgcolor="ivory"><pre>(<strong>let</strong> ((x ''a))
(display x)
(display <font color="red">&quot; &quot;</font>)
(write-pretty-quotes #f)
......@@ -96,7 +96,7 @@ 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-40648"></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-40797"></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
......@@ -113,7 +113,7 @@ setting the <code>STKLOS_LOAD_PATH</code> shell variable.
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-40713"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="load-suffixes"></a><a name="--index-entry-40862"></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
......@@ -122,7 +122,7 @@ 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-40751"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="load-verbose"></a><a name="--index-entry-40900"></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
......@@ -131,6 +131,6 @@ 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>Sun May 18 19:38:18 2008</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Tue Aug 10 09:20:54 2010</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. The ScmPkg Package System</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#8A8983"><font color="#FAFAFA"><center><h1>STklos Reference Manual<hr align="center" width="10%">11. The ScmPkg Package System</h1></center></font></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-42992">*Top*</a></td></tr>
<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-43269">*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>
......@@ -28,7 +28,7 @@
<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#The-ScmPkg-Package-System">The ScmPkg Package System</a><br /><table cellspacing="1" cellpadding="1" width="100%">
<tbody>
<tr><td valign="top" align="left">11.1</td><td colspan="4" width="100%"><a href="stklos-ref-11.html#-section-40995"><span style="font-variant: small-caps">ScmPkg</span> &quot;tutorial&quot;</td></tr>
<tr><td valign="top" align="left">11.1</td><td colspan="4" width="100%"><a href="stklos-ref-11.html#-section-41144"><span style="font-variant: small-caps">ScmPkg</span> &quot;tutorial&quot;</td></tr>
<tr><td valign="top" align="left">11.2</td><td colspan="4" width="100%"><a href="stklos-ref-11.html#stklos-pkg-options">stklos-pkg options</td></tr>
</tbody>
</table>
......@@ -41,24 +41,24 @@
</tbody></table>
</td>
<td align="left" valign="top">
<a name="--index-entry-40918"></a><p><span style="font-variant: small-caps">ScmPkg</span> is a package distribution system for Scheme. It is
<a name="--index-entry-41067"></a><p><span style="font-variant: small-caps">ScmPkg</span> is a package distribution system for Scheme. It is
currently supported by Bigloo and Stklos. This package system
provides new APIs to Scheme (e.g., network programming,
cryptography, encoding, ...) and it manages automatic package
installation, deinstallation and testing.</p><a name="-section-40995"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3><font color="#000000">11.1 <span style="font-variant: small-caps">ScmPkg</span> &quot;tutorial&quot;</font></h3></table>
installation, deinstallation and testing.</p><a name="-section-41144"></a>
<h3><font color="darkolivegreen">11.1 <span style="font-variant: small-caps">ScmPkg</span> &quot;tutorial&quot;</font></h3>
<p><tt>stklos-pkg</tt> is the command which gives access to
<span style="font-variant: small-caps">ScmPkg</span> in <span style="font-variant: small-caps">STklos</span>. This is the only command necessary to
manage <span style="font-variant: small-caps">ScmPkg</span> packages. For instance, this command manages a
local cache of the <span style="font-variant: small-caps">ScmPkg</span> server, permits (de)installation of
<span style="font-variant: small-caps">ScmPkg</span> packages, the test of packages, ...</p><p>To start, we can synchronize our local repository with the
<span style="font-variant: small-caps">ScmPkg</span> servers. This can be done by the following command:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>$ stklos-pkg --sync
<tr><td bgcolor="ivory"><pre>$ stklos-pkg --sync
</pre></td></tr>
</tbody></table></blockquote>
<p>This will download a description of the <span style="font-variant: small-caps">ScmPkg</span> packages
which are available. The list of these packages can be displayed with:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>$ stklos-pkg --list
<tr><td bgcolor="ivory"><pre>$ stklos-pkg --list
_bigloo-1.0.1 (tuning)
_bigloo-regexp-0.0.1
_bigloo-stdlib-0.0.1 (tuning)
......@@ -79,7 +79,7 @@ a tuning. A tuned package is a package which has been specially
tuned for STklos (e.g. the generic &quot;srfi1&quot; package which
implement SRFI-1 has been tuned to be more efficient in STklos)</p><p>To download a new package (and all its dependencies), one can simply
issue the following command:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>$ stklos-pkg --extract PKG --directory /tmp/Test
<tr><td bgcolor="ivory"><pre>$ stklos-pkg --extract PKG --directory /tmp/Test
</pre></td></tr>
</tbody></table></blockquote>
<p>This command downloads the package PKG, it dependencies
......@@ -94,20 +94,20 @@ user</li>
<li><strong>system-install:</strong> to install the package
system wide (privilegied access rights are probably needed)</li>
</ul></p><p>To test a package, one can also use the following command:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>$ stklos-pkg --test PKG
<tr><td bgcolor="ivory"><pre>$ stklos-pkg --test PKG
</pre></td></tr>
</tbody></table></blockquote>
<p>This downloads the necessary files in a temporary directory,
and launches the tests of the package <em>PKG</em></p><p>To install a package, one can also use the following command:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>$ stklos-pkg --install PKG
<tr><td bgcolor="ivory"><pre>$ stklos-pkg --install PKG
</pre></td></tr>
</tbody></table></blockquote>
<p>This downloads the necessary files in a temporary directory,
and installs the package <em>PKG</em></p><p>This completes the basis <span style="font-variant: small-caps">ScmPkg</span> tutorial. See below for
the list of all <tt>stklos-pkg</tt> options</p><a name="stklos-pkg-options"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="stklos-pkg-options"><font color="#000000">11.2 stklos-pkg options</font></h3></table>
<h3 id="stklos-pkg-options"><font color="darkolivegreen">11.2 stklos-pkg options</font></h3>
<p>Here are the options supported by the <tt>stklos-pkg</tt> command</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>Usage: stklos-pkg [options] [parameter ...]
<tr><td bgcolor="ivory"><pre>Usage: stklos-pkg [options] [parameter ...]
Actions
--extract=&lt;pkg&gt;, -e &lt;pkg&gt; Extract &lt;pkg&gt;. Don't install it
--test=&lt;pkg&gt;, -t &lt;pkg&gt; Test &lt;pkg&gt;.
......@@ -126,6 +126,7 @@ Informations
--depends=&lt;pkg&gt; Show all the dependencies of &lt;pkg&gt;
--installed Show installed packages
Misc
--conf-dir=&lt;dir&gt;, -D &lt;dir&gt; Use &lt;dir&gt; as stklos main configuration directory
--directory=&lt;dir&gt;, -C &lt;dir&gt; Change to directory &lt;dir&gt; (extract/download)
--verbose, -v be verbose (can be cumulated)
--system-wide, -S do a system wide (de)installation
......@@ -137,6 +138,6 @@ Misc
</tbody></table></blockquote>
</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>Sun May 18 19:38:19 2008</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Tue Aug 10 09:20:55 2010</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%">12. Foreign Function Interface</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#8A8983"><font color="#FAFAFA"><center><h1>STklos Reference Manual<hr align="center" width="10%">12. Foreign Function Interface</h1></center></font></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-42992">*Top*</a></td></tr>
<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-43269">*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>
......@@ -39,7 +39,7 @@
defined to allow an easy access to functions written in C without
needing to build C-wrappers and, consequently, without any need to
write C code. Note that the FFI is very machine dependent and that it
works only on a limited set of architectures/systems <a href="#fn--footnote-41174"><sup><small>1</small></sup></a>. Moreover,
works only on a limited set of architectures/systems <a href="#fn--footnote-41324"><sup><small>1</small></sup></a>. Moreover,
since FFI allows very low level access, it is easy to crash the
<span style="font-variant: small-caps">STklos</span> VM when using an external C function.</p><p><strong>Note that the support for FFI is still minimal and that it will
evolve in future versions.</strong></p><p>The definition of an external function is done with the
......@@ -72,7 +72,7 @@ between the C and the Scheme worlds.</p><br id="FFI-types"><a name="FFI-types"><
<strong>Fig. 2:</strong> FFI types</center>
<br>
<br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="define-external"></a><a name="--index-entry-41263"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="define-external"></a><a name="--index-entry-41413"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(define-external name parameters option)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> syntax</i></font></td></tr>
</tbody></table>
<br />The form <code>define-external</code> binds a new procedure to <code>name</code>.
......@@ -89,7 +89,7 @@ keyword. All the types defined in the above table, except
by the foreign function. The type returned must be chosen in the types specified
in the table. For instance:
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(define-external maximum(<font color="#00cf00">:int</font> <font color="#00cf00">:int</font>)
<tr><td bgcolor="ivory"><pre>(define-external maximum(<font color="#00cf00">:int</font> <font color="#00cf00">:int</font>)
<font color="#00cf00">:return-type</font> <font color="#00cf00">:int</font>)
</pre></td></tr>
</tbody></table></blockquote>
......@@ -103,7 +103,7 @@ type equal to <code>:void</code> (i.e. the returned value is <em>undefined</em>)
function in the C world. If this option is omitted, the entry-name is
supposed to be <code>name</code>. For instance:
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>
<tr><td bgcolor="ivory"><pre>
(define-external minimum((a <font color="#00cf00">:int</font>) (b <font color="#00cf00">:int</font>))
<font color="#00cf00">:return-type</font> <font color="#00cf00">:int</font>
<font color="#00cf00">:entry-name</font> <font color="red">&quot;min&quot;</font>)
......@@ -118,7 +118,7 @@ executes the C function called <code>min</code>.
foreign-function. If necessary, the library is loaded before calling the
C function. So,
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>
<tr><td bgcolor="ivory"><pre>
(define-external minimum((a <font color="#00cf00">:int</font>) (b <font color="#00cf00">:int</font>))
<font color="#00cf00">:return-type</font> <font color="#00cf00">:int</font>
<font color="#00cf00">:entry-name</font> <font color="red">&quot;min&quot;</font>
......@@ -132,7 +132,7 @@ for shared libraries on the running system (generally <code>so</code>))
</li>
</ul></td></tr>
</tbody></table><p>Hereafter, there are some commented definitions of external functions:</p><blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre> (define-external isatty ((fd <font color="#00cf00">:int</font>))
<tr><td bgcolor="ivory"><pre> (define-external isatty ((fd <font color="#00cf00">:int</font>))
<font color="#00cf00">:return-type</font> <font color="#00cf00">:boolean</font>)
(define-external system ((cmd <font color="#00cf00">:string</font>))
......@@ -155,12 +155,12 @@ Note that in this function the name of the parameter has been omitted
as within C prototypes.</li>
</ul><strong>TODO: describe malloc and malloc_atomic and their
interaction with the GC</strong><br><br><hr width='20%' size='2' align='left'>
<a name="fn--footnote-41174"><sup><small>1</small></sup></a>: FFI
<a name="fn--footnote-41324"><sup><small>1</small></sup></a>: FFI
system should works on the following architectures/systems:
gcc_ppc_osx, gcc_sparc_unix, gcc_x64_unix, gcc_x86_unix.
<br>
</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>Sun May 18 19:38:19 2008</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Tue Aug 10 09:20:55 2010</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%">13. Using the SLIB package</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#8A8983"><font color="#FAFAFA"><center><h1>STklos Reference Manual<hr align="center" width="10%">13. Using the SLIB package</h1></center></font></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-42992">*Top*</a></td></tr>
<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-43269">*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>
......@@ -35,12 +35,12 @@
</tbody></table>
</td>
<td align="left" valign="top">
<a name="--index-entry-41516"></a><a name="--index-entry-41520"></a><p>Aubrey Jaffer maintains a package called
<a name="--index-entry-41666"></a><a name="--index-entry-41670"></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>)
<tr><td bgcolor="ivory"><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
......@@ -52,6 +52,6 @@ such as if their parameter is a string this is the old <span style="font-variant
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>Sun May 18 19:38:19 2008</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Tue Aug 10 09:20:55 2010</em></small>
</body>
</html>
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -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%">Bibliography</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#8A8983"><font color="#FAFAFA"><center><h1>STklos Reference Manual<hr align="center" width="10%">Bibliography</h1></center></font></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-42992">*Top*</a></td></tr>
<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-43269">*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,6 +38,6 @@
<table><tbody><tr><td valign="top" align="right">[1] </td><td valign="top" align="left"> -- <a title="http://www-sop.inria.fr/mimosa/fp/Bigloo/" href="http://www-sop.inria.fr/mimosa/fp/Bigloo/"><strong>Bigloo Home Page</strong></a>.</td></tr><tr><td valign="top" align="right">[2] </td><td valign="top" align="left"> -- <a title="http://gtk.org/" href="http://gtk.org/"><strong>The GTK+ Toolkit Home Page</strong></a>.</td></tr><tr><td valign="top" align="right">[3] </td><td valign="top" align="left">Apple Computer -- <strong>Dylan: an Object Oriented Dynamic Language</strong> -- <i>Apple</i>, April, 1992.</td></tr><tr><td valign="top" align="right">[4] </td><td valign="top" align="left">C. Queinnec and J-M. Geffroy -- <strong>Partial Evaluation Applied to Symbolic Pattern Matching with Intelligent Backtrack</strong> -- Workshop in Static Analysis, Bigre, (81--82), Bordeaux (France), September, 1992.</td></tr><tr><td valign="top" align="right">[5] </td><td valign="top" align="left">Chris Hanson -- <a title="http://www.swiss.ai.mit.edu/projects/scheme/documentation/sos.html" href="http://www.swiss.ai.mit.edu/projects/scheme/documentation/sos.html"><strong>The SOS Reference Manual, version 1.5</strong></a> -- March, 1993.</td></tr><tr><td valign="top" align="right">[6] </td><td valign="top" align="left">Erick Gallesio -- <strong>Reference Manual</strong> -- RT 95-31a, I3S CNRS / Universit de Nice - Sophia Antipolis, juillet, 1995, pp. 82.</td></tr><tr><td valign="top" align="right">[7] </td><td valign="top" align="left">Gregor Kickzales -- <a title="ftp://parcftp.xerox.com/pub/openimplementations/tiny" href="ftp://parcftp.xerox.com/pub/openimplementations/tiny"><strong>Tiny-Clos</strong></a> -- December, 1992.</td></tr><tr><td valign="top" align="right">[8] </td><td valign="top" align="left">Gregor Kickzales, Jim de Rivires and Daniel G. Bobrow -- <strong>The Art of Meta Object Protocol</strong> -- <i>MIT Press</i>, 1991.</td></tr><tr><td valign="top" align="right">[9] </td><td valign="top" align="left">Guy L. Steele Jr. -- <strong>Common Lisp: the Language, 2nd Edition</strong> -- <i>Digital Press</i>, 12 Crosby Drive, Bedford, MA 01730, USA, 1990.</td></tr><tr><td valign="top" align="right">[10] </td><td valign="top" align="left">ISO/IEC -- <strong>Information technology, Processing Languages, Document Style Semantics and Specification Languages (DSSSL)</strong> -- 10179:1996(E), ISO, , 1996.</td></tr><tr><td valign="top" align="right">[11] </td><td valign="top" align="left">John K. Ousterhout -- <strong>An X11 toolkit based on the Tcl Language</strong> -- USENIX Winter Conference, January, 1991, pp. 105--115.</td></tr><tr><td valign="top" align="right">[12] </td><td valign="top" align="left">Kelsey, R. and Clinger, W. and Rees, J. -- <a title="http://www.schemers.org/Documents/Standards/R5RS/HTML" href="http://www.schemers.org/Documents/Standards/R5RS/HTML"><strong>The Revised5 Report on the Algorithmic Language Scheme</strong></a> -- Higher-Order and Symbolic Computation, 11(1), Sep, 1998.</td></tr><tr><td valign="top" align="right">[13] </td><td valign="top" align="left">Philip Hazel -- <a title="http://pcre.org/" href="http://pcre.org/"><strong>PCRE (Perl Compatible Regular Expressions) Home page</strong></a>.</td></tr><tr><td valign="top" align="right">[14] </td><td valign="top" align="left">Sho-Huan Simon Tung and R. Kent Dybvig -- <strong>Reliable Interactive Programming with Modules</strong> -- LISP and Symbolic Computation, 91996, pp. 343--358.</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>Sun May 18 19:38:20 2008</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Tue Aug 10 09:20:57 2010</em></small>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -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%">6. Pattern Matching</h1></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#8A8983"><font color="#FAFAFA"><center><h1>STklos Reference Manual<hr align="center" width="10%">6. Pattern Matching</h1></center></font></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-42992">*Top*</a></td></tr>
<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-43269">*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>
......@@ -23,7 +23,7 @@
<tr class="navnorm"><td width="8%" align="left" valign="top">5&nbsp;</td><td align="left"><a href="stklos-ref-5.html#Regular-Expressions">Regular Expressions</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">6&nbsp;</td><td align="left"><a href="stklos-ref-6.html#Pattern-Matching">Pattern Matching</a><br /><table cellspacing="1" cellpadding="1" width="100%">
<tbody>
<tr><td valign="top" align="left">6.1</td><td colspan="4" width="100%"><a href="stklos-ref-6.html#-section-35977"><span style="font-variant: small-caps">STklos</span> Pattern Matching Facilities</td></tr>
<tr><td valign="top" align="left">6.1</td><td colspan="4" width="100%"><a href="stklos-ref-6.html#-section-36126"><span style="font-variant: small-caps">STklos</span> Pattern Matching Facilities</td></tr>
<tr><td valign="top" align="left">6.2</td><td colspan="4" width="100%"><a href="stklos-ref-6.html#The-Pattern-Language">The Pattern Language</td></tr>
</tbody>
</table>
......@@ -46,7 +46,7 @@ languages since it allows clean and secure code to be
written. Internally, "pattern-matching forms" should be translated
(compiled) into cascades of "elementary tests" where code is made as
efficient as possible, avoiding redundant tests; <span style="font-variant: small-caps">STklos</span>
"pattern matching compiler" provides this <a href="#fn--footnote-35798"><sup><small>1</small></sup></a>.</p><p>The technique used is described in details in
"pattern matching compiler" provides this <a href="#fn--footnote-35947"><sup><small>1</small></sup></a>.</p><p>The technique used is described in details in
[<a href="stklos-ref-16.html#Queinnec-Geffroy92">4</a>], and the code generated can be
considered optimal</p><p>The "pattern language" allows the expression of a wide variety
of patterns, including:</p><ul><li>Non-linear patterns: pattern variables can appear more than
......@@ -55,16 +55,16 @@ once, allowing comparison of subparts of the datum (through <a href="stklos-ref-
datum is a list of zero or more <code>a</code>s followed by zero or more
<code>b</code>s.</li>
<li>Pattern matching on lists as well as on vectors.</li>
</ul><a name="-section-35977"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3><font color="#000000">6.1 <span style="font-variant: small-caps">STklos</span> Pattern Matching Facilities</font></h3></table>
</ul><a name="-section-36126"></a>
<h3><font color="darkolivegreen">6.1 <span style="font-variant: small-caps">STklos</span> Pattern Matching Facilities</font></h3>
<p>Only two special forms are provided for this in <span style="font-variant: small-caps">STklos</span>: <code>match-case</code>
and <code>match-lambda</code>.</p><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="match-case"></a><a name="--index-entry-35821"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="match-case"></a><a name="--index-entry-35970"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(match-case &lt;key&gt; &lt;clause&gt; ...)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> syntax</i></font></td></tr>
</tbody></table>
<br />The argument key may be any expression and each clause has the form
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>(<font color="#1919af"><strong>&lt;pattern&gt;</strong></font> <font color="#1919af"><strong>&lt;expression&gt;</strong></font> ...)
<tr><td bgcolor="ivory"><pre>(<font color="#1919af"><strong>&lt;pattern&gt;</strong></font> <font color="#1919af"><strong>&lt;expression&gt;</strong></font> ...)
</pre></td></tr>
</tbody></table></blockquote>
......@@ -82,7 +82,7 @@ is unspecified.
<br /><br />
The equality predicate used for tests is <code>eq?</code>.
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>
<tr><td bgcolor="ivory"><pre>
(<strong>match-case</strong> '(a b a)
((?x ?x) 'foo)
((?x ?- ?x) 'bar)) &#8658; bar
......@@ -95,14 +95,14 @@ The equality predicate used for tests is <code>eq?</code>.
</tbody></table></blockquote>
</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="match-lambda"></a><a name="--index-entry-35933"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="match-lambda"></a><a name="--index-entry-36082"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(match-lambda &lt;clause&gt; ...)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> syntax</i></font></td></tr>
</tbody></table>
<br /><code>match-lambda</code> expands into a lambda-expression expecting an argument
which, once applied to an expression, behaves exactly like a
<code>match-case</code> expression.
<blockquote><table cellspacing="0" class="code" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>((<strong>match-lambda</strong>
<tr><td bgcolor="ivory"><pre>((<strong>match-lambda</strong>
((?x ?x) 'foo)
((?x ?- ?x) 'bar))
'(a b a)) &#8658; bar
......@@ -110,9 +110,9 @@ which, once applied to an expression, behaves exactly like a
</tbody></table></blockquote>
</td></tr>
</tbody></table><a name="The-Pattern-Language"></a>
<table width="100%"><tr><td bgcolor="#E6F2E6"><h3 id="The-Pattern-Language"><font color="#000000">6.2 The Pattern Language</font></h3></table>
<a name="--index-entry-35980"></a><p>The syntax for <code>&lt;pattern&gt;</code> is:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="#eee8bf"><pre>&lt;pattern&gt; ==&gt; <em>Matches:</em>
<h3 id="The-Pattern-Language"><font color="darkolivegreen">6.2 The Pattern Language</font></h3>
<a name="--index-entry-36129"></a><p>The syntax for <code>&lt;pattern&gt;</code> is:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="ivory"><pre>&lt;pattern&gt; ==&gt; <em>Matches:</em>
&lt;atom&gt; <em>the &lt;atom&gt;.</em>
| (kwote &lt;atom&gt;) <em>any expression eq? to &lt;atom&gt;.</em>
......@@ -163,7 +163,7 @@ not appear inside a vector, where you should use <code>???-</code>:
For example, <code>#(a ??- b)</code> or <code>#(a...)</code> are invalid
patterns, whereas <code>#(a ???-)</code> is valid and matches any
vector whose first element is the atom <code>a</code>.</p><br><br><hr width='20%' size='2' align='left'>
<a name="fn--footnote-35798"><sup><small>1</small></sup></a>: The "pattern matching compiler" has been written by Jean-Marie Geffroy
<a name="fn--footnote-35947"><sup><small>1</small></sup></a>: The "pattern matching compiler" has been written by Jean-Marie Geffroy
and is part of the Manuel Serrano's Bigloo compiler [<a href="stklos-ref-16.html#Bigloo-home">1</a>]
since several years. The code (and documentation) included in <span style="font-variant: small-caps">STklos</span>
has been stolen from the Bigloo package v2.4 (the only difference
......@@ -172,6 +172,6 @@ vector whose first element is the atom <code>a</code>.</p><br><br><hr width='20%
<br>
</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>Sun May 18 19:38:18 2008</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Tue Aug 10 09:20:53 2010</em></small>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -11,12 +11,12 @@
<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</h1></center><center><table cellspacing=0><tbody>
<tr><td align="center"><big><big><font size="+2"><strong>Erick Gallesio</strong></font></big></big></td></tr><tr><tr><td align="center">Universit de Nice - Sophia Antipolis</td></tr><tr><td align="center">930 route des Colles, BP 145</td></tr><tr><td align="center">F-06903 Sophia Antipolis, Cedex</td></tr><tr><td align="center">France</td></tr></tbody></table></center></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<td align="left" valign="top" width="20%" bgcolor="#E6F2E6">
<table width='100%' cellpadding='0' cellspacing='0'><tr><td bgcolor="#8A8983"><font color="#FAFAFA"><center><h1>STklos Reference Manual</h1></center><center><table cellspacing=0><tbody>
<tr><td align="center"><big><big><font size="+2"><strong>Erick Gallesio</strong></font></big></big></td></tr><tr><tr><td align="center">Universit de Nice - Sophia Antipolis</td></tr><tr><td align="center">930 route des Colles, BP 145</td></tr><tr><td align="center">F-06903 Sophia Antipolis, Cedex</td></tr><tr><td align="center">France</td></tr><tr><td align="center"></td></tr></tbody></table></center></font></table><table cellpadding="3" cellspacing="0" width="100%"><tr>
<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="darkolivegreen"><font color="white">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-42992">*Top*</a></td></tr>
<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-43269">*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>
......@@ -37,13 +37,13 @@
</td>
<td align="left" valign="top">
<br /><br /><br />This document provides a complete list of procedures and special
forms implemented in version <strong>0.98</strong> of
forms implemented in version <strong>1.00</strong> of
<span style="font-variant: small-caps">STklos</span>. Since <span style="font-variant: small-caps">STklos</span> is (nearly) compliant with the
language described in the Revised<sup>5</sup> Report on the
Algorithmic Language Scheme (aka <span style="font-variant: small-caps">R<sup>5</sup>RS</span>) [<a href="stklos-ref-16.html#R5RS">12</a>],
the organization of this manual follows closely the one of this
document.<a name="--index-entry-41556"></a></td>
document.<a name="--index-entry-41706"></a></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>Sun May 18 19:38:20 2008</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Tue Aug 10 09:20:57 2010</em></small>
</body>
</html>
No preview for this file type
......@@ -2,7 +2,7 @@
#
# Author: Erick Gallesio [eg@essi.fr]
# Creation date: 1-Sep-2004 16:19 (eg)
# Last file update: 22-Jun-2007 23:55 (eg)
# Last file update: 10-Aug-2010 08:22 (eg)
SOURCES = biblio.skb cond.skb custom.skb expr.skb index.skb \
......