Added random-source-make-f64vectors and Ãrandom-f64vecto (contributed by Brad Lucier).
[gambit-c.git] / README
blobae2986751fdfdee5eddc221bcd1f0c35419178ca
1                       README file for Gambit-C
2                       ========================
4               [Time-stamp: <2007-09-12 11:54:59 feeley>]
6 This directory contains a release of the Gambit-C Scheme programming
7 system (see the file configure.ac for the version number).  Gambit-C
8 includes a Scheme interpreter and a Scheme compiler which can be used
9 to build standalone executables.  Because the compiler generates
10 portable C code it is fairly easy to port to any platform with a
11 decent C compiler.
13 The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme standards.
14 The full numeric tower is implemented, including: infinite precision
15 integers (bignums), rationals, inexact reals (floating point numbers),
16 and complex numbers.  Gambit-C supports a number of extensions to the
17 standards including:
19  - an optimizing compiler
20    - with several powerful transformations (automatic function inlining,
21      partial evaluation, etc)
22    - that generates properly tail-recursive portable C code
23  - a scalable thread system that can handle millions of concurrent threads
24  - an I/O system fully integrated with the thread system that supports
25    - regular files
26    - ttys (terminals and serial ports)
27    - sockets (client and server, with TCP or UDP)
28    - directories
29    - processes
30    - pipes
31  - an infix syntax extension (SIX) that allows mixing code in the
32    standard prefix syntax with code in a C-like syntax
33  - the following SRFIs:
34     - SRFI 0 (Feature-based conditional expansion construct)
35     - SRFI 4 (Homogeneous numeric vector datatypes)
36     - SRFI 6 (Basic String Ports)
37     - SRFI 8 (RECEIVE: Binding to multiple values)
38     - SRFI 9 (Defining Record Types)
39     - SRFI 18 (Multithreading support)
40     - SRFI 21 (Real-time multithreading support)
41     - SRFI 22 (Running Scheme Scripts on Unix)
42     - SRFI 23 (Error reporting mechanism)
43     - SRFI 27 (Sources of Random Bits)
44     - SRFI 39 (Parameter objects)
45  - a REPL/debugger with
46     - a continuation inspection facility (i.e. "backtrace")
47     - a single-stepping mode
48     - error messages with location of error (file, line, and column number)
49     - emacs compatible line-editing with history
50  - very efficient bignum implementation
51  - a foreign function interface for C
52  - a memory management system that grows and shrinks the heap based on
53    the program's needs
54  - a linker that builds standalone executables and shared libraries
55  - dynamic loading of compiled modules and libraries (supported on many
56    platforms)
57  - Unicode support for characters, strings, I/O and source code
58  - object finalization
59  - pretty printing
60  - keyword objects
61  - optional and keyword parameters (with the syntax and semantics of DSSSL)
62  - configurable reader with control over case sensitivity
63  - write/read invariance of symbols, e.g. (string->symbol "B;123") => |B;123|
64  - write/read invariance of floating point numbers
65  - unhygienic macros
66  - and many other things!
68 The user manual for the Gambit-C system is available in PDF format
69 (the file "doc/gambit-c.pdf"), in HTML format (the file
70 "doc/gambit-c.html"), in text format (the file "doc/gambit-c.txt") and
71 in "info" format (the files "doc/gambit-c.info*").
73 Installation instructions are given in the file "INSTALL.txt".
75 If you have any questions concerning Gambit-C please address them to:
77   gambit@iro.umontreal.ca
79 The latest official release of the system and other helpful documents
80 related to Gambit can be obtained from the Gambit web page at:
82   http://www.iro.umontreal.ca/~gambit