Skip to content

uim/sigscheme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ccf1f92 · Aug 24, 2020
Aug 24, 2020
Apr 2, 2006
Aug 24, 2020
Feb 26, 2012
Feb 13, 2008
Dec 12, 2006
Apr 6, 2008
Aug 22, 2020
Aug 24, 2020
Aug 22, 2020
Mar 10, 2010
Dec 16, 2018
Mar 28, 2020
Aug 24, 2020
Oct 6, 2012
Dec 11, 2006
Feb 13, 2008
Aug 24, 2020
Aug 24, 2020
Sep 12, 2007
Oct 6, 2012
May 9, 2018
Aug 9, 2007
May 9, 2018
Jul 17, 2005
Aug 24, 2020
Aug 24, 2020
Aug 24, 2020
Dec 27, 2006
Feb 26, 2012
Jan 6, 2007
Jul 13, 2007
Jul 13, 2007
Aug 6, 2007
Jun 15, 2007
Aug 31, 2007

Repository files navigation

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/)