/sigscheme

A R5RS Scheme interpreter for embedded use

Primary LanguageSchemeOtherNOASSERTION

What's SigScheme
----------------

SigScheme is a R5RS Scheme interpreter for embedded use.

  Homepage:
    http://code.google.com/p/sigscheme/

  Git repository:
    git clone https://github.com/uim/sigscheme.git


See following files for further information.

  - doc/spec.txt: specifications of SigScheme
  - QALog:        quality assurance state

Please report us if you find a problem. And if you have a time, run
'make-report.sh' and send us the result regardless of PASSed or FAILed. It
greatly helps the development, especially for non-PC platforms.

Mailinglist: sigscheme-ja@googlegroups.com


Features
--------

- Conforms to R5RS basically (not fully)
- R5RS hygienic macros (experimental)
- Supports Following SRFIs
  - SRFI-0  : Feature-based conditional expansion construct
  - SRFI-1  : List Library
  - SRFI-2  : AND-LET*: an AND with local bindings, a guarded LET* special form
  - SRFI-6  : Basic String Ports
  - SRFI-8  : receive: Binding to multiple values
  - SRFI-9  : Defining Record Types
  - SRFI-22 : Running Scheme Scripts on Unix (partial)
  - SRFI-23 : Error Reporting Mechanism
  - SRFI-28 : Basic Format Strings
  - SRFI-34 : Exception Handling for Programs
  - SRFI-38 : External Representation for Data with Shared Structure (partial)
  - SRFI-43 : Vector library
  - SRFI-48 : Intermediate Format Strings
  - SRFI-55 : require-extension
  - SRFI-60 : Integer as Bits (partial)
  - SRFI-69 : Basic hash tables
  - SRFI-95 : Sorting and Merging
- R6RS: R6RS characters (partial and preliminary)
- Multibyte character encodings support
- define-macro
- let-optionals* for optional argument processing
- Partial SIOD compatibility

See doc/spec.txt and doc/design.txt for furtuer information.


How to build
------------

GNU make is requied to build.

Run ./configure with some options at the top directory.

  $ ./configure [--enable-conf=CONF] [--enable-default-encoding=ENCODING]

(1) --enable-conf=CONF

  This specifies a base configuration set. Select one from the list below
  suitable for your purpose.

    - full:    compile with full features but broken ones
    - regular: (default) compile with typically needed features
    - small:   compile with primary features only
    - r5rs:    compile with strict R5RS conformances
    - siod:    emulate some SIOD features and bugs
    - dev:     developer-friendly configuration
    - uim:     configure for uim

(2) --enable-default-encoding=ENCODING

  SigScheme normally selects UTF-8 as default encoding. You can change it by
  this option as follows.

    $ ./configure --enable-default-encoding=eucjp

  Following encodings can be specified.

    - utf8
    - euccn
    - eucjp
    - euckr
    - sjis

(3) --enable-ENCODING

  In addition to (2), you can enable other optional and switchable character
  encodings.

    $ ./configure --enable-default-encoding=eucjp --enable-eucjp --enable-sjis


Then type 'make' at the top directory.

  $ make


Test
----

  $ make check


Installation
------------

  $ make install


How to use
----------

To run SigScheme in interactive mode, type as follows.

  $ sscm

To execute a Scheme script, specify it as argument.

  $ sscm <filename>


Acknowledgements
----------------

Some parts of this software had been funded by IPA (http://www.ipa.go.jp/)