SISC for Seasoned Schemers

Scott G. Miller

Matthias Radestock

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". (Appendix D, GNU Free Documentation License)


Table of Contents

1. Introduction
Features
About this document
About procedure documentation
Where to obtain this document
Version Applicability
2. Installation and Invocation
Required Environment
The Read-Eval-Print-Loop
Display Conventions
Running SISC
Command-line Switches
Configuration Parameters
Running Scheme Programs
Loading
Scheme Shell Scripts
3. Scheme Language
Types
Numbers
Characters
Symbols
Strings
Pairs and Lists
Vectors
Boxes
Parameters
Immutable types
Equivalence
Syntax and Lexical Structure
Comments
Shared Structures
Control Features
Syntactic Extension
Errors and Error Handling
Failure Continuations
Error Records
Examples
dynamic-wind
Symbolic Environments and Property Maps
Access Functions
Obtaining and Naming
Miscellaneous Functions
4. Debugging Facilities
Passive Debugging
Active Debugging
Runtime Tracing
Breakpoints
5. I/O
Ports
URLs
Buffered I/O
Character Ports
String Ports
Binary Ports and Block IO
Serialization
Networking
IP Addressing
Socket Operations
TCP
UDP
Multicast UDP
Miscellaneous
Pretty-Printing
Source Loading
Location Tracking
Locating Resources
File Manipulation
Class Loading
6. Threads and Concurrency
Scheme Thread Semantics
Basic Thread Operations
High-level Functions
Thread Scheduling
Synchronization Primitives
Mutex Operations
Condition Variable Operations
High-level Concurrency
7. Types and Objects
Type System
Core Procedures and Predicates
Derived Procedures and Predicates
Hooks
Standard Types
Generic Procedures
Defining Generic Procedures
Defining Methods
Invoking Generic Procedures
Procedures on Methods
Miscellaneous
Object System
Classes
Slots
Instantiation
Inheritance
8. Java Interaction
Java-to-Scheme Interface
Calling Scheme From Java
Miscellaneous Features
High Level Scheme-to-Java Interface
Classes
Methods
Fields
Instances
Arrays
Proxies
Types and Conversions
Multi-threading
Exception Handling
Access Permissions
Common Usage
Java Reflection Interface
Classes
Constructors
Methods
Fields
Arrays
Proxies
9. Additional Libraries
Optional SISC Libraries
Bitwise Logical Operations
Records
Hash Tables
Binary Buffers
Procedure Properties
Loadable Scheme Libraries
Operating System Interface
Third-Party Libraries
SRFIs
SLIB
Creating Libraries
10. Modules and Extensibility
Modules
Extensibility
Adding Types
Adding Native Bindings
Serialization
A. Errata
B. R5RS Liberties and Violations
C. Backend Details
Limits
Datastructure Limits
Symbol Uniqueness
Performance and Efficiency considerations
Math
Strings
Interrupts
D. GNU Free Documentation License
0. PREAMBLE
1. APPLICABILITY AND DEFINITIONS
2. VERBATIM COPYING
3. COPYING IN QUANTITY
4. MODIFICATIONS
5. COMBINING DOCUMENTS
6. COLLECTIONS OF DOCUMENTS
7. AGGREGATION WITH INDEPENDENT WORKS
8. TRANSLATION
9. TERMINATION
10. FUTURE REVISIONS OF THIS LICENSE
How to use this License for your documents
Index

List of Tables

2.1. SISC Commandline Switches
3.1. Named character literals
3.2. String escape codes
8.1. Common S2J Usage
C.1. SISC Limits

List of Examples

3.1. Case sensitive Symbol literals
3.2. Circular Structures
3.3. Return a new value
3.4. Restart with a different value
3.5. Propagate the error
3.6. Propagate a different error with the same error continuation
3.7. Raise a new error
3.8. Errors and dynamic-wind
7.1. Hook Installation