scheme
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
Nausicaa/Scheme =============== Topics ------ 1. Introduction 2. License 4. Install 5. Testing A. Credits B. Bug reports C. Resources 1. Introduction --------------- This package distributes a set of Scheme libraries defining an augmented R6RS Scheme language and implementing miscellaneous core features for a Scheme system. Currently it attempts to support Mosh, Petite Chez (no FFI), Racket (no FFI), Vicare and Ypsilon. For a general introduction of the Nausicaa distribution see the file "README.nausicaa". 2. License ---------- Each file has its own copyright notice at the top, refer to it. See also the CREDITS file. Copyright (c) 2008-2011 Marco Maggi <marco.maggi-ipsu@poste.it> This program 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 3 of the License, or (at your option) any later version. This program 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. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. 4. Install ---------- After unpacking the source distribution archive, basically we should do: $ cd nausicaa-0.2a2 $ mkdir "=build" $ cd "=build" $ ../configure [options] $ make $ make install notice that, by default, only support for Vicare Scheme is turned on; to enable support for a Scheme implementation we must use the following options for the "configure" script: --enable-mosh enables Mosh Scheme --enable-petite enables Petite Scheme --enable-racket enables Racket --enable-vicare enables Vicare Scheme --enable-ypsilon enables Ypsilon Scheme to disable support for a Scheme implementation we must use the following options: --disable-mosh disables Mosh Scheme --disable-petite disables Petite Scheme --disable-racket disables Racket --disable-vicare disables Vicare Scheme --disable-ypsilon disables Ypsilon Scheme we have to remember that Petite Scheme does *not* support the full foreign-functions interface. To test what a rule will do use the "-n" option; example: $ make install -n The "Makefile" supports the "DESTDIR" environment variable to install the files under a temporary location; example: $ make install DESTDIR=/tmp/marco/nausicaa The "Makefile" supports the packages infrastructure described in the Nausicaa documentation. Refer to it to build binary distribution archives. 4.1 Special make rules ---------------------- There are special makefile rules to rebuild source code files, mostly lexer and parser tables: silex - rebuild the tests for the (silex) lexer lalr - rebuild the tests for the (lalr) parser csv - rebuild the tables for the (csv) library infix - rebuild the tables for the (infix) library email - rebuild the tables for the email libraries json - rebuild the tables for the json libraries net - rebuild the tables for the net libraries r6rs-lexer - rebuild the tables for the R6RS lexer and parser xml-lexer - rebuild the tables for the XML lexer and parser The special makefile rule "libdist" will create a source libraries only archive under the "$(builddir)/libdist.d" directory. The following rules compile a subset of the libraries in the build directory; they exist to ease development. rfasl-lang - Compile the libraries of the Nausicaa language with Racket. rfasl-basic - Compile the basic libraries with Racket. rfasl-high - Compile the high level libraries with Racket. mfasl-lang - Compile the libraries of the Nausicaa language with Mosh. mfasl-basic - Compile the basic libraries with Mosh. mfasl-high - Compile the high level libraries with Mosh. 5. Testing ---------- Running: $ make test will evaluate the test suite for all the installed libraries. Test file names match the shell pattern "test-*.sps", where the star matches a "stem"; to select a specific test file we can set the environment variable "name" to a substring in the stem; examples: # select test-char-set.sps $ make test file=char-set # select test-lists.sps $ make test file=lists # select test-cond-expand.sps $ make test file=cond Each test has a name; to select a specific test or section of tests, we can set the environment variable "name" to a substring of the name; example: $ make test file=char-set name=create As a special case, the file "test-ffi-core.sps", which tests some features of the foreign-functions interface, requires the "ffitest" module of the Nausicaa/Stubs package to be installed. A set of tests to assess compatibility of Scheme implementations with the R6RS standard is included. To run them: $ make test-mosh-compat $ make test-petite-compat $ make test-racket-compat $ make test-vicare-compat $ make test-ypsilon-compat to run them all: $ make test-compat beware that the execution of these tests may take minutes. After the installation has been completed, it is possible to run the test suite against the installed libraries using the following makefile rules: mtest-installed - run test for Mosh ptest-installed - run test for Petite Chez Scheme rtest-installed - run test for Racket vtest-installed - run test for Vicare ytest-installed - run test for Ypsilon A. Credits ---------- The stuff was assembled and partly written by Marco Maggi; see the "CREDITS" file for a detailed list of authors and maintainers. 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 SRFI implementations are a based on the development version at Launchpad (see Resources) by Derick Eddington (https://launchpad.net/~derick-eddington). Upon inclusion into Nausicaa further modifications where done to the SRFI code. The "tests/r6rs" subdirectory holds R6RS compatibility tests gathered from the PLT Scheme repository (Thu Jan 1, 2009). It is supposed that the author of those tests is Matthew Flatt. B. Bug reports -------------- Bug reports are appreciated, register them using the issue tracker at Nausicaa's GitHub site. C. Resources ------------ The latest version of this package can be downloaded from: <http://github.com/marcomaggi/nausicaa/downloads> the home page of the Nausicaa project is at: <http://marcomaggi.github.com/nausicaa.html> development takes place at: <http://github.com/marcomaggi/nausicaa/tree/master> ### end of file # Local Variables: # mode: text # fill-column: 60 # paragraph-start: "*" # End: