Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
C Scheme Puppet Perl Shell C++ Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
README file for Gambit-C ======================== Quick-install instructions for a typical installation ----------------------------------------------------- git clone https://github.com/feeley/gambit.git cd gambit ./configure --enable-single-host make bootstrap make bootclean make make check sudo make install Detailed installation instructions are given in the file "INSTALL.txt". General information ------------------- Gambit-C 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-C 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-C 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-C system is available in PDF format (the file "doc/gambit-c.pdf"), in HTML format (the file "doc/gambit-c.html"), in text format (the file "doc/gambit-c.txt") and in "info" format (the files "doc/gambit-c.info*"). The Gambit mailing list (firstname.lastname@example.org) 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://gambit.iro.umontreal.ca