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.
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.
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.
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:
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: 931202.tar.gz updated following proposals and discussions also released by Julian Padget:
- Online definition
EuXLisp started life as Euscheme based on xscheme written by David Michael Betz and released under the 3-clause BSD licence, see http://henry.github.com/EuLisp/EuXLisp/ORIGINAL_LICENCE. 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 COPYING.
This release of Youtoo started life as Youtoo-0.93 developed by Andreas Kind, Julian Padget and others. More details are available from the original README file and the youtoo home page. The b2h and i2doc tools needed to bootstrap youtoo were reverse engineered and provided by T. Kurt Bond.
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).
is provided in both HTML and PDF formats:
are in the folowing proposal document and discussed in the minutes of the meeting on 19/11/93 and in the preceding and subsequent Email correspondence. The following reports are discussed in the above:
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.
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.
The system reuses ideas from the Oaklisp system written by Barak Pearlmutter
and Kevin Lang. The meta-object protocol (
Telos) was originally
implemented in Common Lisp by Russell Bradford. By default, a garbage
collector written by Hans Boehm and Alan Demers is used.
See also Youtoo README
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.
See also Eu2C README
All three EuLisp implementations require a C-compiler, in particular
on most platforms. It is likely that a suitable
gcc is already
installed, if not install the development package which includes it.
EuXLisp and Eu2C include their own garbage collectors bu Youtoo uses the Boehm-Demers garbage collector which must be installed before compilation:
- On SuSE:
sudo zypper install gc-devel.
- On Ubuntu:
sudo apt-get install libgc-dev.
- On RedHat…: install the appropriate package.
- From sources: download
and unpack, configure, make and install in
Eu2C bootstraps from Common Lisp and currently requires a recent version of CMUCL which may be obtained from http://www.cons.org/cmucl/download.html. SBCL support is expected in the future.
Pull the latest version from the GitHub repository:
git clone git://github.com/Henry/EuLisp.git
- Configure for the default architecture
- Check the settings and edit the configure file to reflect your system if necessary and re-run
- To configure for a specified architecture,
e.g. to configure for a 32bit build on a
- Build EuXLisp, Youtoo and Eu2C for the default architecture
- Build EuXLisp, Youtoo and Eu2C for a specified architecture
e.g. to build 32bit on a
- Alternatively you can build
eu2cby specifying the target and optionally the target architecture e.g.:
- For more details and more options for building Youtoo see README.
- For more details and more options for building Eu2C see README.
- Run the
- Run the
- Run the