README

November 29, 2025 · View on GitHub

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

How to build unreleased version

gitclonerecursivehttps://github.com/uim/sigscheme.gitgit clone --recursive https://github.com/uim/sigscheme.git cd sigscheme ./setup.sh./setup.sh ./autogen.sh ./configureenablemaintainermode<YOURBUILDOPTIONS>./configure --enable-maintainer-mode <YOUR_BUILD_OPTIONS> make -j$(nproc)

Acknowledgements

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