Gambit is an efficient implementation of the Scheme programming language. http://gambitscheme.org/
  • Scheme 69.6%
  • C 13.1%
  • Tree-sitter Query 11.5%
  • Shell 1.1%
  • Objective-C 0.9%
  • Other 3.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-07 21:56:53 -04:00
.github/workflows github actions: use gcc-15 on macos 2026-08-08 12:54:30 -04:00
bench Fix bench script for Bigloo (#942) 2024-12-10 16:46:33 -05:00
bin Miscellaneous improvements in configure/makefiles (#969) 2026-06-14 23:19:24 +02:00
contrib [RUNTIME CHANGES NEEDED FOR v4.9.8] Changed version of runtime using misc/changev 2026-08-09 09:17:18 -04:00
doc Miscellaneous improvements in configure/makefiles (#969) 2026-06-14 23:19:24 +02:00
examples [RUNTIME CHANGES NEEDED FOR v4.9.8] Changed version of runtime using misc/changev 2026-08-09 09:17:18 -04:00
githooks Change makefiles so that modules are built when doing a plain "make" (a "make core" avoids building the modules) 2021-12-19 17:38:09 -05:00
gsc [RUNTIME CHANGES NEEDED FOR v4.9.8] Changed version of runtime using misc/changev 2026-08-09 09:17:18 -04:00
gsi [RUNTIME CHANGES NEEDED FOR v4.9.8] Changed version of runtime using misc/changev 2026-08-09 09:17:18 -04:00
include Work around W^X (write xor execute) policy by allocating writable memory, then marking it as executable and not writable when it is executed 2026-09-07 21:52:22 -04:00
lib remove trace 2026-09-07 21:56:53 -04:00
misc Add build script for Windows using Visual Studio 2025-05-16 22:56:22 -04:00
prebuilt Finalize Modules chapter of documentation and improve module whitelist integration 2022-01-02 18:22:46 -05:00
tests Fix zero-argument bitwise-eqv 2026-08-27 23:42:26 -04:00
.gitattributes Update .gitattributes 2023-10-20 12:59:37 +03:00
.gitignore doc/makefile.in, .gitignore: Split nor track .info files 2024-09-04 14:25:12 -04:00
appveyor.yml Remove appveyor.yml runs that were migrated to GitHub Actions 2020-05-25 12:36:44 -07:00
config.guess Update config.guess config.sub file (#926) 2024-09-15 10:08:47 -04:00
config.sub Update config.guess config.sub file (#926) 2024-09-15 10:08:47 -04:00
configure [RUNTIME CHANGES NEEDED FOR v4.9.8] Changed version of runtime using misc/changev 2026-08-09 09:17:18 -04:00
configure.ac [RUNTIME CHANGES NEEDED FOR v4.9.8] Changed version of runtime using misc/changev 2026-08-09 09:17:18 -04:00
Dockerfile added dockerfile 2021-02-10 18:41:48 -05:00
gsc-boot.bat.windows Replace gsc-boot.c by shell scripts to avoid problems when cross-compiling. 2012-05-08 09:02:35 -04:00
gsc-boot.unix Replace gsc-boot.c by shell scripts to avoid problems when cross-compiling. 2012-05-08 09:02:35 -04:00
install-sh Tolerate install paths with spaces 2015-05-07 15:59:25 -04:00
INSTALL.txt Add --enable-optimized-module-limit=N configure option 2023-11-13 14:32:39 -05:00
LGPL.txt Initial commit of Gambit-C v4.0.0 2007-08-25 14:39:50 -04:00
LICENSE-2.0.txt Initial commit of Gambit-C v4.0.0 2007-08-25 14:39:50 -04:00
makefile.in Add "make ut-coverage" to determine procedures that are not covered by unit tests 2026-06-19 21:14:57 +02:00
mkidirs Tolerate install paths with spaces 2015-05-07 15:59:25 -04:00
README Improve build procedure so a simple configure+make will work on a clone of the git repo 2017-10-14 09:03:48 -04:00
README.md [RUNTIME CHANGES NEEDED FOR v4.9.5] Changed version of runtime using misc/changev 2023-07-26 11:37:40 -04:00
relpath Actually set executable bit of scripts on the repo 2013-12-18 10:55:17 -05:00

Windows, Linux, and macOS
CI Build Status

Join the chat at https://gitter.im/gambit/gambit

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

The latest official release of the system and other helpful documents can be obtained from the Gambit web page at:

https://gambitscheme.org


Quick-install instructions for a typical installation

git clone https://github.com/gambit/gambit.git
cd gambit
./configure
make               # build runtime library, gsi and gsc (add -j8 if you can)
make check         # run self tests (optional but recommended)
make doc           # build the documentation
sudo make install  # install

# Note: this configuration is recommended for best performance:
./configure --enable-single-host --enable-march=native --enable-dynamic-clib

If some error or ctrl-C interrupts the first invocation of make it is best to start again from the git clone step to avoid possible corruption of the files generated during the bootstrap process.

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


Contributing

We welcome contributions in the form of issues, bug reports, and pull-requests for enhancements, bug fixes, and entire modules of code (SRFIs, new modules or ports from other environments, etc). Thanks to Gambit's module system, individuals can also contribute modules and R7RS libraries on their own by simply creating a public git repository (on github.com, gitlab.com, etc) that hosts the module's source code (see https://github.com/gambit/hello and https://github.com/feeley/bonjour for simple public modules, which can be run with gsi github.com/gambit/hello/demo and gsi -:whitelist=github.com/feeley github.com/feeley/bonjour respectively).

For some issues a reward is offered for fixing the issue (enter the word "bounty" in the "Issues" tab search bar). Individuals may offer a bounty for fixing an issue by adding the word "bounty" in the description of the issue and giving details on the amount and payment method.

Please click the following button if you want to donate funds that will allow the Gambit maintainers to offer bug bounties and rewards to people who contribute to Gambit's development. As an example, a typical bug bounty is on the order of $100 CAD (about $80 USD and 75 euros at time of writing).


SRFIs provided

0: Feature-based conditional expansion construct (builtin)

1: List Library

2: AND-LET*: an AND with local bindings, a guarded LET* special form

4: Homogeneous numeric vector datatypes (builtin)

5: A compatible let form with signatures and rest arguments

6: Basic String Ports (builtin)

8: receive: Binding to multiple values (builtin)

9: Defining Record Types (builtin)

13: String Libraries

14: Character-set Library

16: Syntax for procedures of variable arity (builtin)

18: Multithreading support (builtin)

19: Time Data Types and Procedures

21: Real-time multithreading support (builtin)

22: Running Scheme Scripts on Unix (builtin)

23: Error reporting mechanism (builtin)

26: Notation for Specializing Parameters without Currying

27: Sources of Random Bits (builtin)

28: Basic Format Strings

30: Nested Multi-line Comments (builtin)

31: A special form rec for recursive evaluation

33: Integer Bitwise-operation Library

39: Parameter objects (builtin)

41: Streams

42: Eager Comprehensions

45: Primitives for Expressing Iterative Lazy Algorithms

48: Intermediate Format Strings

62: S-expression comments (builtin)

64: A Scheme API for test suites (incomplete implementation)

69: Basic hash tables

88: Keyword objects (builtin)

111: Boxes (builtin)

124: Ephemerons

132: Sort Libraries

141: Integer Division (builtin)

151: Bitwise Operations

158: Generators and Accumulators

179: Nonempty Intervals and Generalized Arrays (Updated)

193: Command line (builtin)

219: Define higher-order lambda

231: Intervals and Generalized Arrays