Contents

    1  Introduction

    2  Basic mode of operation

    3  Using the compiler
        3.1  Command line format
        3.2  Runtime options
        3.3  An example
        3.4  Extending the compiler
        3.5  Distributing compiled C files

    4  Using the interpreter
        4.1  Command line format
        4.2  Writing Scheme scripts
        4.3  Toplevel commands
        4.4  Macros and procedures implemented in the interpreter

    5  Supported language
        5.1  Deviations from the standard
        5.2  Extensions to the standard
        5.3  Non standard read syntax
        5.4  Non-standard macros and special forms
            5.4.1  Binding forms for optional arguments
            5.4.2  Other binding forms
            5.4.3  Substitution forms and macros
            5.4.4  Conditional forms
            5.4.5  Record structures
            5.4.6  Other forms
        5.5  Declarations
        5.6  Interface to external functions and variables
            5.6.1  Accessing external objects
            5.6.2  Foreign type specifiers
            5.6.3  Entry points
            5.6.4  Callbacks
            5.6.5  Locations
            5.6.6  C interface
        5.7  Parameters
        5.8  Unit: library
            5.8.1  Arithmetic
            5.8.2  Input/Output
            5.8.3  Files
            5.8.4  String ports
            5.8.5  Feature identifiers
            5.8.6  Keywords
            5.8.7  Exceptions
            5.8.8  Miscellaneous
        5.9  Unit: eval
            5.9.1  Loading code
            5.9.2  Read-eval-print loop
            5.9.3  Macros
            5.9.4  Extensions
            5.9.5  Miscellaneous
        5.10  Unit: extras
            5.10.1  Lists
            5.10.2  String-port extensions
            5.10.3  Formatted output
            5.10.4  Hash tables
            5.10.5  Queues
            5.10.6  Sorting
            5.10.7  Random numbers
            5.10.8  Input/Output extensions
            5.10.9  Strings
            5.10.10  Combinators
            5.10.11  Miscellaneous
        5.11  Unit: srfi-1
        5.12  Unit: srfi-4
        5.13  Unit: srfi-13
        5.14  Unit: srfi-14
        5.15  Unit: srfi-25
        5.16  Unit: match
        5.17  Unit: regex
        5.18  Unit: syntax-case
        5.19  Unit: srfi-18
        5.20  Unit: format
        5.21  Unit: posix
            5.21.1  Directories
            5.21.2  Pipes
            5.21.3  Fifos
            5.21.4  File descriptors and low-level I/O
            5.21.5  Retrieving file attributes
            5.21.6  Changing file attributes
            5.21.7  Processes
            5.21.8  Symbolic links
            5.21.9  Permissions, owners, users and groups
            5.21.10  Record locking
            5.21.11  Signal handling
            5.21.12  Environment access
            5.21.13  Memory mapped I/O
            5.21.14  Time routines
            5.21.15  Miscellaneous routines
            5.21.16  How Scheme procedures relate to UNIX C functions
        5.22  Unit: script-utils
            5.22.1  Pathname operations
            5.22.2  Miscellaneous utilities
        5.23  Unit: tcp
        5.24  Unit: srfi-37
        5.25  Unit: lolevel
            5.25.1  Foreign pointers
            5.25.2  Extending procedures with data
            5.25.3  Bytevectors
            5.25.4  Data in unmanaged memory
            5.25.5  Locatives
            5.25.6  Accessing toplevel variables
            5.25.7  Miscellaneous routines
        5.26  Unit: tinyclos
            5.26.1  Defining forms
            5.26.2  Base language
            5.26.3  Introspection
            5.26.4  Intercessory protocol
            5.26.5  Additional protocol
            5.26.6  Utility procedures
            5.26.7  Builtin classes

    6  Extensions and csi -setup
        6.1  setup scripts
        6.2  An Example
        6.3  Notes

    7  Additional files
            7.0.1  srfi-13-syntax.scm
            7.0.2  test-infrastructure.scm
                7.0.2.1  The Test Package Macro API
                7.0.2.2  The Test Case Macro API
                7.0.2.3  The Expectation Macro API
                7.0.2.4  Result Object API
                7.0.2.5  Test Package Result Object API
                7.0.2.6  Test Case Result Object API
                7.0.2.7  Expect Result Object API: Single Clause Style Expectation
                7.0.2.8  Expect Result Object API: Equivalence Style Expectation
                7.0.2.9  Expect Result Object API: Tolerance Style Expectation
                7.0.2.10  Various Helper API
                7.0.2.11  Termination API
                7.0.2.12  Destructor Object API
                7.0.2.13  Todo API
                7.0.2.14  Gloss API
                7.0.2.15  Skip API
                7.0.2.16  Side Effect API
                7.0.2.17  Miscellaneous API
                7.0.2.18  Analysis of the Result Tree
                7.0.2.19  Output Generation API
                7.0.2.20  Example Usages of the Test Suite Infrastructure

    8  Data Representation

    9  Bugs and limitations

    10  Acknowledgements

    Bibliography

    Index