Main Page

From Gambit wiki

(Difference between revisions)
Jump to: navigation, search
(updated to v4.3.1)
(Updated for v4.6.7)
(43 intermediate revisions not shown)
Line 6: Line 6:
resources are collected and where users can exchange information related to Gambit.
resources are collected and where users can exchange information related to Gambit.
-
'''Download latest release (v4.3.1):'''
+
'''Download latest release (v4.6.7):'''
-
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.3/source/gambc-v4_3_1-devel.tgz Sources],
+
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/source/gambc-v4_6_7-devel.tgz Development Sources],
-
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.3/prebuilt/gambc-v4_3_1-macosx-universal.dmg Universal Mac OS X installer],
+
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/prebuilt/gambc-v4_6_7-macosx-intel32.dmg Mac OS X installer (for Intel 32)],
-
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.3/prebuilt/gambc-v4_3_1-windows-mingw.exe Windows installer]
+
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],
-
(for other releases see the [[distributions]]).
+
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/prebuilt/gambc-v4_6_7-windows-mingw.exe Windows installer MinGW]
 +
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/prebuilt/gambc-v4_6_7-windows-visualc.exe VC]
 +
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.
==What's Gambit?==
==What's Gambit?==
-
Gambit consists of two main programs: '''gsi''', the Gambit Scheme
+
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.
-
interpreter, and '''gsc''', the Gambit Scheme compiler. The interpreter is designed to provide
+
The interpreter contains the complete execution and debugging environment. The compiler is the interpreter extended with the capability of generating executable files. The compiler can produce standalone executables or compiled modules which can be loaded at run time.  Interpreted code and compiled code can be freely mixed.
-
a nice debugging environment whereas the compiler targets fast execution.
+
-
The compiler can produce standalone executables or compiled modules which
+
-
can be loaded at run time.  Interpreted code and compiled code can be freely mixed.
+
Gambit-C is a version of the Gambit programming system in which the
Gambit-C is a version of the Gambit programming system in which the
Line 25: Line 24:
* '''Conformance.'''  The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme standards and implements all optional features.  Tail calls and first class continuations conform to the Scheme semantics.  The full numeric tower is implemented, including: arbitrary precision integers (bignums), rationals, inexact reals (floating point numbers), and complex numbers.  Several extensions to Scheme are provided, including: lightweight threads, a foreign-function interface (FFI), and extended I/O capabilities (Unicode, networking, subprocesses, ...).
* '''Conformance.'''  The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme standards and implements all optional features.  Tail calls and first class continuations conform to the Scheme semantics.  The full numeric tower is implemented, including: arbitrary precision integers (bignums), rationals, inexact reals (floating point numbers), and complex numbers.  Several extensions to Scheme are provided, including: lightweight threads, a foreign-function interface (FFI), and extended I/O capabilities (Unicode, networking, subprocesses, ...).
* '''Portability.'''  Because the system is mostly written in Scheme and the compiler generates portable C code, it is easy to port the system as well as programs compiled with it to any platform with a decent C or C++ compiler.  There is no reliance on a particular C compiler, although the system can take advantage of some '''gcc'''-specific constructs.  The C code generated is oblivious to the endianness and word size of the target environment (32 and 64 bit architectures are currently supported).
* '''Portability.'''  Because the system is mostly written in Scheme and the compiler generates portable C code, it is easy to port the system as well as programs compiled with it to any platform with a decent C or C++ compiler.  There is no reliance on a particular C compiler, although the system can take advantage of some '''gcc'''-specific constructs.  The C code generated is oblivious to the endianness and word size of the target environment (32 and 64 bit architectures are currently supported).
-
* '''Performance.'''  The compiler includes several powerful program transformations such as user procedure inlining, partial-evaluation, and lambda-lifting.  With appropriate declarations in the source code the executable programs generated by the compiler run roughly as fast as equivalent C programs.  Programs containing no declarations are also optimized without compromising the Scheme semantics by speculatively inlining predefined procedures (see the [[benchmarks]] page for a comparison with other Scheme implementations and other languages).  Thanks to an efficient implementation of continuations, the thread system is very efficient and can support millions of concurrent threads.  The bignum library uses sophisticated algorithms that are in some cases asymptotically faster than those of GMP (GNU Multiple Precision Arithmetic Library).
+
* '''Performance.'''  The compiler includes several powerful program transformations such as user procedure inlining, partial-evaluation, and lambda-lifting.  With appropriate declarations in the source code the executable programs generated by the compiler run roughly as fast as equivalent C programs.  Programs containing no declarations are also optimized without compromising the Scheme semantics by speculatively inlining predefined procedures (see the [[benchmarks]] page for a comparison with other Scheme implementations and other languages).  Thanks to an efficient implementation of continuations, the thread system is very efficient and can support millions of concurrent threads.  The bignum library uses sophisticated algorithms that are in some cases asymptotically faster than those of GMP (GNU Multiple Precision Arithmetic Library). [Note: With the release of GMP 4.3.0 in April 2009, this claim is no longer true; see the [[benchmarks]] page for some crude comparisons on large integers.]
-
* '''Reliability.'''  Stable releases typically have very few bugs.  Bug tracking is done with [http://www.bugzilla.org/ bugzilla].  Gambit-C has been used to develop large-scale real-world software in academic and commercial settings.
+
* '''Reliability.'''  Stable releases typically have very few bugs.  Bug tracking is done with [http://www.bugzilla.org/ bugzilla].  Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.
 +
 
 +
An overview of the Gambit system was presented by Marc Feeley at the [http://www.international-lisp-conference.org/2010/index 2010 International Lisp Conference].  The slides of the "Gambit Scheme: Inside Out" talk are [http://www.iro.umontreal.ca/~gambit/Gambit-inside-out.pdf here].
==Getting Gambit==
==Getting Gambit==
-
Gambit is available as prebuilt and source code [[distributions]].  There are prebuilt distributions for Mac OS X, Microsoft Windows, and other operating systems.  The source code distributions must be compiled with a C or C++ compiler.  The latest sources are available in the [[Source code repository | source code repository]]. It can be accessed using
+
Gambit is available as prebuilt and source code [[distributions]].  There are prebuilt distributions for Mac OS X, iPhone/iPod touch/iPad (on Apple App Store), Microsoft Windows, and other operating systems.  The source code distributions must be compiled with a C or C++ compiler.  The latest sources are available in the [[Source code repository | source code repository]]. It can be accessed using
the [http://git.or.cz/ git] distributed version control system.
the [http://git.or.cz/ git] distributed version control system.
==Documentation==
==Documentation==
-
[[Documentation]] is available. You can also see what makes Gambit [[ extensions | more than a simple implementation]] of the Scheme programming language.
+
[[Documentation]] is available.
==Support==
==Support==
Line 51: Line 52:
===Source repository===
===Source repository===
-
[http://www.iro.umontreal.ca/~gambit/repo/gambit/ Gambit Mercurial repo]
+
[[Source code repository | Gambit Git repo]]
==License==
==License==

Revision as of 20:37, 21 February 2013

The Gambit Scheme system is a complete, portable, efficient and reliable implementation of the Scheme programming language.

This web site is intended for users of the Gambit Scheme system. It is a place where various resources are collected and where users can exchange information related to Gambit.

Download latest release (v4.6.7): Development Sources, Mac OS X installer (for Intel 32), iPhone/iPod touch/iPad, Windows installer MinGW VC (for other releases see the distributions). Libraries and module systems are installed separately.

What's Gambit?

Gambit consists of two main programs: gsi, the Gambit Scheme interpreter, and gsc, the Gambit Scheme compiler. The interpreter contains the complete execution and debugging environment. The compiler is the interpreter extended with the capability of generating executable files. The compiler can produce standalone executables or compiled modules which can be loaded at run time. Interpreted code and compiled code can be freely mixed.

Gambit-C is a version of the Gambit programming system in which the compiler generates portable C code. The main features of Gambit-C are:

  • Conformance. The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme standards and implements all optional features. Tail calls and first class continuations conform to the Scheme semantics. The full numeric tower is implemented, including: arbitrary precision integers (bignums), rationals, inexact reals (floating point numbers), and complex numbers. Several extensions to Scheme are provided, including: lightweight threads, a foreign-function interface (FFI), and extended I/O capabilities (Unicode, networking, subprocesses, ...).
  • Portability. Because the system is mostly written in Scheme and the compiler generates portable C code, it is easy to port the system as well as programs compiled with it to any platform with a decent C or C++ compiler. There is no reliance on a particular C compiler, although the system can take advantage of some gcc-specific constructs. The C code generated is oblivious to the endianness and word size of the target environment (32 and 64 bit architectures are currently supported).
  • Performance. The compiler includes several powerful program transformations such as user procedure inlining, partial-evaluation, and lambda-lifting. With appropriate declarations in the source code the executable programs generated by the compiler run roughly as fast as equivalent C programs. Programs containing no declarations are also optimized without compromising the Scheme semantics by speculatively inlining predefined procedures (see the benchmarks page for a comparison with other Scheme implementations and other languages). Thanks to an efficient implementation of continuations, the thread system is very efficient and can support millions of concurrent threads. The bignum library uses sophisticated algorithms that are in some cases asymptotically faster than those of GMP (GNU Multiple Precision Arithmetic Library). [Note: With the release of GMP 4.3.0 in April 2009, this claim is no longer true; see the benchmarks page for some crude comparisons on large integers.]
  • Reliability. Stable releases typically have very few bugs. Bug tracking is done with bugzilla. Gambit-C has been used to develop large-scale real-world software and services in academic and commercial settings.

An overview of the Gambit system was presented by Marc Feeley at the 2010 International Lisp Conference. The slides of the "Gambit Scheme: Inside Out" talk are here.

Getting Gambit

Gambit is available as prebuilt and source code distributions. There are prebuilt distributions for Mac OS X, iPhone/iPod touch/iPad (on Apple App Store), Microsoft Windows, and other operating systems. The source code distributions must be compiled with a C or C++ compiler. The latest sources are available in the source code repository. It can be accessed using the git distributed version control system.

Documentation

Documentation is available.

Support

Come chat with us in the #gambit channel on Freenode IRC.

Contributing

Learn how to contribute to Gambit's development.

Reporting bugs

Gambit bugzilla

Source repository

Gambit Git repo

License

Gambit is Copyright © 1994-2008 by Marc Feeley. It is released under a dual LGPL and Apache 2 license. You can choose whichever license you prefer:

Personal tools
documentation