Abstract
This is the home page of Nausicaa, a collection of libraries for R6RS Scheme. Currently, it attempts to support the Scheme implementations: Ikarus, Larceny, Mosh and Ypsilon; the foreign-functions interface officially does not support Larceny Scheme.
Some of the libraries in Nausicaa are the work of Marco Maggi. Several of the libraries were gathered from the Internet and packaged in the Nausicaa infrastructure; these are the work of many authors.
The collection is organised in packages, each distributed as a separate archive. All the packages depend on the main one, Nausicaa/Scheme. See below for the list of packages released so far.
Introduction
Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language, invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions.
The Revised6 Report on the Algorithmic Language Scheme gives a defining description of the programming language Scheme. The report is the work of many people in the course of many years. Revision 6 was edited by Michael Sperber, R. Kent Dybvig, Matthew Flatt and Anton Van Straaten.
Ikarus Scheme is an almost R6RS compliant implementation of the Scheme programming language. It is the creation of Abdulaziz Ghuloum.
Larceny Scheme is an also R6RS compliant implementation of the Scheme programming language. It is the creation of William D. Clinger, Lars T Hansen and Lightship Software, Incorporated, with contributions by other people.
Mosh Scheme is an R6RS compliant implementation of the Scheme programming language. It is the creation of Higepon, kokosabu, herumi and .mjt.
Ypsilon Scheme is an R6RS compliant implementation of the Scheme programming language. It is the creation of Yoshikatsu Fujita at LittleWing Company.
Prerequisites
The Nausicaa installation infrastructure supports only GNU systems. This means Unix like systems in which the following common tools and packages are installed: GNU Bash, GNU Make, GNU Coreutils, GNU Find, GNU tar, Gzip, Bzip2. The interfaces to foreign C language libraries are tested only with the GNU C library and the GNU C compiler.
Several libraries depend upon the port to R6RS of the Scheme Requests For Implementation (SRFI); Nausicaa includes a port of them to R6RS compliant Scheme implementations. The original SRFI code is the work of many authors, reference of which you can find the at the top of the source code files; the port to R6RS is the work of Derick Eddington.
Almost all the libraries depend upon the Nausicaa/Scheme libraries, which is the core project of the Nausicaa distribution. It is the one under the scheme directory of the source tree.
License
Each project in this distribution has its own license notice and copyright assignment. You must look in the individual directories for the COPYING file, and occasionally at the top of each file, where there is a specific license notice and copyright assignment. Additionally the CREDITS file lists the contributors.
Only Libre Software libraries are included. Used licenses are the GNU General Public License, the GNU Lesser General Public License, the BSD license, the BSD-like licenses, the GNU Free Documentation License.
Download
The full distribution can be downloaded as a single archive directly from the GitHub project page; this is a checkout of the latest revision of a branch. To follow the development, you should download the latest revision of the master branch.
All the package archives can be downloaded from the download page. There are two kinds of archives, the full source ones and the pure Scheme ones. A full source package contains the Scheme libraries and the documentation in Texinfo format; the installation infrastructure requires the GNU command line tools available in every installation of the GNU+Linux systems. GNU+Linux systems are the only platform supported so far. A pure Scheme package contains only the Scheme libraries and it is ready to be unpacked in the installation destination.
The documentation of every released package is available online; see below for package-specific informations.
Nausicaa/Scheme
This is the core package. It includes pure Scheme foundation libraries along with the foreign-functions interface. The documentation is available online.
Nausicaa/POSIX
Nausicaa/POSIX exports bindings to the foreign functions of the standard C library, both the POSIX one and the GNU extensions. The documentation is available online.
Nausicaa/MP
Nausicaa/MP implements bindings to the GMP, MPFR, MPFI MPC, and MPFRCX libraries for multiple precision integers and floating-point numbers. It is based on the Nausicaa/Scheme package. The documentation is available online.
GMP stands for GNU Multiple Precision arithmetic library. MPFR stands for Multiple Precision Floating-Point Reliable library. MPFI stands for Multiple Precision Floating-Point Interval library. MPC stands for Multiple Precision Complex library. MPFRCX stands for Multiple Precision Real and Complex Polynomial library.
Nausicaa/Zlib
Nausicaa/Zlib is a binding to Zlib, the popular compression library. The documentation is available online.
Nausicaa/Cairo
Nausicaa/Cairo is a binding to the Cairo 2D graphics library. The documentation is available online.
Nausicaa/UUID
Nausicaa/UUID is a binding to the OSSP UUID library, an ISO-C:1999 API for the generation of DCE 1.1, ISO/IEC 11578:1996 and IETF RFC 4122 compliant Universally Unique Identifier (UUID). The documentation is available online.
Nausicaa/SQLite
Nausicaa/SQLite is a binding to SQLite, a SQL database engine. The documentation is available online.
Bugs
If you feel the need to report a bug you can use the issue tracker at the GitHub project page.
Credits
The Nausicaa distribution and installation infrastructure is the creation of Marco Maggi. If this work exists, it is because of the GNU Software tools that he uses all the time. For other credits notes look in the individual, project specific, README files.
