Author: ehuelsmann Date: Thu Jun 12 15:46:00 2008 New Revision: 340
Modified: public_html/api-docs.shtml (props changed) public_html/feature-comparison.shtml (props changed) public_html/implementation-comparison.shtml (props changed) public_html/index.shtml (contents, props changed) public_html/project-name (props changed) public_html/style.css (props changed) Log: Set eol-style.
Modified: public_html/index.shtml ============================================================================== --- public_html/index.shtml (original) +++ public_html/index.shtml Thu Jun 12 15:46:00 2008 @@ -1,470 +1,470 @@ -<?xml version="1.0"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> - <title><!--#include virtual="project-name" --></title> - <link rel="stylesheet" type="text/css" href="style.css"/> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> -</head> - -<body> - <div class="header"> - <h1><!--#include virtual="project-name" --></h1> - </div> - -<ul> -<li><a href="#goal">Goal</a></li> -<li><a href="#documentation">Documentation</a></li> -<li><a href="#implementations">Supported implementations</a></li> -<li><a href="#community">Community</a></li> -<li><a href="#development">Development</a></li> -<li><a href="#guarantees">Interface guarantees</a></li> -<li><a href="#releases">Releases</a></li> -<li><a href="#history">Project history</a></li> -</ul> - -<h2><a name="goal">Goal</a></h2> - -<p>The project wants to provide a portable TCP/IP (and later on maybe -UDP) socket interface for as many Common Lisp implementations as -possible, while keeping the abstraction and portability layer as thin -as possible. </p> - -<p>Because <a href="http://cliki.net/trivial-sockets">trivial-sockets</a> -has been declared dead and its author has said he will declare usocket -its successor if there is a zero effort path of migration, I'm <b>also working -on <em>trivial-usocket</em></b> which is supposed to be a sub-optimal, but zero -effort migration from trivial-sockets.</p> - -<p>If your lisp isn't mentioned in the list below, please feel free to -submit a request for it at the mailing list mentioned below.</p> - -<h3>Comparison to other socket libraries</h3> - -<p>Since usocket is effectively the succesor to trivial-sockets, see the - <a href="feature-comparison.shtml">feature comparison</a> with - trivial-sockets in order to find out which one you should use.</p> - -<p>After starting the project, many others turned out to have worked on - something alike, many times as part of a broader project or library. - Some of them were known at the start of this project, others have - been conceived after the usocket project already started. Not all of - them have exactly the same portability goal.</p> - -<p>See the <a href="implementation-comparison.shtml">Implementation - comparison</a> page for a comparison of the portability of other - libaries and how that relates to usocket.</p> - - -<h2><a name="documentation">Documentation</a></h2> - -<p>See the documentation page for the <a href="./api-docs.shtml">API description</a>.</p> - -<h2><a name="implementations">Supported implementations</a></h2> - -<p>Currently these implementations are supported:</p> - -<ul> - <li>SBCL</li> - <li>CMUCL</li> - <li>Armedbear (0.0.10 and up)</li> - <li>clisp</li> - <li>Allegro</li> - <li>LispWorks (5.0 and up)</li> - <li>OpenMCL</li> - <li>ECL</li> - <li>Scieneer</li> -</ul> - -<h2><a name="community">Community</a></h2> - - <p>This project has started Januari 2006. There isn't much of a community - yet, though I'd like there to be one. So, you're invited to join - the mailing list, announce yourself and even join the effort! - </p> - - - <p>Development discussion takes place on - <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel">usocket-devel@common-lisp.net</a>. - </p> - -<p>Project tracking happens in the <a href="http://trac.common-lisp.net/usocket"> - project's Trac setup</a>. Please take note of the guidelines before - entering a bug or enhancement request into the database.</p> - - -<div class="roadmap"> - <h2><a name="development">Development</a></h2> - - <p>Development will at least follow the steps outlined below. - Yet to be determined is whether the currently mentioned steps will - be enough to release version 1.0. Possibly, UDP sockets remain to be - addressed before doing 1.0; that will depend on your reactions :-) - </p> - <p>The targeted implementations listed in the status table below are not - a final list: others can be added if/when the need or interest arrises. - </p> - <p><a href="http://common-lisp.net/websvn/log.php?repname=usocket&path=%2Fusocket%2F..." - >Active development</a> is taking place in the - <a href="http://subversion.tigris.org/">Subversion</a> repository. - To be kept up to date, please - <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel" - >subscribe to the commit message mailing list</a>. To use the latest - development version, make sure you have <a - href="http://subversion.tigris.org/%22%3ESubversion</a> installed and - execute this command: - </p> - - <pre> - $ svn checkout svn://common-lisp.net/project/usocket/svn/usocket/trunk usocket-svn - </pre> - - <p>Please send patches, bug reports and suggestions to the development - mailing list address given above. The table below indicates the - current state of development. - </p> - -<table rules="all" border="1" cellpadding="3" style="font-size:small"> - <caption style="font-weight:bold;font-size:large">Status for the currently targeted backends</caption> - <thead class="roadmap-head"> - <tr> - <th colspan="2">Major steps</th> - <th colspan="9">Socket implementations</th> - </tr> - <tr> - <th></th> - <th>Minor steps</th> - <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fsb-bsd-sockets.txt&rev=0&sc=0">SBCL</a></th> - <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fcmucl-sockets.txt&rev=0&sc=0">CMUCL</a></th> - <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fabcl-socket.txt&rev=0&sc=0">ABCL</a></th> - <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fclisp-sockets.txt&rev=0&sc=0">clisp</a></th> - <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fallegro-socket.txt&rev=0&sc=0">Allegro</a></th> - <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Flw-sockets.txt&rev=0&sc=0">LispWorks</a></th> - <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fopenmcl-sockets.txt&rev=0&sc=0">OpenMCL</a></th> - <th>ECL</th> - <th>Scieneer</th> - </tr> - </thead> - <tbody> - <tr style="border-width:2px;border-color:#000;"> - <td rowspan="5">Minimal active sockets support - at the same level as provided by - <a href="http://cliki.net/trivial-sockets">trivial-sockets</a>.<br /> - (Meaning streamed tcp traffic on connected sockets.)</td> - <td><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fus..." - >Investigate interfaces provided.</a></td> - <td class="DONE">DONE</td> <!-- SBCL --> - <td class="DONE">DONE</td> <!-- CMUCL --> - <td class="DONE">DONE</td> <!-- ABCL --> - <td class="DONE">DONE</td> <!-- clisp --> - <td class="DONE">DONE</td> <!-- Allegro --> - <td class="DONE">DONE</td> <!-- LispWorks --> - <td class="DONE">DONE</td> <!-- OpenMCL --> - <td class="DONE">DONE</td> <!-- ECL --> - <td class="DONE">DONE</td> <!-- Scieneer --> - </tr> - - <tr> - <td>Identify socket errors generated.</td> - <td class="DONE" title="Implemented">DONE</td> - <td class="DONE" title="Implemented">DONE</td> - <td class="DONE" title="No specific errors available">DONE</td> - <td class="DONE" title="Implemented">DONE</td> - <td class="DONE" title="Implemented">DONE</td> - <td class="DONE" title="Implemented">DONE</td> - <td class="DONE" title="Implemented">DONE</td> - <td class="DONE" title="Implemented">DONE</td> - <td class="DONE" title="Implemented">DONE</td> - </tr> - <tr> - <td>Implement active socket support.</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - </tr> - <tr> - <td>Implement remapping of implementation defined errors.</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - </tr> - <tr> - <td>Implementation test-suite status</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - </tr> - <tr> - <td rowspan="3">Add functions to retrieve socket properties:<br /> - Local and remote IP address and port.</td> - <td><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fus..." - >Investigate interfaces provided</a></td> - <td class="DONE">DONE</td> <!-- SBCL --> - <td class="DONE">DONE</td> <!-- CMUCL --> - <td class="DONE">DONE</td> <!-- ABCL --> - <td class="DONE">DONE</td> <!-- clisp --> - <td class="DONE">DONE</td> <!-- Allegro --> - <td class="DONE">DONE</td> <!-- LispWorks --> - <td class="DONE">DONE</td> <!-- OpenMCL --> - <td class="DONE">DONE</td> <!-- ECL --> - <td class="DONE">DONE</td> <!-- Scieneer --> - </tr> - <tr> - <td>Implement it.</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - </tr> - <tr> - <td>Implementation test-suite status</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - <td class="PASS">PASS</td> - </tr> - <tr> - <td rowspan="3">Add support for passive (connection-accepting/server) - sockets.</td> - <td>Investigate interfaces provided</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - </tr> - <tr> - <td>Implement api calls listen and accept</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - </tr> - <tr> - <td>Implement api calls get- and setsockopt (or equivalent).</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - </tr> - <tr> - <td rowspan="2">Implement efficient waiting for multiple sockets - in one function call (select() like behaviour).</td> - <td><a href="http://trac.common-lisp.net/usocket/wiki/SocketSelect"> - Investigate interfaces provided</a></td> - - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE" title="missing on Win32">done</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - </tr> - <tr> - <td>Implement wait-for-input api.</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE" title="missing on Win32">done</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - <td class="DONE">DONE</td> - </tr> - <tr> - <td rowspan="2">Implement more uncommon api calls - for tcp streams.</td> - <td>send, recv</td> - - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - </tr> - <tr> - <td>shutdown</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - </tr> - <tr> - <td rowspan="2">Implement udp socket support.</td> - <td><a href="http://trac.common-lisp.net/usocket/wiki/DatagramSockets"> - Investigate API's provided</a></td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - <td class="WIP">WIP</td> - </tr> - <tr> - <td>Build on top of that (or custom ffi).</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - <td class="TODO">TODO</td> - </tr> - </tbody> -</table> -</div> - -<h2><a name="guarantees">Interface guarantees</a></h2> - -<p>The interfaces currently published in the :export part of the -package definition are guaranteed to stay compatible for the -entire 0.x lifecycle. Extention in a backward compatible way is -ofcourse valid, as is the addition of new interface functions.</p> - -<h2><a name="releases">Releases</a></h2> - -<h3>Current release</h3> -<p>Releases are uploaded to the <a href="releases/">releases/</a> - directory. You can find short descriptions in the table below:</p> - -<table> -<caption>Release history</caption> -<tr><th>Date</th><th>Release</th><th>Summary</th></tr> -<tr><td>Sep 18, 2007</td> - <td>0.3.5</td> - <td>Implementation-dependent errors bleeding through, ECL get-host-name - memory allocation fix/win32 compat fix, CLISP compile warnings fixes, - SBCL compile warning/error fix, CLISP get-peer-name/get-local-name - fixes</td></tr> -<tr><td>Jul 25, 2007</td> - <td>0.3.4</td> - <td>Fix clisp get-host-name, multiple ECL fixes.</td></tr> -<tr><td>Jun 05, 2007</td> - <td>0.3.3</td> - <td>Fix where host resolution routine was unable to resolve would return - NIL instead of erroring.</td></tr> -<tr><td>Mar 04, 2007</td> - <td>0.3.2</td> - <td>Fixes for many backends related to closing sockets. - LispWorks fix for broken server sockets. - API guarantee adjustments in preparation of porting Drakma.</td></tr> -<tr><td>Feb 28, 2007</td> - <td>0.3.1</td> - <td>fixed with-server-socket; prevent creation of invalid sockets; - 2 more convenience macros.</td></tr> -<tr><td>Feb 26, 2007</td> - <td>re-release</td> - <td>Re-release of 0.2.3, 0.2.4, 0.2.5 and 0.3.0 tarballs - because the originals included Subversion administration areas.</td></tr> -<tr><td>Jan 21, 2007</td> - <td><b>0.3.0</b></td><td><b>Server sockets</b></td></tr> -<tr><td>Jan 19, 2007</td> - <td>0.2.5</td><td>Allegro compilation fix.</td></tr> -<tr><td>Jan 17, 2007</td> - <td>0.2.4</td><td>Various fixes for CMUCL, OpenMCL, Allegro and LispWorks. - </td></tr> -<tr><td>Jan 04, 2007</td> - <td>0.2.3</td><td>Add :element-type support to support stacking - flexi-streams on socket streams for portable :external-format - support.</td></tr> -<tr><td>Jan 03, 2007</td> - <td>0.2.2</td><td>Add ECL support and a small SBCL bugfix.</td></tr> -<tr><td>Dec 21, 2006</td> - <td>0.2.1</td><td>Remove 'open-stream' interface which is supposed - to be provided by the 'trivial-usocket' package.</td></tr> -<tr><td>Dec 18, 2006</td> - <td>0.2.0</td><td>Add support for - <a href="http://www.scieneer.com/scl/index.html">Scieneer - Common Lisp</a>, fix <a - href="http://trac.common-lisp.net/usocket/ticket/6%22%3Eissue #6</a> and - API preparation for server side sockets (not in this release)</td></tr> -<tr><td>Feb 13, 2006</td> -<td>0.1.0</td><td>Initial release</td></tr> -</table> - - - - -<h2><a name="history">Project history</a></h2> - -<p>Long ago the project was conceived and started by Erik Enge in an -attempt to factor out all implementation specific sockets code from -<a href="/project/cl-irc">cl-irc</a>. This 'long ago' must have been -way before 2003 when I entered the cl-irc project.</p> - -<p>In january 2006, Erik Huelsmann found Erik Enge willing to donate -the code he had still laying around to restart the project. The restart -took place at the 27th of january when the old code was imported into the -public repository.</p> - -<hr /> - -<div style="float:left;font-size:x-small;font-weight:bold"> -Back to <a href="http://common-lisp.net/">Common-lisp.net</a>. -</div> - <div class="check" style="float:right"> - <a href="http://validator.w3.org/check/referer">Valid XHTML 1.0 Strict</a> - </div> -</body> -</html> +<?xml version="1.0"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title><!--#include virtual="project-name" --></title> + <link rel="stylesheet" type="text/css" href="style.css"/> + <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +</head> + +<body> + <div class="header"> + <h1><!--#include virtual="project-name" --></h1> + </div> + +<ul> +<li><a href="#goal">Goal</a></li> +<li><a href="#documentation">Documentation</a></li> +<li><a href="#implementations">Supported implementations</a></li> +<li><a href="#community">Community</a></li> +<li><a href="#development">Development</a></li> +<li><a href="#guarantees">Interface guarantees</a></li> +<li><a href="#releases">Releases</a></li> +<li><a href="#history">Project history</a></li> +</ul> + +<h2><a name="goal">Goal</a></h2> + +<p>The project wants to provide a portable TCP/IP (and later on maybe +UDP) socket interface for as many Common Lisp implementations as +possible, while keeping the abstraction and portability layer as thin +as possible. </p> + +<p>Because <a href="http://cliki.net/trivial-sockets">trivial-sockets</a> +has been declared dead and its author has said he will declare usocket +its successor if there is a zero effort path of migration, I'm <b>also working +on <em>trivial-usocket</em></b> which is supposed to be a sub-optimal, but zero +effort migration from trivial-sockets.</p> + +<p>If your lisp isn't mentioned in the list below, please feel free to +submit a request for it at the mailing list mentioned below.</p> + +<h3>Comparison to other socket libraries</h3> + +<p>Since usocket is effectively the succesor to trivial-sockets, see the + <a href="feature-comparison.shtml">feature comparison</a> with + trivial-sockets in order to find out which one you should use.</p> + +<p>After starting the project, many others turned out to have worked on + something alike, many times as part of a broader project or library. + Some of them were known at the start of this project, others have + been conceived after the usocket project already started. Not all of + them have exactly the same portability goal.</p> + +<p>See the <a href="implementation-comparison.shtml">Implementation + comparison</a> page for a comparison of the portability of other + libaries and how that relates to usocket.</p> + + +<h2><a name="documentation">Documentation</a></h2> + +<p>See the documentation page for the <a href="./api-docs.shtml">API description</a>.</p> + +<h2><a name="implementations">Supported implementations</a></h2> + +<p>Currently these implementations are supported:</p> + +<ul> + <li>SBCL</li> + <li>CMUCL</li> + <li>Armedbear (0.0.10 and up)</li> + <li>clisp</li> + <li>Allegro</li> + <li>LispWorks (5.0 and up)</li> + <li>OpenMCL</li> + <li>ECL</li> + <li>Scieneer</li> +</ul> + +<h2><a name="community">Community</a></h2> + + <p>This project has started Januari 2006. There isn't much of a community + yet, though I'd like there to be one. So, you're invited to join + the mailing list, announce yourself and even join the effort! + </p> + + + <p>Development discussion takes place on + <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel">usocket-devel@common-lisp.net</a>. + </p> + +<p>Project tracking happens in the <a href="http://trac.common-lisp.net/usocket"> + project's Trac setup</a>. Please take note of the guidelines before + entering a bug or enhancement request into the database.</p> + + +<div class="roadmap"> + <h2><a name="development">Development</a></h2> + + <p>Development will at least follow the steps outlined below. + Yet to be determined is whether the currently mentioned steps will + be enough to release version 1.0. Possibly, UDP sockets remain to be + addressed before doing 1.0; that will depend on your reactions :-) + </p> + <p>The targeted implementations listed in the status table below are not + a final list: others can be added if/when the need or interest arrises. + </p> + <p><a href="http://common-lisp.net/websvn/log.php?repname=usocket&path=%2Fusocket%2F..." + >Active development</a> is taking place in the + <a href="http://subversion.tigris.org/">Subversion</a> repository. + To be kept up to date, please + <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel" + >subscribe to the commit message mailing list</a>. To use the latest + development version, make sure you have <a + href="http://subversion.tigris.org/%22%3ESubversion</a> installed and + execute this command: + </p> + + <pre> + $ svn checkout svn://common-lisp.net/project/usocket/svn/usocket/trunk usocket-svn + </pre> + + <p>Please send patches, bug reports and suggestions to the development + mailing list address given above. The table below indicates the + current state of development. + </p> + +<table rules="all" border="1" cellpadding="3" style="font-size:small"> + <caption style="font-weight:bold;font-size:large">Status for the currently targeted backends</caption> + <thead class="roadmap-head"> + <tr> + <th colspan="2">Major steps</th> + <th colspan="9">Socket implementations</th> + </tr> + <tr> + <th></th> + <th>Minor steps</th> + <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fsb-bsd-sockets.txt&rev=0&sc=0">SBCL</a></th> + <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fcmucl-sockets.txt&rev=0&sc=0">CMUCL</a></th> + <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fabcl-socket.txt&rev=0&sc=0">ABCL</a></th> + <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fclisp-sockets.txt&rev=0&sc=0">clisp</a></th> + <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fallegro-socket.txt&rev=0&sc=0">Allegro</a></th> + <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Flw-sockets.txt&rev=0&sc=0">LispWorks</a></th> + <th><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fusocket%2Ftrunk%2Fnotes%2Fopenmcl-sockets.txt&rev=0&sc=0">OpenMCL</a></th> + <th>ECL</th> + <th>Scieneer</th> + </tr> + </thead> + <tbody> + <tr style="border-width:2px;border-color:#000;"> + <td rowspan="5">Minimal active sockets support + at the same level as provided by + <a href="http://cliki.net/trivial-sockets">trivial-sockets</a>.<br /> + (Meaning streamed tcp traffic on connected sockets.)</td> + <td><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fus..." + >Investigate interfaces provided.</a></td> + <td class="DONE">DONE</td> <!-- SBCL --> + <td class="DONE">DONE</td> <!-- CMUCL --> + <td class="DONE">DONE</td> <!-- ABCL --> + <td class="DONE">DONE</td> <!-- clisp --> + <td class="DONE">DONE</td> <!-- Allegro --> + <td class="DONE">DONE</td> <!-- LispWorks --> + <td class="DONE">DONE</td> <!-- OpenMCL --> + <td class="DONE">DONE</td> <!-- ECL --> + <td class="DONE">DONE</td> <!-- Scieneer --> + </tr> + + <tr> + <td>Identify socket errors generated.</td> + <td class="DONE" title="Implemented">DONE</td> + <td class="DONE" title="Implemented">DONE</td> + <td class="DONE" title="No specific errors available">DONE</td> + <td class="DONE" title="Implemented">DONE</td> + <td class="DONE" title="Implemented">DONE</td> + <td class="DONE" title="Implemented">DONE</td> + <td class="DONE" title="Implemented">DONE</td> + <td class="DONE" title="Implemented">DONE</td> + <td class="DONE" title="Implemented">DONE</td> + </tr> + <tr> + <td>Implement active socket support.</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + </tr> + <tr> + <td>Implement remapping of implementation defined errors.</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + </tr> + <tr> + <td>Implementation test-suite status</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + </tr> + <tr> + <td rowspan="3">Add functions to retrieve socket properties:<br /> + Local and remote IP address and port.</td> + <td><a href="http://common-lisp.net/websvn/filedetails.php?repname=usocket&path=%2Fus..." + >Investigate interfaces provided</a></td> + <td class="DONE">DONE</td> <!-- SBCL --> + <td class="DONE">DONE</td> <!-- CMUCL --> + <td class="DONE">DONE</td> <!-- ABCL --> + <td class="DONE">DONE</td> <!-- clisp --> + <td class="DONE">DONE</td> <!-- Allegro --> + <td class="DONE">DONE</td> <!-- LispWorks --> + <td class="DONE">DONE</td> <!-- OpenMCL --> + <td class="DONE">DONE</td> <!-- ECL --> + <td class="DONE">DONE</td> <!-- Scieneer --> + </tr> + <tr> + <td>Implement it.</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + </tr> + <tr> + <td>Implementation test-suite status</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + <td class="PASS">PASS</td> + </tr> + <tr> + <td rowspan="3">Add support for passive (connection-accepting/server) + sockets.</td> + <td>Investigate interfaces provided</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + </tr> + <tr> + <td>Implement api calls listen and accept</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + </tr> + <tr> + <td>Implement api calls get- and setsockopt (or equivalent).</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + </tr> + <tr> + <td rowspan="2">Implement efficient waiting for multiple sockets + in one function call (select() like behaviour).</td> + <td><a href="http://trac.common-lisp.net/usocket/wiki/SocketSelect"> + Investigate interfaces provided</a></td> + + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE" title="missing on Win32">done</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + </tr> + <tr> + <td>Implement wait-for-input api.</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE" title="missing on Win32">done</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + <td class="DONE">DONE</td> + </tr> + <tr> + <td rowspan="2">Implement more uncommon api calls + for tcp streams.</td> + <td>send, recv</td> + + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + </tr> + <tr> + <td>shutdown</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + </tr> + <tr> + <td rowspan="2">Implement udp socket support.</td> + <td><a href="http://trac.common-lisp.net/usocket/wiki/DatagramSockets"> + Investigate API's provided</a></td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + <td class="WIP">WIP</td> + </tr> + <tr> + <td>Build on top of that (or custom ffi).</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + <td class="TODO">TODO</td> + </tr> + </tbody> +</table> +</div> + +<h2><a name="guarantees">Interface guarantees</a></h2> + +<p>The interfaces currently published in the :export part of the +package definition are guaranteed to stay compatible for the +entire 0.x lifecycle. Extention in a backward compatible way is +ofcourse valid, as is the addition of new interface functions.</p> + +<h2><a name="releases">Releases</a></h2> + +<h3>Current release</h3> +<p>Releases are uploaded to the <a href="releases/">releases/</a> + directory. You can find short descriptions in the table below:</p> + +<table> +<caption>Release history</caption> +<tr><th>Date</th><th>Release</th><th>Summary</th></tr> +<tr><td>Sep 18, 2007</td> + <td>0.3.5</td> + <td>Implementation-dependent errors bleeding through, ECL get-host-name + memory allocation fix/win32 compat fix, CLISP compile warnings fixes, + SBCL compile warning/error fix, CLISP get-peer-name/get-local-name + fixes</td></tr> +<tr><td>Jul 25, 2007</td> + <td>0.3.4</td> + <td>Fix clisp get-host-name, multiple ECL fixes.</td></tr> +<tr><td>Jun 05, 2007</td> + <td>0.3.3</td> + <td>Fix where host resolution routine was unable to resolve would return + NIL instead of erroring.</td></tr> +<tr><td>Mar 04, 2007</td> + <td>0.3.2</td> + <td>Fixes for many backends related to closing sockets. + LispWorks fix for broken server sockets. + API guarantee adjustments in preparation of porting Drakma.</td></tr> +<tr><td>Feb 28, 2007</td> + <td>0.3.1</td> + <td>fixed with-server-socket; prevent creation of invalid sockets; + 2 more convenience macros.</td></tr> +<tr><td>Feb 26, 2007</td> + <td>re-release</td> + <td>Re-release of 0.2.3, 0.2.4, 0.2.5 and 0.3.0 tarballs + because the originals included Subversion administration areas.</td></tr> +<tr><td>Jan 21, 2007</td> + <td><b>0.3.0</b></td><td><b>Server sockets</b></td></tr> +<tr><td>Jan 19, 2007</td> + <td>0.2.5</td><td>Allegro compilation fix.</td></tr> +<tr><td>Jan 17, 2007</td> + <td>0.2.4</td><td>Various fixes for CMUCL, OpenMCL, Allegro and LispWorks. + </td></tr> +<tr><td>Jan 04, 2007</td> + <td>0.2.3</td><td>Add :element-type support to support stacking + flexi-streams on socket streams for portable :external-format + support.</td></tr> +<tr><td>Jan 03, 2007</td> + <td>0.2.2</td><td>Add ECL support and a small SBCL bugfix.</td></tr> +<tr><td>Dec 21, 2006</td> + <td>0.2.1</td><td>Remove 'open-stream' interface which is supposed + to be provided by the 'trivial-usocket' package.</td></tr> +<tr><td>Dec 18, 2006</td> + <td>0.2.0</td><td>Add support for + <a href="http://www.scieneer.com/scl/index.html">Scieneer + Common Lisp</a>, fix <a + href="http://trac.common-lisp.net/usocket/ticket/6%22%3Eissue #6</a> and + API preparation for server side sockets (not in this release)</td></tr> +<tr><td>Feb 13, 2006</td> +<td>0.1.0</td><td>Initial release</td></tr> +</table> + + + + +<h2><a name="history">Project history</a></h2> + +<p>Long ago the project was conceived and started by Erik Enge in an +attempt to factor out all implementation specific sockets code from +<a href="/project/cl-irc">cl-irc</a>. This 'long ago' must have been +way before 2003 when I entered the cl-irc project.</p> + +<p>In january 2006, Erik Huelsmann found Erik Enge willing to donate +the code he had still laying around to restart the project. The restart +took place at the 27th of january when the old code was imported into the +public repository.</p> + +<hr /> + +<div style="float:left;font-size:x-small;font-weight:bold"> +Back to <a href="http://common-lisp.net/">Common-lisp.net</a>. +</div> + <div class="check" style="float:right"> + <a href="http://validator.w3.org/check/referer">Valid XHTML 1.0 Strict</a> + </div> +</body> +</html>