File: README

package info (click to toggle)
gambc 4.9.3-1.4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 85,424 kB
  • sloc: ansic: 1,047,649; lisp: 243,942; perl: 19,018; sh: 6,385; makefile: 6,303; objc: 3,757; cpp: 2,143; sed: 498; java: 305; awk: 198
file content (92 lines) | stat: -rw-r--r-- 3,636 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
                      README file for Gambit
                      ======================

Quick-install instructions for a typical installation
-----------------------------------------------------

    git clone https://github.com/gambit/gambit.git
    cd gambit
    ./configure
    make -j8
    make check
    make doc
    sudo make install

Detailed installation instructions are given in the file "INSTALL.txt".


General information
-------------------

Gambit includes a Scheme interpreter and a Scheme compiler which can
be used to build standalone executables.  Because the compiler
generates portable C code it is fairly easy to port to any platform
with a decent C compiler.

The Gambit system conforms to the R4RS, R5RS and IEEE Scheme standards.
The full numeric tower is implemented, including: infinite precision
integers (bignums), rationals, inexact reals (floating point numbers),
and complex numbers.  Gambit supports a number of extensions to the
standards including:

 - an optimizing compiler
   - with several powerful transformations (automatic function inlining,
     speculative inlining of primitives, partial evaluation, etc)
   - that generates properly tail-recursive portable C code
 - a scalable thread system that can handle millions of concurrent threads
 - an I/O system fully integrated with the thread system that supports
   - regular files
   - ttys (terminals and serial ports)
   - sockets (client and server, with TCP or UDP)
   - directories
   - processes
   - pipes
 - an infix syntax extension (SIX) that allows mixing code in the
   standard prefix syntax with code in a C-like syntax
 - the following SRFIs:
    - SRFI 0 (Feature-based conditional expansion construct)
    - SRFI 4 (Homogeneous numeric vector datatypes)
    - SRFI 6 (Basic String Ports)
    - SRFI 8 (RECEIVE: Binding to multiple values)
    - SRFI 9 (Defining Record Types)
    - SRFI 18 (Multithreading support)
    - SRFI 21 (Real-time multithreading support)
    - SRFI 22 (Running Scheme Scripts on Unix)
    - SRFI 23 (Error reporting mechanism)
    - SRFI 27 (Sources of Random Bits)
    - SRFI 39 (Parameter objects)
 - a REPL/debugger with
    - a continuation inspection facility (i.e. "backtrace")
    - a single-stepping mode
    - error messages with location of error (file, line, and column number)
    - emacs compatible line-editing with history
 - very efficient bignum implementation
 - a foreign function interface for C
 - a memory management system that grows and shrinks the heap based on
   the program's needs
 - a linker that builds standalone executables and shared libraries
 - dynamic loading of compiled modules and libraries (supported on many
   platforms)
 - Unicode support for characters, strings, I/O and source code
 - object finalization
 - pretty printing
 - keyword objects
 - optional and keyword parameters (with the syntax and semantics of DSSSL)
 - configurable reader with control over case sensitivity
 - write/read invariance of symbols, e.g. (string->symbol "B;123") => |B;123|
 - write/read invariance of floating point numbers
 - unhygienic macros
 - and many other things!

The user manual for the Gambit system is available in PDF format
(the file "doc/gambit.pdf"), in HTML format (the file
"doc/gambit.html"), in text format (the file "doc/gambit.txt") and
in "info" format (the files "doc/gambit.info*").

The Gambit mailing list (gambit-list@iro.umontreal.ca) is a good
place to ask questions about Gambit.

The latest official release of the system and other helpful documents
related to Gambit can be obtained from the Gambit wiki at:

  http://gambitscheme.org