Clean up whitespace

This commit is contained in:
Lassi Kortela 2022-08-02 18:08:11 +03:00
parent 907ff5e601
commit f475509d97
1 changed files with 472 additions and 472 deletions

View File

@ -1,472 +1,472 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>The portable R6RS library and syntax-case system</title> <title>The portable R6RS library and syntax-case system</title>
<link href="style.css" rel="stylesheet" type="text/css" /> <link href="style.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<div id="mainPan"> <div id="mainPan">
<div id="topPan"> <div id="topPan">
<!--<a href="index.html"><img src="images/logo.gif" <!--<a href="index.html"><img src="images/logo.gif"
alt="Aquatic" width="136" height="31" border="0" class="logo" alt="Aquatic" width="136" height="31" border="0" class="logo"
title="Aquatic"/></a> title="Aquatic"/></a>
<p class="caption">leo pede eleifend</p> <p class="caption">leo pede eleifend</p>
--> -->
<div id="topcontactPan"> <div id="topcontactPan">
</div> </div>
</div> </div>
<div id="headerPan"> <div id="headerPan">
<ul class="leftmenu"> <ul class="leftmenu">
<!-- <li><a href="../index.html">Ikarus</a></li> --> <!-- <li><a href="../index.html">Ikarus</a></li> -->
<li class="Solutions">psyntax</li> <li class="Solutions">psyntax</li>
<!-- <!--
<li><a href="#">About me</a></li> <li><a href="#">About me</a></li>
<li><a href="#">Downloads</a></li> <li><a href="#">Downloads</a></li>
<li><a href="#">Roadmap</a></li> <li><a href="#">Roadmap</a></li>
<li><a href="#">Development</a></li> <li><a href="#">Development</a></li>
<li><a href="#">Changes</a></li> <li><a href="#">Changes</a></li>
<li><a href="#">License</a></li> <li><a href="#">License</a></li>
--> -->
<!--<li class="clients"><a href="#">Clients</a></li>--> <!--<li class="clients"><a href="#">Clients</a></li>-->
</ul> </ul>
<!-- <!--
<ul class="botton"> <ul class="botton">
<li class="home"><a href="#">home</a></li> <li class="home"><a href="#">home</a></li>
<li class="aboutus"><a href="#">home</a></li> <li class="aboutus"><a href="#">home</a></li>
<li class="contact"><a href="#">home</a></li> <li class="contact"><a href="#">home</a></li>
</ul> </ul>
--> -->
</div> </div>
<div id="bodyPan"> <div id="bodyPan">
<div id="leftPan"> <div id="leftPan">
<h2>psyntax</h2> <h2>psyntax</h2>
<ul> <ul>
<li><a href="#about"><span>About psyntax</span></a></li> <li><a href="#about"><span>About psyntax</span></a></li>
<li><a href="#downloads"><span>Downloads</span></a></li> <li><a href="#downloads"><span>Downloads</span></a></li>
<li><a href="#development"><span>Development</span></a></li> <li><a href="#development"><span>Development</span></a></li>
<li><a href="#usage"><span>Basic Usage</span></a></li> <li><a href="#usage"><span>Basic Usage</span></a></li>
<li><a href="#structure"><span>Structure</span></a></li> <li><a href="#structure"><span>Structure</span></a></li>
<li><a href="#nonr6"><span>Non-R6RS Req.</span></a></li> <li><a href="#nonr6"><span>Non-R6RS Req.</span></a></li>
<li><a href="#changes"><span>Changes</span></a></li> <li><a href="#changes"><span>Changes</span></a></li>
<li><a href="#license"><span>License</span></a></li> <li><a href="#license"><span>License</span></a></li>
</ul> </ul>
<!-- <!--
<h2>Solutions</h2> <h2>Solutions</h2>
<ul> <ul>
<li><a href="#">Magna vel</a></li> <li><a href="#">Magna vel</a></li>
<li><a href="#">Neque porttitor</a></li> <li><a href="#">Neque porttitor</a></li>
<li><a href="#">Mollis. In</a></li> <li><a href="#">Mollis. In</a></li>
<li><a href="#">Eleifend, risu</a></li> <li><a href="#">Eleifend, risu</a></li>
<li><a href="#">Hendreritamc</a></li> <li><a href="#">Hendreritamc</a></li>
<li><a href="#">Tempor, pur</a></li> <li><a href="#">Tempor, pur</a></li>
</ul> </ul>
--> -->
</div> </div>
<div id="rightPan"> <div id="rightPan">
<h1 id="about">About psyntax</h1> <h1 id="about">About psyntax</h1>
<p>This page contains a reference implementation of the <p>This page contains a reference implementation of the
proposed implicitly-phased libraries for R6RS. The proposed implicitly-phased libraries for R6RS. The
implementation is portable, depending only on a small set of implementation is portable, depending only on a small set of
common primitives that are readily available in many common primitives that are readily available in many
implementations. The implementation is also written as a implementations. The implementation is also written as a
collection of R6RS libraries in order to take advantage of the collection of R6RS libraries in order to take advantage of the
key R6RS libraries benefit: to easily isolate key R6RS libraries benefit: to easily isolate
implementation-dependent extensions in a mechanical way.</p> implementation-dependent extensions in a mechanical way.</p>
<!-- <p class="more"><a href="#">read more</a></p> --> <!-- <p class="more"><a href="#">read more</a></p> -->
<h1>Supported Platforms</h1> <h1>Supported Platforms</h1>
<p> The system is known to load and bootstrap itself properly <p> The system is known to load and bootstrap itself properly
on the following Scheme implementations: </p> on the following Scheme implementations: </p>
<ul class="services"> <ul class="services">
<li> Bigloo 3.0b</li> <li> Bigloo 3.0b</li>
<li> Chez Scheme 7.2</li> <li> Chez Scheme 7.2</li>
<li> Chicken 2.710</li> <li> Chicken 2.710</li>
<li> Gambit 4.0.1</li> <li> Gambit 4.0.1</li>
<li> Gauche 0.8.11</li> <li> Gauche 0.8.11</li>
<li> Ikarus (Build 2007-09-24)</li> <li> Ikarus (Build 2007-09-24)</li>
<li> Larceny 0.93</li> <li> Larceny 0.93</li>
<li> MIT-Scheme 7.7.90.+</li> <li> MIT-Scheme 7.7.90.+</li>
<li> MzScheme v371 [3m]</li> <li> MzScheme v371 [3m]</li>
<li> Petite Chez Scheme 7.2</li> <li> Petite Chez Scheme 7.2</li>
<li> Scheme48 1.7</li> <li> Scheme48 1.7</li>
<li> SISC (1.16.6)</li> <li> SISC (1.16.6)</li>
</ul> </ul>
<p> For every supported platform, there is a <p> For every supported platform, there is a
"<tt>&lt;impl&gt;.r6rs.ss</tt>" "<tt>&lt;impl&gt;.r6rs.ss</tt>"
file containing a small number of compatibility definitions file containing a small number of compatibility definitions
that allow loading the expanded system (e.g. <tt>psyntax.pp</tt>) that allow loading the expanded system (e.g. <tt>psyntax.pp</tt>)
properly. </p> properly. </p>
<p> To port to another system, start by loading "<tt>psyntax.pp</tt>". <p> To port to another system, start by loading "<tt>psyntax.pp</tt>".
If you get an error about undefined variables, look for how If you get an error about undefined variables, look for how
these variables are defined in the other <tt>*.r6rs.ss</tt> files and these variables are defined in the other <tt>*.r6rs.ss</tt> files and
port them over to your implementation. It would help to start port them over to your implementation. It would help to start
with a supported implementation that's most familiar to you. with a supported implementation that's most familiar to you.
Please let me know (email: aghuloum at cs.indiana.edu) if you Please let me know (email: aghuloum at cs.indiana.edu) if you
get the system ported to another platform. </p> get the system ported to another platform. </p>
<h1 id="downloads">Downloads</h1> <h1 id="downloads">Downloads</h1>
<p> <p>
Download Download
<a href="psyntax-r6rs-rev4.tgz"><tt>psyntax-r6rs-rev4.tgz</tt></a> <a href="psyntax-r6rs-rev4.tgz"><tt>psyntax-r6rs-rev4.tgz</tt></a>
(released Oct&nbsp;27,&nbsp;2007). (released Oct&nbsp;27,&nbsp;2007).
</p> </p>
<p>Older versions</p> <p>Older versions</p>
<ul> <ul>
<li><a href="psyntax-r6rs-rev1.tgz"><tt>psyntax-r6rs-rev1.tgz</tt></a> <li><a href="psyntax-r6rs-rev1.tgz"><tt>psyntax-r6rs-rev1.tgz</tt></a>
released on Oct 3, 2007.</li> released on Oct 3, 2007.</li>
</ul> </ul>
<h1 id="development">Development</h1> <h1 id="development">Development</h1>
<p> Development of the portable syntax-case system is <p> Development of the portable syntax-case system is
continuing. For the latest snapshot, and to submit bug reports continuing. For the latest snapshot, and to submit bug reports
and feature requests, please visit: and feature requests, please visit:
<a href="https://launchpad.net/r6rs-libraries/">Launchpad's <a href="https://launchpad.net/r6rs-libraries/">Launchpad's
r6rs-libraries</a> project.</p> r6rs-libraries</a> project.</p>
<p>Access to the latest development snapshot is through <p>Access to the latest development snapshot is through
<a href="http://bazaar-vcs.org/">Bazaar Version Control</a>. <a href="http://bazaar-vcs.org/">Bazaar Version Control</a>.
If you have <tt>bzr</tt>, you get the software by typing the If you have <tt>bzr</tt>, you get the software by typing the
following command at your terminal: following command at your terminal:
</p> </p>
<pre> <pre>
$ bzr branch http://bazaar.launchpad.net/~aghuloum/r6rs-libraries/r6rs-libraries.dev $ bzr branch http://bazaar.launchpad.net/~aghuloum/r6rs-libraries/r6rs-libraries.dev
</pre> </pre>
<h1 id="usage">Basic Usage</h1> <h1 id="usage">Basic Usage</h1>
<p>To run an r6rs script on your system, you'll need the <p>To run an r6rs script on your system, you'll need the
following files:</p> following files:</p>
<ul> <ul>
<li> The script you want to run (say <tt>hello-world.ss</tt>).</li> <li> The script you want to run (say <tt>hello-world.ss</tt>).</li>
<li> The <tt>host.r6rs.ss</tt> file for your platform.</li> <li> The <tt>host.r6rs.ss</tt> file for your platform.</li>
<li> The <tt>pre-built/psyntax-host.pp</tt> file.</li> <li> The <tt>pre-built/psyntax-host.pp</tt> file.</li>
</ul> </ul>
<p>For example, we may have a script that looks like:</p> <p>For example, we may have a script that looks like:</p>
<pre> <pre>
$ cat hello-world.ss $ cat hello-world.ss
(import (rnrs io simple)) (import (rnrs io simple))
(display "Hello World\n") (display "Hello World\n")
</pre> </pre>
<p>We copy our host's <tt>pre-built/psyntax-host.pp</tt> to <p>We copy our host's <tt>pre-built/psyntax-host.pp</tt> to
<tt>psyntax.pp</tt> <tt>psyntax.pp</tt>
For Petite Chez Scheme, we'd do:</p> For Petite Chez Scheme, we'd do:</p>
<pre> <pre>
$ cp pre-built/psyntax-petite.pp . $ cp pre-built/psyntax-petite.pp .
</pre> </pre>
<p>Run your implementation's <tt>r6rs.ss</tt> file passing the <p>Run your implementation's <tt>r6rs.ss</tt> file passing the
script name as an extra argument. For example, under petite, script name as an extra argument. For example, under petite,
we do:</p> we do:</p>
<pre> <pre>
$ petite --script petite.r6rs.ss hello-world.ss $ petite --script petite.r6rs.ss hello-world.ss
r6rs psyntax ready r6rs psyntax ready
Hello World Hello World
</pre> </pre>
<p> If you want to write a library, say <tt>(my-library)</tt> as:</p> <p> If you want to write a library, say <tt>(my-library)</tt> as:</p>
<pre> <pre>
$ cat my-library.ss $ cat my-library.ss
(library (my-library) (library (my-library)
(export print-hello) (export print-hello)
(import (rnrs)) (import (rnrs))
(define (print-hello) (define (print-hello)
(display "Hello World\n"))) (display "Hello World\n")))
</pre> </pre>
<p>And then write your <tt>hello-world.ss</tt> script as:</p> <p>And then write your <tt>hello-world.ss</tt> script as:</p>
<pre> <pre>
$ cat hello-world.ss $ cat hello-world.ss
(import (my-library)) (import (my-library))
(print-hello) (print-hello)
</pre> </pre>
<p>Then, you can run it as before:</p> <p>Then, you can run it as before:</p>
<pre> <pre>
$ petite --script petite.r6rs.ss hello-world.ss $ petite --script petite.r6rs.ss hello-world.ss
r6rs psyntax ready r6rs psyntax ready
Hello World Hello World
</pre> </pre>
<p>The library system takes care of mapping the library names <p>The library system takes care of mapping the library names
that you import to file names via a primitive simple that you import to file names via a primitive simple
mapping:</p> mapping:</p>
<pre> <pre>
(foo) =&gt; ./foo.ss (foo) =&gt; ./foo.ss
(foo bar) =&gt; ./foo/bar.ss (foo bar) =&gt; ./foo/bar.ss
... ...
</pre> </pre>
<p> To avoid any problems now, stick with names that contain <p> To avoid any problems now, stick with names that contain
characters in <tt>[a..z]</tt>, <tt>[A..Z]</tt>, characters in <tt>[a..z]</tt>, <tt>[A..Z]</tt>,
<tt>[0..9]</tt>, "<tt>-</tt>", "<tt>_</tt>", "<tt>~</tt>", and <tt>[0..9]</tt>, "<tt>-</tt>", "<tt>_</tt>", "<tt>~</tt>", and
"<tt>.</tt>". If you have ideas about a general "<tt>.</tt>". If you have ideas about a general
library-name-&gt;file-name mapping that you'd like to share, library-name-&gt;file-name mapping that you'd like to share,
please do email me.</p> please do email me.</p>
<p> That's pretty much it as far as basic usage is concerned. <p> That's pretty much it as far as basic usage is concerned.
Let me know if you have any problems.</p> Let me know if you have any problems.</p>
<h1 id="structure">Structure of the system</h1> <h1 id="structure">Structure of the system</h1>
<ul> <ul>
<li><tt>Makefile</tt> Used to build the system under all supported <li><tt>Makefile</tt> Used to build the system under all supported
platforms.</li> platforms.</li>
<li><tt>README.txt</tt> The file you're reading right now.</li> <li><tt>README.txt</tt> The file you're reading right now.</li>
<li><tt>psyntax-buildscript.ss</tt> <li><tt>psyntax-buildscript.ss</tt>
An r6rs script that's used to bootstrap the whole system.</li> An r6rs script that's used to bootstrap the whole system.</li>
<li><tt>*.r6rs.ss</tt> <li><tt>*.r6rs.ss</tt>
Compatibility files for supported platforms with the exception of Compatibility files for supported platforms with the exception of
<tt>kawa.r6rs.ss</tt> which is not working yet.</li> <tt>kawa.r6rs.ss</tt> which is not working yet.</li>
<li><tt>pre-built/*.pp</tt> <li><tt>pre-built/*.pp</tt>
Pre-built expanded files for the supported platforms.</li> Pre-built expanded files for the supported platforms.</li>
<li><tt>session-id</tt> <li><tt>session-id</tt>
Used by gensym to generate unique ids across sessions.</li> Used by gensym to generate unique ids across sessions.</li>
<li><tt>examples hello-world.ss</tt> <li><tt>examples hello-world.ss</tt>
Example scripts.</li> Example scripts.</li>
<li><tt>psyntax/internal.ss</tt> <tt>(psyntax internal)</tt><br/> <li><tt>psyntax/internal.ss</tt> <tt>(psyntax internal)</tt><br/>
Contains definitions of some internal procedures that are used by Contains definitions of some internal procedures that are used by
the system but may need to be modified to get optimal performance the system but may need to be modified to get optimal performance
and usability on any platform. It is currently written as a and usability on any platform. It is currently written as a
common-denominator of all supported platforms.</li> common-denominator of all supported platforms.</li>
<li><tt>psyntax/builders.ss</tt> <li><tt>psyntax/builders.ss</tt>
<tt>(psyntax builders)</tt> <br/> <tt>(psyntax builders)</tt> <br/>
Exports procedures/macros that are used by the expander to build Exports procedures/macros that are used by the expander to build
the output expression. For example, build-letrec is used to build the output expression. For example, build-letrec is used to build
letrec expressions. Implementations with tight integration may letrec expressions. Implementations with tight integration may
replace the builders with constructors of compiler-internal data replace the builders with constructors of compiler-internal data
structures.</li> structures.</li>
<li><tt>psyntax/expander.ss</tt> <li><tt>psyntax/expander.ss</tt>
<tt>(psyntax expander)</tt><br/> <tt>(psyntax expander)</tt><br/>
The core of the expander.</li> The core of the expander.</li>
<li><tt>psyntax/library-manager.ss</tt> <li><tt>psyntax/library-manager.ss</tt>
<tt>(psyntax library-manager)</tt><br/> <tt>(psyntax library-manager)</tt><br/>
The library manager keeps track of what libraries are installed The library manager keeps track of what libraries are installed
and available on the system. It takes care of visiting/invoking and available on the system. It takes care of visiting/invoking
such libraries as well as loading them from source files. </li> such libraries as well as loading them from source files. </li>
<li><tt>psyntax/config.ss</tt> <li><tt>psyntax/config.ss</tt>
<tt>(psyntax config)</tt><br/> <tt>(psyntax config)</tt><br/>
This is a compile-time configuration file for determining what This is a compile-time configuration file for determining what
forms the implementation supports (e.g. is case-lambda supported forms the implementation supports (e.g. is case-lambda supported
or should it be expanded). The provided configuration is one that or should it be expanded). The provided configuration is one that
works for all implementation (common denominator).</li> works for all implementation (common denominator).</li>
<li><tt>psyntax/compat.ss</tt> <li><tt>psyntax/compat.ss</tt>
<tt>(psyntax compat)</tt><br/> <tt>(psyntax compat)</tt><br/>
This is a compatibility file for some non-r6rs forms that are used This is a compatibility file for some non-r6rs forms that are used
in other libraries but can be implemented portably in terms of in other libraries but can be implemented portably in terms of
other r6rs features. make-parameter, parameterize, and other r6rs features. make-parameter, parameterize, and
define-record.</li> define-record.</li>
<li><tt>psyntax/main.ss</tt> <li><tt>psyntax/main.ss</tt>
<tt>(psyntax main)</tt><br/> <tt>(psyntax main)</tt><br/>
This library is the main entry point to the r6rs world. It This library is the main entry point to the r6rs world. It
prints a greeting message and processes the file given in the prints a greeting message and processes the file given in the
command line argument as an r6rs-script.</li> command line argument as an r6rs-script.</li>
</ul> </ul>
<h1 id="nonr6">Non-R6RS requirements</h1> <h1 id="nonr6">Non-R6RS requirements</h1>
<p> <tt>void</tt>: The procedure void is used in the output of the <p> <tt>void</tt>: The procedure void is used in the output of the
expander when we don't care about a value (e.g. to provide the expander when we don't care about a value (e.g. to provide the
initial values for the <tt>letrec*</tt>/internal-defines). A call initial values for the <tt>letrec*</tt>/internal-defines). A call
to void should not signal any errors. <tt>(define (void) (if #f to void should not signal any errors. <tt>(define (void) (if #f
#f))</tt> suffices for this purpose.</p> #f))</tt> suffices for this purpose.</p>
<p><tt>pretty-print</tt>: The procedure pretty-print should take <p><tt>pretty-print</tt>: The procedure pretty-print should take
one or two values: an expression (code) to be printed and, one or two values: an expression (code) to be printed and,
optionally, an output port. It should pretty-print the code to that optionally, an output port. It should pretty-print the code to that
port (or the current-output-port if a port is not provided. port (or the current-output-port if a port is not provided.
Implementations with no pretty printer can <tt>(define pretty-print Implementations with no pretty printer can <tt>(define pretty-print
write)</tt> for this purpose but the output won't be very write)</tt> for this purpose but the output won't be very
readable.</p> readable.</p>
<p><tt>eval-core</tt>: This procedure should take a core s-expression and <p><tt>eval-core</tt>: This procedure should take a core s-expression and
evaluate it in a "top-level" environment. R5RS implementations can evaluate it in a "top-level" environment. R5RS implementations can
define it as</p> define it as</p>
<pre> <pre>
(define (eval-core x) (eval x (interaction-environment))) (define (eval-core x) (eval x (interaction-environment)))
</pre> </pre>
<p><tt>gensym</tt>: The procedure gensym should create a globally unique symbol <p><tt>gensym</tt>: The procedure gensym should create a globally unique symbol
with read/write invariance. It is used to create unique locations with read/write invariance. It is used to create unique locations
for exported identifiers, unique names for lexical variables, and for exported identifiers, unique names for lexical variables, and
unique labels in the expand-time environment. Of the supported unique labels in the expand-time environment. Of the supported
Scheme implementations, only Chez Scheme and Ikarus provide a usable Scheme implementations, only Chez Scheme and Ikarus provide a usable
gensym implementation for this purpose; yet their printed gensym implementation for this purpose; yet their printed
represenation of gensyms are not portable (cannot be read by the represenation of gensyms are not portable (cannot be read by the
other R5RS implementations). For this, we provide a gensym other R5RS implementations). For this, we provide a gensym
implementation that's semi portable but relies on an external state implementation that's semi portable but relies on an external state
(session-id file) to ensure that the sequence of symbols generated (session-id file) to ensure that the sequence of symbols generated
are unique across sessions. Gensym takes an optional argument that are unique across sessions. Gensym takes an optional argument that
is either a string or a symbol that can be used to correlate the is either a string or a symbol that can be used to correlate the
source name of the identifier with its unique name. The output of source name of the identifier with its unique name. The output of
our implementation of gensym looks like</p> our implementation of gensym looks like</p>
<pre> <pre>
&lt;name&gt;$&lt;session-id&gt;$&lt;gensym-id&gt; &lt;name&gt;$&lt;session-id&gt;$&lt;gensym-id&gt;
</pre> </pre>
where both session-id and gensym-id are nonnegative integers. where both session-id and gensym-id are nonnegative integers.
<p><tt>symbol-value</tt>: This procedure takes a symbol <p><tt>symbol-value</tt>: This procedure takes a symbol
(typically a gensym) and returns the value associated with it (typically a gensym) and returns the value associated with it
in the global environment. The symbol is guaranteed to be in the global environment. The symbol is guaranteed to be
initialized either via a global <tt>define</tt> or via initialized either via a global <tt>define</tt> or via
<tt>set-symbol-value!</tt> (below).</p> <tt>set-symbol-value!</tt> (below).</p>
<p><tt>set-symbol-value!</tt>: This procedure takes a symbol <p><tt>set-symbol-value!</tt>: This procedure takes a symbol
(typically a gensym) and a value and associates the value with (typically a gensym) and a value and associates the value with
the symbol in the global environment (in a way that eval-core the symbol in the global environment (in a way that eval-core
can properly see it).</p> can properly see it).</p>
<h1 id="changes">Changes</h1> <h1 id="changes">Changes</h1>
<ul> <ul>
<li><p>Oct 27, 2007: <li><p>Oct 27, 2007:
All of R6RS core syntactic forms are now supported by the All of R6RS core syntactic forms are now supported by the
expander including <tt>define-record-type</tt>, expander including <tt>define-record-type</tt>,
<tt>record-type-descriptor</tt>, <tt>record-type-descriptor</tt>,
<tt>record-constructor-descriptor</tt>, <tt>record-constructor-descriptor</tt>,
<tt>define-condition-type</tt>, <tt>define-enumeration</tt>, <tt>define-condition-type</tt>, <tt>define-enumeration</tt>,
and <tt>guard</tt>. and <tt>guard</tt>.
The expander now parses and enforces The expander now parses and enforces
version and subversion requirements for imported libraries. version and subversion requirements for imported libraries.
The initial library set have proper version names, The initial library set have proper version names,
<tt>(6)</tt>. <tt>(6)</tt>.
</p></li> </p></li>
<li><p>Oct 3, 2007: Initial release (at ICFP&nbsp;2007). <li><p>Oct 3, 2007: Initial release (at ICFP&nbsp;2007).
Implements most of the core functionality of R6RS including Implements most of the core functionality of R6RS including
the expander and the library manager.</p> </li> the expander and the library manager.</p> </li>
</ul> </ul>
<h1 id="license">License</h1> <h1 id="license">License</h1>
<p>The following license applies to all of the distributed <p>The following license applies to all of the distributed
psyntax files: </p> psyntax files: </p>
<pre> <pre>
Copyright (c) 2006, 2007 Abdulaziz Ghuloum and Kent Dybvig Copyright (c) 2006, 2007 Abdulaziz Ghuloum and Kent Dybvig
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction, (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions: subject to the following conditions:
The above copyright notice and this permission notice shall be The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software. included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. </pre> SOFTWARE. </pre>
<!-- <!--
<ul class="services"> <ul class="services">
<li class="captionone">Quis magna vel</li> <li class="captionone">Quis magna vel</li>
<li><a href="#">Amet, consectetuer</a></li> <li><a href="#">Amet, consectetuer</a></li>
<li><a href="#">Adipiscing elit.</a></li> <li><a href="#">Adipiscing elit.</a></li>
<li><a href="#">Praesent scing ips</a></li> <li><a href="#">Praesent scing ips</a></li>
<li><a href="#">Um Id nislpo.</a></li> <li><a href="#">Um Id nislpo.</a></li>
</ul> </ul>
<ul class="servicestwo"> <ul class="servicestwo">
<li class="captiontwo">Quis magna vel</li> <li class="captiontwo">Quis magna vel</li>
<li><a href="#">Amet, consectetuer</a></li> <li><a href="#">Amet, consectetuer</a></li>
<li><a href="#">Adipiscing elit.</a></li> <li><a href="#">Adipiscing elit.</a></li>
<li><a href="#">Praesent scing ips</a></li> <li><a href="#">Praesent scing ips</a></li>
<li><a href="#">Um Id nislpo.</a></li> <li><a href="#">Um Id nislpo.</a></li>
</ul> </ul>
<p class="more"><a href="#">read more</a></p> <p class="more"><a href="#">read more</a></p>
<h4>current events</h4> <h4>current events</h4>
<ul class="events"> <ul class="events">
<li class="captionthree">24.07.06</li> <li class="captionthree">24.07.06</li>
<li><a href="#">Amet, consectetuer Adipiscing elit. Praesent </a></li> <li><a href="#">Amet, consectetuer Adipiscing elit. Praesent </a></li>
<li><a href="#">Scing ipconvallis, leo pede eleifend orci, sed</a></li> <li><a href="#">Scing ipconvallis, leo pede eleifend orci, sed</a></li>
<li><a href="#">lobortis orci tortor id erat. Etiam facilisis. Etiam</a></li> <li><a href="#">lobortis orci tortor id erat. Etiam facilisis. Etiam</a></li>
<li><a href="#">Rutrum nuncs</a></li> <li><a href="#">Rutrum nuncs</a></li>
</ul> </ul>
<p class="more"><a href="#">read more</a></p> <p class="more"><a href="#">read more</a></p>
--> -->
</div> </div>
</div> </div>
</div> </div>
<div id="footermainPan"> <div id="footermainPan">
<div id="footerPan"> <div id="footerPan">
<ul> <ul>
<li><a href="../index.html">Ikarus</a>| </li> <li><a href="../index.html">Ikarus</a>| </li>
<li><a href="#about">psyntax</a></li> <li><a href="#about">psyntax</a></li>
</ul> </ul>
<!--<p class="copyright">©aquatic. All right reserved.</p>--> <!--<p class="copyright">©aquatic. All right reserved.</p>-->
<div id="footerPanhtml"><a href="http://validator.w3.org/check?uri=referer" target="_blank">XHTML</a></div> <div id="footerPanhtml"><a href="http://validator.w3.org/check?uri=referer" target="_blank">XHTML</a></div>
<div id="footerPancss"><a href="http://jigsaw.w3.org/css-validator/check/referer" target="_blank">css</a></div> <div id="footerPancss"><a href="http://jigsaw.w3.org/css-validator/check/referer" target="_blank">css</a></div>
<ul class="templateworld"> <ul class="templateworld">
<li>original design by:</li> <li>original design by:</li>
<li><a href="http://www.templateworld.com" target="_blank">Template World</a></li> <li><a href="http://www.templateworld.com" target="_blank">Template World</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</body> </body>
</html> </html>