Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

497 lines (468 sloc) 15.711 kB
<?xml version="1.0" encoding="iso-8859-1"?>
<!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"
lang="en" xml:lang="en">
<head>
<title><b>EuLisp</b></title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<meta name="generator" content="Org-mode"/>
<meta name="generated" content="2011-02-08 19:09:13 GMT"/>
<meta name="author" content="nil"/>
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
html { font-family: Times, serif; font-size: 12pt; }
.title { text-align: center; }
.todo { color: red; }
.done { color: green; }
.tag { background-color: #add8e6; font-weight:normal }
.target { }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
p.verse { margin-left: 3% }
pre {
border: 1pt solid #AEBDCC;
background-color: #F3F5F7;
padding: 5pt;
font-family: courier, monospace;
font-size: 90%;
overflow:auto;
}
table { border-collapse: collapse; }
td, th { vertical-align: top; }
dt { font-weight: bold; }
div.figure { padding: 0.5em; }
div.figure p { text-align: center; }
.linenr { font-size:smaller }
.code-highlighted {background-color:#ffff00;}
.org-info-js_info-navigation { border-style:none; }
#org-info-js_console-label { font-size:10px; font-weight:bold;
white-space:nowrap; }
.org-info-js_search-highlight {background-color:#ffff00; color:#000000;
font-weight:bold; }
/*]]>*/-->
</style>
<script type="text/javascript">
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div id="content">
<h1 class="title"><b>EuLisp</b></h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">1 Copyright </a></li>
<li><a href="#sec-2">2 Aim </a></li>
<li><a href="#sec-3">3 Original Sources </a></li>
<li><a href="#sec-4">4 General Description </a></li>
<li><a href="#sec-5">5 Installation of EuXLisp, Youtoo and Eu2C </a></li>
<li><a href="#sec-6">6 Getting Started </a></li>
<li><a href="#sec-7">7 To Do </a></li>
</ul>
</div>
</div>
<div id="outline-container-1" class="outline-2">
<h2 id="sec-1"><span class="section-number-2">1</span> <a href="COPYING">Copyright</a> </h2>
<div class="outline-text-2" id="text-1">
<p>EuLisp is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 2 of the License, or (at your option) any later
version.
</p>
<p>
EuLisp is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
</p>
<p>
You should have received a copy of the GNU General Public License along with
EuLisp in the file <a href="COPYING">COPYING</a>. If not, see
<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
</p>
</div>
</div>
<div id="outline-container-2" class="outline-2">
<h2 id="sec-2"><span class="section-number-2">2</span> Aim </h2>
<div class="outline-text-2" id="text-2">
<p>This version of the EuLisp definition and Youtoo, EuXLisp and Eu2C
implementations are being developed in an attempt to reconcile the differences
with the ultimate aim to create a consistent definition and implementations
which are as close to EuLisp-1.0 as is possible to ascertain from the
remaining documents related to the standardisation process.
</p>
</div>
</div>
<div id="outline-container-3" class="outline-2">
<h2 id="sec-3"><span class="section-number-2">3</span> Original Sources </h2>
<div class="outline-text-2" id="text-3">
<p>The starting point for this effort has been the publicly available packs of
sources and documents relating to the development of the EuLisp definition and
implementations:
</p><ul>
<li id="sec-3.1">EuLisp definition <br/>
The version of the EuLisp definition supplied is this release of Youtoo
started life as EuLisp-0.99 from the pack released by Julian Padget:
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/definition/931202.tar.gz">931202.tar.gz</a> updated following proposals and discussions also released by
Julian Padget:
<ul>
<li>
<a href="http://people.bath.ac.uk/masjap/EuLisp/">Online definition</a>
</li>
<li>
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/mail/nov93.gz">nov93.gz</a>
</li>
<li>
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/mail/dec93.gz">dec93.gz</a>
</li>
<li>
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/WG/adv-genarith.ps.gz">adv-genarith.ps.gz</a>
</li>
<li>
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/WG/eulisp-ffi.ps.gz">eulisp-ffi.ps.gz</a>
</li>
<li>
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/WG/eulisp-proposals.ps.gz">eulisp-proposals.ps.gz</a>
</li>
<li>
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/WG/genarith.ps.gz">genarith.ps.gz</a>
</li>
<li>
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/WG/map.ps.gz">map.ps.gz</a>
</li>
<li>
<a href="ftp://ftp.bath.ac.uk/pub/eulisp/WG/stream.ps.gz">stream.ps.gz</a>
</li>
</ul>
</li>
<li id="sec-3.2">EuXLisp <br/>
EuXLisp started life as
<a href="http://www.bath.ac.uk/~masrjb/Sources/euscheme.html">Euscheme</a> based on
xscheme written by David Michael Betz and released under the 3-clause BSD
licence, see <a href="EuXLisp/ORIGINAL_LICENCE">file:EuXLisp/ORIGINAL_LICENCE</a>. However with the inclusion
of the GNU getopt and readline libraries this software inherits the GPL with
which the 3-clause BSD licence is compatible and all further developments
will be made under the terms of the GPL version 2, see
<a href="COPYING">COPYING</a>.
</li>
<li id="sec-3.3">Youtoo <br/>
This release of Youtoo started life as
<a href="http://www.cs.bath.ac.uk/~jap/EuLisp/youtoo/youtoo0.93.tar.gz">Youtoo-0.93</a>
developed by Andreas Kind, Julian Padget and others. More details are
available from the original <a href="Youtoo/README.orig">README</a> file and
<a href="http://www.cs.bath.ac.uk/~jap/ak1/youtoo/">the youtoo home page</a>. The
<i>b2h</i> and <i>i2doc</i> tools needed to bootstrap youtoo were reverse engineered
and provided by
<a href="http://unwind-protect.org/~tkb/software.html#youtoo-and-eulisp-definition">T. Kurt Bond</a>.
</li>
<li id="sec-3.4">Eu2C <br/>
Eu2C was originally developed at Fraunhofer ISST in the joint research
project APPLY funded by the German Ministry of Research and Technology under
the project code ITW9102D5. The final release in July 1994 is publicly
available from
<a href="http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/others/eulisp/eu2c/v94_07/eu2c.tgz">eu2c.tgz</a>
however the terms of use are not specified. This release of Eu2C is derived
from the eu2c-94-07-EUPL version kindly prepared and provided by E. Ulrich
Kriegel and released by Fraunhofer ISST under the
<a href="http://www.osor.eu/eupl/european-union-public-licence-eupl-v.1.1">EUPL version 1.1 </a> (see <a href="Eu2C/README.orig">file:Eu2C/README.orig</a>).
However, due to the inclusion of EuLisp code from Youtoo, which is released
under the GPL version 2, this version of Eu2C inherits the GPL version 2
(see above) as specifically permitted under the compatibility terms of the
EUPL version 1.1. Future versions of the EUPL may include a compatibility
clause for GPL version 3 at which point it will be possible to re-release
Eu2C, Youtoo and EuXLisp under the GPL version 3.
</li>
</ul>
</div>
</div>
<div id="outline-container-4" class="outline-2">
<h2 id="sec-4"><span class="section-number-2">4</span> General Description </h2>
<div class="outline-text-2" id="text-4">
<ul>
<li id="sec-4.1">EuLisp <br/>
EuLisp is a single-valued dialect of Lisp with an integrated object system,
a defined meta-object protocol, modules and a simple light-weight process
mechanism (threads).
<ul>
<li id="sec-4.1.1">Current Definition <br/>
is provided in both HTML and PDF formats:
<ul>
<li>
<a href="Doc/EuLisp-0.991/html/eulisp.html">EuLisp Definition Version 0.991 (HTML)</a>
</li>
<li>
<a href="Doc/EuLisp-0.991/eulisp.pdf">EuLisp Definition Version 0.991 (PDF)</a>
</li>
</ul>
</li>
<li id="sec-4.1.2">EuLisp-1.0 Proposals <br/>
are in the folowing <a href="Doc/EuLisp-0.991/Proposals/Proposals.txt">proposal document</a> and discussed in the minutes of the
<a href="Doc/EuLisp-0.991/Proposals/Meeting_19_11_93.txt">meeting on 19/11/93</a> and in the <a href="Doc/EuLisp-0.991/Proposals/nov93.txt">preceding</a> and <a href="Doc/EuLisp-0.991/Proposals/dec93.txt">subsequent</a> Email
correspondence. The following reports are discussed in the above:
<ul>
<li>
<a href="Doc/EuLisp-0.991/Proposals/Reports/eulisp-proposals.ps">eulisp-proposals.ps</a>
</li>
<li>
<a href="Doc/EuLisp-0.991/Proposals/Reports/genarith.ps">genarith.ps</a>
</li>
<li>
<a href="Doc/EuLisp-0.991/Proposals/Reports/adv-genarith.ps">adv-genarith.ps</a>
</li>
<li>
<a href="Doc/EuLisp-0.991/Proposals/Reports/eulisp-ffi.ps">eulisp-ffi.ps</a>
</li>
</ul>
</li>
</ul>
</li>
<li id="sec-4.2">EuXLisp <br/>
EuXLisp is a simple EuLisp Level-0 interpreter. EuLisp Level-0 is a small
and compact Lisp, but nevertheless has many interesting features, such as
modules, an object system, and multithreading. EuLisp Level-1 has extra
features, the most notable being a full metaobject system which is
implemented in Youtoo not in EuXLisp.
</li>
<li id="sec-4.3">Youtoo <br/>
The Youtoo compiler/interpreter compiles EuLisp Level-1 into C-embedded
virtual machine code which can be statically or dynamically linked with the
virtual machine, the conservative garbage collector, the EuLisp language
library and arbitrary other Lisp and foreign code (C, C++ and
Fortran). Resulting stand-alone executables are portable, interoperable and
efficient (see The Lisp Performance Page). The language implementation is
extended towards a Virtual Multicomputer Architecture. Object serialization
and inter-process communication (Sockets, MPI, Harvest Object Cache) support
the migration of arbitray data and code.
<p>
The system reuses ideas from the Oaklisp system written by Barak Pearlmutter
and Kevin Lang. The meta-object protocol (<code>Telos</code>) was originally
implemented in Common Lisp by Russell Bradford. By default, a garbage
collector written by Hans Boehm and Alan Demers is used.
</p><ul>
<li id="sec-4.3.1">See also <a href="Youtoo/README.html">Youtoo README</a> <br/>
</li>
</ul>
</li>
<li id="sec-4.4">Eu2C <br/>
Eu2C is a EuLisp Level-0 to C compiler originally developed at Fraunhofer
ISST in the joint research project APPLY funded by the German Ministry of
Research and Technology under the project code ITW9102D5.
<ul>
<li id="sec-4.4.1">See also <a href="Eu2C/README.html">Eu2C README</a> <br/>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-5" class="outline-2">
<h2 id="sec-5"><span class="section-number-2">5</span> Installation of EuXLisp, Youtoo and Eu2C </h2>
<div class="outline-text-2" id="text-5">
<ul>
<li id="sec-5.1">Prerequisites <br/>
<ul>
<li id="sec-5.1.1">C Compiler <br/>
All three EuLisp implementations require a C-compiler, in particular <code>gcc</code>
on most platforms. It is likely that a suitable <code>gcc</code> is already
installed, if not install the development package which includes it.
</li>
<li id="sec-5.1.2">Garbage Collector <br/>
EuXLisp and Eu2C include their own garbage collectors bu Youtoo uses the
Boehm-Demers garbage collector which must be installed before compilation:
<ul>
<li>
On SuSE: <code>sudo zypper install gc-devel</code>.
</li>
<li>
On Ubuntu: <code>sudo apt-get install libgc-dev</code>.
</li>
<li>
On RedHat&hellip;: install the appropriate package.
</li>
<li>
From sources: download
<a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2alpha4.tar.gz">http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2alpha4.tar.gz</a>
and unpack, configure, make and install in <code>/usr/local</code>.
</li>
</ul>
</li>
<li id="sec-5.1.3">Common Lisp Compiler <br/>
Eu2C bootstraps from Common Lisp and currently requires a recent version
of CMUCL which may be obtained from
<a href="http://www.cons.org/cmucl/download.html">http://www.cons.org/cmucl/download.html</a>. SBCL support is expected in the
future.
</li>
</ul>
</li>
<li id="sec-5.2">Download <br/>
Pull the latest version from the GitHub repository:
<ul>
<li>
<code>git clone git://github.com/Henry/EuLisp.git</code>
</li>
</ul>
</li>
<li id="sec-5.3">Configuration <br/>
<ul>
<li>
<code>cd</code> into the <code>EuLisp</code> directory
</li>
<li>
Configure for the default architecture
<ul>
<li>
<code>./configure</code>
</li>
<li>
Check the settings and edit the configure file to reflect your system if
necessary and re-run
</li>
<li>
<code>./configure</code>.
</li>
</ul>
</li>
<li>
To configure for a specified architecture,
<ul>
<li>
<code>./configure &lt;arch&gt;</code>
</li>
<li>
<i>e.g.</i> to configure for a 32bit build on a <code>x86_64</code> 64bit machine:
</li>
<li>
<code>./configure i686</code>
</li>
</ul>
</li>
</ul>
</li>
<li id="sec-5.4">Build <br/>
<ul>
<li>
Build EuXLisp, Youtoo and Eu2C for the default architecture
<ul>
<li>
<code>make</code>
</li>
</ul>
</li>
<li>
Build EuXLisp, Youtoo and Eu2C for a specified architecture
<ul>
<li>
<code>make ARCH=&lt;arch&gt;</code>
</li>
<li>
<i>e.g.</i> to build 32bit on a <code>x86_64</code> 64bit machine:
</li>
<li>
<code>make ARCH=i686</code>
</li>
</ul>
</li>
<li>
Alternatively you can build <code>euxlisp</code>, <code>youtoo</code> or <code>eu2c</code> by specifying
the target and optionally the target architecture <i>e.g.</i>:
<ul>
<li>
<code>make euxlisp</code>
</li>
<li>
<code>make youtoo</code>
</li>
<li>
<code>make eu2c</code>
</li>
</ul>
</li>
<li>
For more details and more options for building Youtoo see <a href="Youtoo/README.html">README</a>.
</li>
<li>
For more details and more options for building Eu2C see <a href="Eu2C/README.html">README</a>.
</li>
</ul>
</li>
<li id="sec-5.5">Run <br/>
<ul>
<li>
Run the <code>euxlisp</code> executable
<ul>
<li>
<code>Bin.$ARCH/euxlisp</code>
</li>
</ul>
</li>
<li>
Run the <code>youtoo</code> executable
<ul>
<li>
<code>Bin.$ARCH/youtoo</code>
</li>
</ul>
</li>
<li>
Run the <code>eu2c</code> compiler script
<ul>
<li>
<code>Eu2C/Bin/eu2c</code>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-6" class="outline-2">
<h2 id="sec-6"><span class="section-number-2">6</span> Getting Started </h2>
<div class="outline-text-2" id="text-6">
<ul>
<li>
<a href="Doc/EuLispIntroRef.html#sec-3">EuXLisp</a>
</li>
<li>
<a href="Doc/EuLispIntroRef.html#sec-4">Youtoo</a>
</li>
<li>
<a href="Eu2C/README.html">Eu2C</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-7" class="outline-2">
<h2 id="sec-7"><span class="section-number-2">7</span> <a href="TODO.html">To Do</a> </h2>
<div class="outline-text-2" id="text-7">
</div>
</div>
<div id="postamble">
<p class="date"> Date: 2011-02-08 19:09:13 GMT</p>
<p class="creator">HTML generated by org-mode 6.33x in emacs 23</p>
</div>
</div>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.