Skip to content

Latest commit

 

History

History

scheme

		      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: