https://gambitscheme.org/wiki/api.php?action=feedcontributions&user=WikiSysop&feedformat=atomGambit wiki - User contributions [en]2024-03-29T14:45:59ZUser contributionsMediaWiki 1.35.3https://gambitscheme.org/wiki/index.php?title=SRFI:s&diff=2750SRFI:s2022-05-15T11:12:31Z<p>WikiSysop: Update provided SRFIs</p>
<hr />
<div>==SRFI==<br />
<br />
Scheme Request For Implementation. See http://srfi.schemers.org/.<br />
<br />
Gambit provides the following SRFIs:<br />
<br />
0: [https://srfi.schemers.org/srfi-0/srfi-0.html Feature-based conditional expansion construct] (builtin)<br />
<br />
1: [https://srfi.schemers.org/srfi-1/srfi-1.html List Library]<br />
<br />
2: [https://srfi.schemers.org/srfi-2/srfi-2.html AND-LET*: an AND with local bindings, a guarded LET* special form]<br />
<br />
4: [https://srfi.schemers.org/srfi-4/srfi-4.html Homogeneous numeric vector datatypes] (builtin)<br />
<br />
5: [https://srfi.schemers.org/srfi-5/srfi-5.html A compatible let form with signatures and rest arguments]<br />
<br />
6: [https://srfi.schemers.org/srfi-6/srfi-6.html Basic String Ports] (builtin)<br />
<br />
8: [https://srfi.schemers.org/srfi-8/srfi-8.html receive: Binding to multiple values] (builtin)<br />
<br />
9: [https://srfi.schemers.org/srfi-9/srfi-9.html Defining Record Types] (builtin)<br />
<br />
13: [https://srfi.schemers.org/srfi-13/srfi-13.html String Libraries]<br />
<br />
14: [https://srfi.schemers.org/srfi-14/srfi-14.html Character-set Library]<br />
<br />
16: [https://srfi.schemers.org/srfi-16/srfi-16.html Syntax for procedures of variable arity] (builtin)<br />
<br />
18: [https://srfi.schemers.org/srfi-18/srfi-18.html Multithreading support] (builtin)<br />
<br />
21: [https://srfi.schemers.org/srfi-21/srfi-21.html Real-time multithreading support] (builtin)<br />
<br />
22: [https://srfi.schemers.org/srfi-22/srfi-22.html Running Scheme Scripts on Unix] (builtin)<br />
<br />
23: [https://srfi.schemers.org/srfi-23/srfi-23.html Error reporting mechanism] (builtin)<br />
<br />
26: [https://srfi.schemers.org/srfi-26/srfi-26.html Notation for Specializing Parameters without Currying]<br />
<br />
27: [https://srfi.schemers.org/srfi-27/srfi-27.html Sources of Random Bits] (builtin)<br />
<br />
28: [https://srfi.schemers.org/srfi-28/srfi-28.html Basic Format Strings]<br />
<br />
30: [https://srfi.schemers.org/srfi-30/srfi-30.html Nested Multi-line Comments] (builtin)<br />
<br />
31: [https://srfi.schemers.org/srfi-31/srfi-31.html A special form rec for recursive evaluation]<br />
<br />
33: [https://srfi.schemers.org/srfi-33/srfi-33.html Integer Bitwise-operation Library]<br />
<br />
39: [https://srfi.schemers.org/srfi-39/srfi-39.html Parameter objects] (builtin)<br />
<br />
41: [https://srfi.schemers.org/srfi-41/srfi-41.html Streams]<br />
<br />
42: [https://srfi.schemers.org/srfi-42/srfi-42.html Eager Comprehensions]<br />
<br />
45: [https://srfi.schemers.org/srfi-45/srfi-45.html Primitives for Expressing Iterative Lazy Algorithms]<br />
<br />
48: [https://srfi.schemers.org/srfi-48/srfi-48.html Intermediate Format Strings]<br />
<br />
62: [https://srfi.schemers.org/srfi-62/srfi-62.html S-expression comments] (builtin)<br />
<br />
64: [https://srfi.schemers.org/srfi-64/srfi-64.html A Scheme API for test suites] (incomplete implementation)<br />
<br />
69: [https://srfi.schemers.org/srfi-69/srfi-69.html Basic hash tables]<br />
<br />
88: [https://srfi.schemers.org/srfi-88/srfi-88.html Keyword objects] (builtin)<br />
<br />
111: [https://srfi.schemers.org/srfi-111/srfi-111.html Boxes] (builtin)<br />
<br />
124: [https://srfi.schemers.org/srfi-124/srfi-124.html Ephemerons]<br />
<br />
132: [https://srfi.schemers.org/srfi-132/srfi-132.html Sort Libraries]<br />
<br />
151: [https://srfi.schemers.org/srfi-151/srfi-151.html Bitwise Operations]<br />
<br />
158: [https://srfi.schemers.org/srfi-158/srfi-158.html Generators and Accumulators]<br />
<br />
179: [https://srfi.schemers.org/srfi-179/srfi-179.html Nonempty Intervals and Generalized Arrays (Updated)]<br />
<br />
193: [https://srfi.schemers.org/srfi-193/srfi-193.html Command line] (builtin)<br />
<br />
219: [https://srfi.schemers.org/srfi-219/srfi-219.html Define higher-order lambda]<br />
<br />
<br />
[[Category: Code]]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2745Main Page2020-04-27T12:51:01Z<p>WikiSysop: add ELS20 slides</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.9.3):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/source/gambit-v4_9_3-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_3-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_3-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_3-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_3-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here]. The slides for the talk "Tail Calling Between Code Generated by C and Native Backends" given at the Scheme Workshop 2018 are [http://www.iro.umontreal.ca/~gambit/SW2018-talk.pdf here]. The slides for the talk "An R7RS Compatible Module System for Termite Scheme" given at the European Lisp Symposium 2020 are [https://www.european-lisp-symposium.org/static/2020/hamel-feeley-slides.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2020 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2744Main Page2020-03-22T10:45:32Z<p>WikiSysop: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.9.3):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/source/gambit-v4_9_3-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_3-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_3-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_3-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_3-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here]. The slides for the talk "Tail Calling Between Code Generated by C and Native Backends" given at the Scheme Workshop 2018 are [http://www.iro.umontreal.ca/~gambit/SW2018-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2020 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=MediaWiki:Sidebar&diff=2743MediaWiki:Sidebar2020-03-22T10:41:26Z<p>WikiSysop: </p>
<hr />
<div>* overview<br />
** Main Page|Main Page<br />
** External links|External links<br />
<br />
* download<br />
** Distributions|Gambit system<br />
** Packages|Packages<br />
<br />
* documentation<br />
** Documentation|All<br />
** http://www.iro.umontreal.ca/~gambit/doc/gambit.html|Manual<br />
** http://www.iro.umontreal.ca/~gambit/doc/gambit.pdf|Manual in PDF<br />
<br />
* contributing<br />
** How to contribute|How to contribute<br />
** https://github.com/feeley/gambit/commits|Changelog<br />
** https://github.com/feeley/gambit/issues|Bug reports<br />
** https://gitter.im/feeley/gambit|Chat room<br />
** https://mailman.iro.umontreal.ca/cgi-bin/mailman/listinfo/gambit-list|Mailing-list<br />
** http://mailman.iro.umontreal.ca/pipermail/gambit-list/|Mailing-list archive</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Documentation&diff=2742Documentation2019-06-03T19:36:53Z<p>WikiSysop: fix Gambit manual link</p>
<hr />
<div>== User Documentation ==<br />
<br />
There is a user manual for Gambit in [http://www.iro.umontreal.ca/~gambit/doc/gambit.html HTML]<br />
and [http://www.iro.umontreal.ca/~gambit/doc/gambit.pdf PDF] formats.<br />
<br />
See the [[Scheme]] page for documentation on Scheme in general.<br />
<br />
== Prebuilt Distributions ==<br />
<br />
Some prebuilt distributions are [[Distributions | available]].<br />
<br />
== Building Gambit from Source ==<br />
<br />
To build Gambit from source, one must first run the configure script, which has a number<br />
of important [[Configure script options | options]].<br />
<br />
There are various [[Make targets | make targets]] of which you should be aware.<br />
<br />
== Packages, modules, libraries and driving systems ==<br />
<br />
See the [[Packages]] page.<br />
<br />
=== SRFI support ===<br />
The Scheme community has accumulated a set of common libraries and conventions called Scheme Requests for Implementation, publicly collected on [http://srfi.schemers.org/ srfi.schemers.org].<br />
<br />
Gambit [[SRFI:s | natively implements]] a number of SRFIs.<br />
[[Black Hole]] includes several popular SRFIs not natively supported,<br />
while still others may be downloaded from [http://snow.iro.umontreal.ca/?listcat=srfi Snow].<br />
<br />
== Editor/IDE Support ==<br />
<br />
Gambit provides a powerful development environment through [http://www.iro.umontreal.ca/~gambit/doc/gambit.html#Emacs-interface Emacs]. <br />
<br />
For those running MS Windows you can [http://ftp.gnu.org/pub/gnu/emacs/windows/ download Emacs here]. You may want to read the [http://www.gnu.org/software/emacs/windows/ntemacs.html Emacs FAQ for Windows] before customizing Emacs for use with Gambit. In order to use Emacs' inferior scheme mode on Windows, you may need to run gsi/gsc in raw stdin/stdout mode (see section "Emacs interface" in the manual for details).<br />
<br />
Editors such as [http://www.eclipse.org/ Eclipse] with the [http://schemeway.sourceforge.net/ SchemeWay] extension, or just about any text editor with Scheme syntax highlighting, such as [http://www.vim.org VIM or GVIM], may prove valuable as well.<br />
<br />
== Termite ==<br />
<br />
[http://code.google.com/p/termite/ Termite] is an Erlang-like distributed programming system written in Scheme.<br />
<br />
Distributed computing hot right now, and Termite has been noticed in blogs and elsewhere.<br />
<br />
Termite depends on specific features of Gambit, and at one time or another<br />
the Termite source code has been distributed with Gambit, so we point to the Termite web site<br />
from here.<br />
<br />
== Tutorials ==<br />
[[A Tour of Scheme in Gambit]] gives a general introduction to Scheme and Gambit to people with experiences of general programming languages. Available in [[media:A_Tour_of_Scheme_in_Gambit.pdf|PDF]], [[media:A_Tour_of_Scheme_in_Gambit.odf|Open Office]] and [[media:A_Tour_of_Scheme_in_Gambit.doc|Microsoft Word]] formats.<br />
<br />
== Internals Documentation ==<br />
[[Design guide]]<br />
<br />
People who want to [[How to Contribute | contribute]] to Gambit development will need to learn something about how the Gambit-C<br />
runtime and compiler are organized. While we intend that source code documentation be included in the source<br />
itself (currently there is very little documentation), we intend that descriptions of program design<br />
or algorithms used in the runtime and compiler could be included on the [[Internal Documentation]] page.<br />
<br />
== Working with External Libraries ==<br />
<br />
With Gambit's C FFI (Foreign Function Interface), one can easily use standard C and C++ libraries with your code; this wiki has some examples of and practices on using Gambit with external libraries. See [[Using Gambit with External Libraries]].<br />
<br />
== Debugging ==<br />
<br />
See the [[Debugging]] page.<br />
<br />
== More ==<br />
The [http://mailman.iro.umontreal.ca/pipermail/gambit-list mailing list archive] covers many topics at depth. You can make Google search queries limited to the mailing list by clicking "advanced settings" on www.google.com.<br />
<br />
[[Dumping Grounds]]<br />
<br />
[[Compiling Gambit software for different target environments]]<br />
<br />
[[Wish list]]<br />
<br />
[[External links]]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2736Main Page2018-11-19T02:25:05Z<p>WikiSysop: update for v4.9.1</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.9.1):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/source/gambit-v4_9_1-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_1-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_1-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_1-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_1-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here]. The slides for the talk "Tail Calling Between Code Generated by C and Native Backends" given at the Scheme Workshop 2018 are [http://www.iro.umontreal.ca/~gambit/SW2018-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2016 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2735Main Page2018-09-29T15:29:39Z<p>WikiSysop: </p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.9.0):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/source/gambit-v4_9_0-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_0-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_0-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_0-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_0-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here]. The slides for the talk "Tail Calling Between Code Generated by C and Native Backends" given at the Scheme Workshop 2018 are [http://www.iro.umontreal.ca/~gambit/SW2018-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2016 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2734Main Page2018-09-05T21:16:39Z<p>WikiSysop: Update for v4.9.0</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.9.0):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/source/gambit-v4_9_0-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_0-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_0-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_0-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/prebuilt/gambit-v4_9_0-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2016 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2733Main Page2018-02-27T01:45:15Z<p>WikiSysop: update for v4.8.9</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.9):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_9-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_9-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_9-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_9-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_9-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2016 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2730Main Page2017-05-29T16:47:17Z<p>WikiSysop: update for v4.8.8</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.8):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_8-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_8-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_8-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_8-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_8-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2016 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Distributions&diff=2729Distributions2017-05-29T16:45:43Z<p>WikiSysop: add v4.8</p>
<hr />
<div>=== Source Control ===<br />
* '''git clone https://github.com/feeley/gambit.git'''<br />
* Browse the git repository on github: https://github.com/feeley/gambit<br />
<br />
=== Version 4 ===<br />
<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8 Version 4.8]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7 Version 4.7]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6 Version 4.6]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.5 Version 4.5]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.4 Version 4.4]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.3 Version 4.3]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.2 Version 4.2]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.1 Version 4.1]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v4.0 Version 4.0]<br />
** [http://bunny.jonnay.net/gambitnds/trunk/ SVN repository for Gambit 4.0b20 on Nintendo DS ]<br />
<br />
=== Version 3 ===<br />
<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v3.0 Version 3.0]<br />
** Latest stable source distribution: [http://www.iro.umontreal.ca/~gambit/download/gambit/v3.0/source/gambc30.tar.gz gambc30.tar.gz]<br />
** Latest stable prebuilt distributions:<br />
*** README file: [http://www.iro.umontreal.ca/~gambit/download/gambit/3.0/prebuilt/readme readme]<br />
*** Windows 95/NT/XP:<br />
**** For '''Microsoft Visual C++ 4.0 compiler''': [http://www.iro.umontreal.ca/~gambit/download/gambit/v3.0/prebuilt/gc30-msc.zip gc30-msc.zip]<br />
**** For '''Borland C++ 5.0 compiler''': [http://www.iro.umontreal.ca/~gambit/download/gambit/v3.0/prebuilt/gc30-bor.zip gc30-bor.zip]<br />
**** For '''Watcom C/C++ 11.0 compiler''': [http://www.iro.umontreal.ca/~gambit/download/gambit/v3.0/prebuilt/gc30-wat.zip gc30-wat.zip]<br />
**** Note: any prebuilt distribution will do if you only use the Gambit Scheme interpreter, but the one for Watcom C/C++ is fastest.<br />
*** MSDOS:<br />
**** For '''DJGPP system v2.0''': [http://www.iro.umontreal.ca/~gambit/download/gambit/v3.0/prebuilt/gc30-dj.zip gc30-dj.zip]<br />
*** Mac OS Classic:<br />
**** For '''for the Macintosh CodeWarrior 11, Pro 1/2/3''': [http://www.iro.umontreal.ca/~gambit/download/gambit/v3.0/prebuilt/gc30-cw.zip gc30-cw.zip]<br />
<br />
=== Version 2 ===<br />
<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v2.0 Version 2.0]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v2.2 Version 2.2]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v2.3 Version 2.3]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v2.4 Version 2.4]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v2.5 Version 2.5]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v2.6 Version 2.6]<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v2.7 Version 2.7]<br />
<br />
=== Version 1 ===<br />
<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v1 Gambit's infancy!]<br />
<br />
=== Version 0 ===<br />
<br />
* [http://www.iro.umontreal.ca/~gambit/download/gambit/v0 Before it was called Gambit!] (SIS = Simple Implementation of Scheme... originally in Prolog)</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2727Main Page2016-11-17T14:12:32Z<p>WikiSysop: Update for v4.8.6</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.6):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_6-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_6-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_6-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_6-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_6-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2016 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=How_to_contribute&diff=2726How to contribute2016-08-24T10:57:05Z<p>WikiSysop: remove reference to bugzilla bug tracker</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The development of Gambit was started in 1989 by [http://www.iro.umontreal.ca/~feeley/ Marc Feeley].<br />
In order to maintain tight control over the quality of the implementation, few other developers have been permitted<br />
to contribute directly to the system. Now that Gambit has matured and that the core system is<br />
unlikely to change much, we believe that it is important to open the development process to<br />
invite contributions by the Gambit user community.<br />
<br />
Contributions are sought in at least three areas:<br />
<br />
* '''Gambit's source code'''<br />
** Locate and fix bugs<br />
** [[Wish_list | Suggest new features ]]<br />
** Implement new features<br />
** [[ Installer | Port the system to new platforms ]]<br />
** Improve the performance of the system<br />
<br />
* '''Gambit's documentation'''<br />
** Improve the user manual<br />
** Improve the Gambit web site<br />
** Write tutorials<br />
<br />
* '''Gambit's packages'''<br />
** Create and maintain Gambit-specific packages<br />
** Port packages from other Scheme implementations<br />
<br />
==Contributing to Gambit's source code==<br />
<br />
If you discover a problem while working with Gambit we advise that you report this on the<br />
[https://github.com/gambit/gambit/issues issue tracker on github]. You should<br />
do this even if you know how to fix or work around the problem, so that others<br />
can search the issue database to be aware of its existence and to see the status of the issue.<br />
Suggestions for new features can also be submitted to the github issue tracking system.<br />
<br />
The latest sources are available in the [[Source code repository | source code repository]]. It can be accessed using<br />
the [http://git.or.cz/ git] distributed version control system. The details are<br />
explained in the [[Contributing Patches to Gambit Source Code | source code repository instructions]]. With git you get<br />
a local copy of the source code repository which you can use to develop a ''patch'' that fixes a bug<br />
or implements a new feature. If you feel confident that the patch is correct and useful to others,<br />
you can then submit this patch to the Gambit maintainers. The patch will be reviewed to see how well<br />
it fits with the goals and philosophy of Gambit. If the patch is accepted then it will be applied to the<br />
source code repository and included in the official distribution of Gambit. If you are planning to<br />
make a substantial change to the source code it is best to discuss your plans on the<br />
[https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list Gambit mailing list]<br />
beforehand to improve the likelihood it will be accepted when it is submitted.<br />
<br />
==Contributing to Gambit's documentation==<br />
<br />
The Gambit manual's source is bundled with the source code. It is in the '''doc''' subdirectory of the<br />
Gambit source code distribution. Patches to the manual can be contributed like source code<br />
contributions as explained above.<br />
<br />
The Gambit web site is organized as a Wiki, powered by [http://www.mediawiki.org/ MediaWiki] (the same<br />
system used by Wikipedia). The core pages and the navigation sidebar can only be edited by the Gambit<br />
maintainers. Pages which have an '''edit''' link or tab can be edited by anyone using these<br />
[http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Editing_overview editing rules].<br />
<br />
Suggestions for improving the Gambit web site or for adding new pages that can be edited<br />
should be discussed on the [https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list Gambit mailing list].<br />
<br />
==Contributing to Gambit's packages ==<br />
<br />
The procedure for contributing packages is still under development. Please stay tuned.<br />
<br />
[[Category: Internals]]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2725Main Page2016-05-28T00:58:31Z<p>WikiSysop: redirect links to new github repo location</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.5):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_5-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_5-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_5-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_5-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_5-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/gambit/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/gambit/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/gambit/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/gambit/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/gambit/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/gambit/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2016 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2724Main Page2016-04-02T13:13:36Z<p>WikiSysop: Update for v4.8.5</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.5):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_5-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_5-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_5-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_5-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_5-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2723Main Page2016-01-26T02:43:32Z<p>WikiSysop: update for v4.8.4</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.4):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_4-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_4-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_4-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_4-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_4-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2722Main Page2016-01-16T02:25:01Z<p>WikiSysop: update for v4.8.3</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.3):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_3-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_3-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_3-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_3-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_3-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2721Main Page2015-11-27T01:20:53Z<p>WikiSysop: Update for v4.8.2</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.2):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_2-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_2-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_2-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_2-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_2-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
'''[http://gambitscheme.org/wordpress Click here to order an awesome Gambit T-Shirt!]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2720Main Page2015-10-27T18:16:58Z<p>WikiSysop: Add slides to DLS15 talk</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.1):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_1-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_1-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_1-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_1-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_1-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
'''[http://gambitscheme.org/wordpress Click here to order an awesome Gambit T-Shirt!]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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]. The slides for the talk "Compiling for Multi-language Task Migration" given at DLS 15 are [http://www.iro.umontreal.ca/~gambit/migrate-dls15-talk.pdf here].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2719Main Page2015-10-17T23:35:28Z<p>WikiSysop: Update for v4.8.1</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.1):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_1-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_1-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_1-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_1-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_1-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
'''[http://gambitscheme.org/wordpress Click here to order an awesome Gambit T-Shirt!]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=MediaWiki:Sidebar&diff=2717MediaWiki:Sidebar2015-09-28T18:48:36Z<p>WikiSysop: add chat room link</p>
<hr />
<div>* overview<br />
** Main Page|Main Page<br />
** External links|External links<br />
<br />
* download<br />
** Distributions|Gambit system<br />
** Packages|Packages<br />
<br />
* documentation<br />
** Documentation|All<br />
** http://www.iro.umontreal.ca/~gambit/doc/gambit.html|Manual<br />
** http://www.iro.umontreal.ca/~gambit/doc/gambit.pdf|Manual in PDF<br />
<br />
* contributing<br />
** How to contribute|How to contribute<br />
** https://github.com/feeley/gambit/commits|Changelog<br />
** https://github.com/feeley/gambit/issues|Bug reports<br />
** https://gitter.im/feeley/gambit|Chat room<br />
** https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list|Mailing-list<br />
** https://webmail.iro.umontreal.ca/pipermail/gambit-list/|Mailing-list archive</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User_talk:Dan_Thedens&diff=2716User talk:Dan Thedens2015-09-28T16:26:31Z<p>WikiSysop: Welcome!</p>
<hr />
<div>'''Welcome to ''Gambit wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:WikiSysop|Gambit]] 12:26, 28 September 2015 (EDT)</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User:Dan_Thedens&diff=2715User:Dan Thedens2015-09-28T16:26:30Z<p>WikiSysop: Creating user page with biography of new user.</p>
<hr />
<div>I am a PhD researcher in Medical Imaging at the University of Iowa. My research primarily focuses on acquisition techniques for magnetic resonance imaging (MRI) for orthopedic and cardiac applications. I am interested in using Gambit for development of simulation tools for MRI acquisition techniques as well as image reconstruction, processing, and analysis algorithms for MRI.</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2714Main Page2015-09-28T15:00:04Z<p>WikiSysop: Update for v4.8.0</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.8.0):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_0-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_0-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_0-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_0-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/prebuilt/gambit-v4_8_0-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
'''[http://gambitscheme.org/wordpress Click here to order an awesome Gambit T-Shirt!]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2713Main Page2015-09-02T14:15:19Z<p>WikiSysop: update for v4.7.9</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.9):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_9-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_9-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_9-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_9-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_9-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
'''[http://gambitscheme.org/wordpress Click here to order an awesome Gambit T-Shirt!]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2712Main Page2015-08-24T13:23:31Z<p>WikiSysop: update for v4.7.8</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.8):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_8-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_8-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_8-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_8-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_8-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
'''[http://gambitscheme.org/wordpress Click here to order an awesome Gambit T-Shirt!]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2711Main Page2015-07-15T12:40:19Z<p>WikiSysop: update for v4.7.7</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.7):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_7-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_7-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_7-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_7-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_7-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
'''[http://gambitscheme.org/wordpress Click here to order an awesome Gambit T-Shirt!]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2710Main Page2015-05-30T17:29:19Z<p>WikiSysop: added link to t-shirt store</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.6):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_6-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_6-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_6-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_6-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_6-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
'''[http://gambitscheme.org/wordpress Click here to order an awesome Gambit T-Shirt!]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2709Main Page2015-05-10T02:34:46Z<p>WikiSysop: update for v4.7.6</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.6):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_6-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_6-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_6-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_6-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_6-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User_talk:Paul_Blanco&diff=2708User talk:Paul Blanco2015-05-03T01:46:29Z<p>WikiSysop: Welcome!</p>
<hr />
<div>'''Welcome to ''Gambit wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:WikiSysop|Gambit]] 21:46, 2 May 2015 (EDT)</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User:Paul_Blanco&diff=2707User:Paul Blanco2015-05-03T01:46:29Z<p>WikiSysop: Creating user page with biography of new user.</p>
<hr />
<div>Currently a Senior Principal Software Engineer @ Broadcom Corporation.<br />
<br />
Primary interests are data collection, analysis and presentation and automation of large scale test systems. Other interests include programming languages and their semantics, machine learning and pattern analysis in large data sets. Outside of work I am a guitar player with 40+ years of experience.</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2706Main Page2015-04-20T21:37:13Z<p>WikiSysop: update for v4.7.5</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.5):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_5-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_5-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_5-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_5-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_5-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2703Main Page2015-04-16T20:33:46Z<p>WikiSysop: add link to Gambit repo</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.4):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_4-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
'''[https://github.com/feeley/gambit Click here to visit the Gambit source code repository on github]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2702Main Page2015-04-16T20:31:35Z<p>WikiSysop: add Gambit chatroom link</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.4):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_4-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
'''[https://gitter.im/feeley/gambit Click here to join the Gambit chatroom]'''<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=2695Main Page2015-02-04T22:24:57Z<p>WikiSysop: update for v4.7.4</p>
<hr />
<div>__NOTOC__ __NOEDITSECTION__<br />
The Gambit Scheme system is a complete, portable, efficient and reliable implementation<br />
of the [[Scheme | Scheme programming language]].<br />
<br />
This web site is intended for users of the Gambit Scheme system. It is a place where various<br />
resources are collected and where users can exchange information related to Gambit.<br />
<br />
'''Download latest release (v4.7.4):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_4-devel.tgz Development Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel32.dmg Mac OS X installer (for Intel 32)],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel64.dmg Mac OS X installer (for Intel 64)],<br />
[http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8&ls=1 iPhone/iPod touch/iPad],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw32.exe Windows installer (for MinGW32)]<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw64.exe Windows installer (for MinGW64)]<br />
(for other releases see the [[distributions]]). Libraries and module systems are installed separately.<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme interpreter, and '''gsc''', the Gambit Scheme compiler.<br />
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.<br />
<br />
Gambit-C is a version of the Gambit programming system in which the<br />
compiler generates portable C code. The main features of Gambit-C are:<br />
<br />
* '''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, ...).<br />
* '''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). There are no external library dependencies, and OS API dependencies can be removed so as to run directly on the bare metal. The system includes high-performance bignum support utilizing sophisticated algorithms, implemented in Scheme.<br />
* '''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.<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with the [https://github.com/feeley/gambit/issues issue tracker on github]. Gambit-C has been used to develop large-scale [[Real-world software and services | real-world software and services]] in academic and commercial settings.<br />
<br />
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].<br />
<br />
==Getting Gambit==<br />
<br />
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 at the [https://github.com/feeley/gambit Gambit repo on github].<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on [http://www.mibbit.com Freenode IRC].<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
Please use the [https://github.com/feeley/gambit/issues issue tracker on github]. Note that the bugzilla bug tracker previously used ([http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla bug tracker]) will be phased out in favour of the github issue tracker.<br />
<br />
===Source repository===<br />
<br />
[https://github.com/feeley/gambit Gambit repo on github]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2013 by Marc Feeley.<br />
It is released under a dual LGPL and Apache 2 license. You<br />
can choose whichever license you prefer:<br />
<br />
* [http://www.gnu.org/copyleft/lesser.html LGPL version 2.1 license]<br />
* [http://www.apache.org/licenses/LICENSE-2.0.html Apache version 2.0 license]</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Special:Badtitle/NS102:Graphics:html-example2.scm&diff=2694Special:Badtitle/NS102:Graphics:html-example2.scm2014-12-22T23:01:08Z<p>WikiSysop: Script:Graphics:html-example2.scm</p>
<hr />
<div><schemecode>;;; Graphics:html-example2.scm<br />
<br />
;; Graphics:html-example2.scm<br />
;;<br />
;; Author: Marc Feeley <feeley@iro.umontreal.ca><br />
;;<br />
;; This program is a simple example of HTML layout with user interaction.<br />
<br />
(define html-code #<<END<br />
<h1>Please enter some text</h1><br />
<br />
<form onSubmit="window.location = encodeURI('event:Done:'+encodeURIComponent(document.getElementById('foo').value)+':'); return false;"><br />
<input type="text" id="foo" value="Some text" /><br />
<br/><br />
<input type="button" onClick="window.location = 'event:Cancel';" value="Cancel" /><br />
<input type="submit" value="Done" /><br />
</form><br />
END<br />
)<br />
<br />
(set-page<br />
html-code<br />
(lambda (event)<br />
<br />
(define (done x) (repl) (pp x))<br />
<br />
(cond ((equal? event "event:Cancel")<br />
(done 'Cancel))<br />
<br />
((has-prefix? event "event:Done:") =><br />
(lambda (rest)<br />
(done (get-event-parameters rest)))))))<br />
</schemecode></div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Special:Badtitle/NS102:Games:guess-number.scm&diff=2693Special:Badtitle/NS102:Games:guess-number.scm2014-12-22T22:56:25Z<p>WikiSysop: Script:Games:guess-number.scm</p>
<hr />
<div><schemecode>;;; Games:guess-number.scm<br />
<br />
;; Games:guess-number.scm<br />
;;<br />
;; Author: Marc Feeley <feeley@iro.umontreal.ca><br />
;;<br />
;; In this game you have to guess a random number<br />
;; generated by the computer. Interaction with<br />
;; the computer is through a REPL.<br />
<br />
(define (guess-number-game)<br />
(print "\nI have a number from 1 to " range ".\n")<br />
(print "Try to guess what it is...\n")<br />
(guess-number-loop<br />
(+ (random-integer 100) 1)<br />
1))<br />
<br />
(define (guess-number-loop number nb-guesses)<br />
(print "What is you guess?\n")<br />
(let ((n (read)))<br />
(if (= n number)<br />
(print "You found it in "<br />
nb-guesses<br />
" guess"<br />
(if (> nb-guesses 1) "es" "")<br />
"!\n")<br />
(begin<br />
(print "Your guess is too "<br />
(if (< n number) "low" "high")<br />
".\n")<br />
(guess-number-loop number (+ nb-guesses 1))))))<br />
<br />
(define range 100)<br />
<br />
(repl) ;; switch to the REPL view<br />
<br />
(guess-number-game)<br />
</schemecode></div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Special:Badtitle/NS102:Games:guess-number.scm&diff=2692Special:Badtitle/NS102:Games:guess-number.scm2014-12-22T22:55:57Z<p>WikiSysop: Script:Games:guess-number.scm</p>
<hr />
<div><schemecode>;;; Games:guess-number.scm<br />
<br />
;; Games:guess-number.scm<br />
;;<br />
;; Author: Marc Feeley <feeley@iro.umontreal.ca><br />
;;<br />
;; In this game you have to guess a random number<br />
;; generated by the computer. Interaction with<br />
;; the computer is through a REPL.<br />
<br />
(define (guess-number-game)<br />
(print "\nI have a number from 1 to " range ".\n")<br />
(print "Try to guess what it is...\n")<br />
(guess-number-loop<br />
(+ (random-integer 100) 1)<br />
1))<br />
<br />
(define (guess-number-loop number nb-guesses)<br />
(print "What is you guess\n? ")<br />
(let ((n (read)))<br />
(if (= n number)<br />
(print "You found it in "<br />
nb-guesses<br />
" guess"<br />
(if (> nb-guesses 1) "es" "")<br />
"!\n")<br />
(begin<br />
(print "Your guess is too "<br />
(if (< n number) "low" "high")<br />
".\n")<br />
(guess-number-loop number (+ nb-guesses 1))))))<br />
<br />
(define range 100)<br />
<br />
(repl) ;; switch to the REPL view<br />
<br />
(guess-number-game)<br />
</schemecode></div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Special:Badtitle/NS102:Games:guess-number-gui.scm&diff=2691Special:Badtitle/NS102:Games:guess-number-gui.scm2014-12-22T20:32:04Z<p>WikiSysop: Script:Games:guess-number-gui.scm</p>
<hr />
<div><schemecode>;;; Games:guess-number-gui.scm<br />
<br />
;; Games:guess-number-gui.scm<br />
;;<br />
;; Author: Marc Feeley <feeley@iro.umontreal.ca><br />
;;<br />
;; In this game you have to guess a random number<br />
;; generated by the computer. Interaction with<br />
;; the computer is through a web-based GUI.<br />
<br />
(define has-prefix? intf#has-prefix?)<br />
(define get-event-parameters intf#get-event-parameters)<br />
<br />
(define (guess-number-game)<br />
(guess-number-loop<br />
(+ (random-integer range) 1)<br />
1<br />
(list "<h3>I'm thinking of a number between 1 and " range ".</h3>"<br />
"<h3>Try to guess my number!</h3>")))<br />
<br />
(define range 100)<br />
<br />
(define (guess-number-loop number nb-guesses msg)<br />
(set-page<br />
(make-page nb-guesses msg)<br />
(lambda (event)<br />
<br />
(cond ((equal? event "event:new")<br />
(guess-number-game))<br />
<br />
((equal? event "event:quit")<br />
(edit))<br />
<br />
((has-prefix? event "event:enter:") =><br />
(lambda (rest)<br />
(let* ((p (get-event-parameters rest))<br />
(guess (string->number (car p))))<br />
<br />
(cond ((not (and guess<br />
(number? guess)<br />
(integer? guess)<br />
(>= guess 1)<br />
(<= guess range)))<br />
(guess-number-loop<br />
number<br />
nb-guesses<br />
(list "<h3>Invalid input.</h3>"<br />
"<h3>Try again!</h3>")))<br />
<br />
((= guess number)<br />
(guess-number-loop<br />
number<br />
nb-guesses<br />
(list "<h3>You guessed my number</h3><h3>in "<br />
nb-guesses<br />
" guess"<br />
(if (= nb-guesses 1) "" "es")<br />
"!</h3>"<br />
"<h3>Press \"new\" to start a new game.</h3>")))<br />
<br />
(else<br />
(guess-number-loop<br />
number<br />
(+ nb-guesses 1)<br />
(list "<h3>" guess " is "<br />
(if (< guess number) "lower" "higher")<br />
" than my number.</h3>"<br />
"<h3>Try again!</h3>")))))))))))<br />
<br />
(define (make-page nb-guesses msg)<br />
(list<br />
#<<HTML-END<br />
<br />
<meta name="viewport" content="width=device-width, initial-scale=1.0"><br />
<br />
<html><br />
<head><br />
<style TYPE="text/css"><br />
<!--<br />
body {<br />
background-image: -webkit-gradient(linear, left top, left bottom, from(#fffb8b), to(#80ff80));<br />
}<br />
input.guess {<br />
font: 24px Arial;<br />
padding: 2px 2px;<br />
width: 50px;<br />
margin: 5px;<br />
}<br />
--><br />
</style><br />
</head><br />
<br />
<body><br />
<br />
<br/><br/><br/><br />
<br />
<center><br />
<br />
<form onSubmit="window.location='event:enter:'+encodeURIComponent(document.getElementById('guess').value)+':'; return false;"><br />
<br />
<input type="text" class="guess" id="guess" value="" /><br />
<br />
<br/><br />
<br />
guess #<br />
HTML-END<br />
<br />
nb-guesses<br />
<br />
#<<HTML-END<br />
<br />
<br />
<br/><br/><br />
<br />
<input type="submit" value="enter" /><br />
<br />
<br/><br/><br />
<br />
<input type="button" value="new" onClick="window.location='event:new';" /><br />
<br />
<input type="button" value="quit" onClick="window.location='event:quit';" /><br />
<br />
</form><br />
<br />
<br />
HTML-END<br />
<br />
msg<br />
<br />
#<<HTML-END<br />
</center><br />
<br />
</body><br />
</html><br />
<br />
HTML-END<br />
))<br />
<br />
(guess-number-game)</schemecode></div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Special:Badtitle/NS102:Games:guess-number-gui.scm&diff=2690Special:Badtitle/NS102:Games:guess-number-gui.scm2014-12-22T20:26:35Z<p>WikiSysop: Script:Games:guess-number-gui.scm</p>
<hr />
<div><schemecode>;;; Games:guess-number-gui.scm<br />
<br />
;; Games:guess-number-gui.scm<br />
;;<br />
;; Author: Marc Feeley <feeley@iro.umontreal.ca><br />
;;<br />
;; In this game you have to guess a random number<br />
;; generated by the computer. Interaction with<br />
;; the computer is through a web-based GUI.<br />
<br />
(define has-prefix? intf#has-prefix?)<br />
<br />
(define (guess-number-game)<br />
(guess-number-loop<br />
(+ (random-integer range) 1)<br />
1<br />
(list "<h3>I'm thinking of a number between 1 and " range ".</h3>"<br />
"<h3>Try to guess my number!</h3>")))<br />
<br />
(define range 100)<br />
<br />
(define (guess-number-loop number nb-guesses msg)<br />
(set-page<br />
(make-page nb-guesses msg)<br />
(lambda (event)<br />
<br />
(cond ((equal? event "event:new")<br />
(guess-number-game))<br />
<br />
((equal? event "event:quit")<br />
(edit))<br />
<br />
((has-prefix? event "event:enter:") =><br />
(lambda (rest)<br />
(let* ((p (get-event-parameters rest))<br />
(guess (string->number (car p))))<br />
<br />
(cond ((not (and guess<br />
(number? guess)<br />
(integer? guess)<br />
(>= guess 1)<br />
(<= guess range)))<br />
(guess-number-loop<br />
number<br />
nb-guesses<br />
(list "<h3>Invalid input.</h3>"<br />
"<h3>Try again!</h3>")))<br />
<br />
((= guess number)<br />
(guess-number-loop<br />
number<br />
nb-guesses<br />
(list "<h3>You guessed my number</h3><h3>in "<br />
nb-guesses<br />
" guess"<br />
(if (= nb-guesses 1) "" "es")<br />
"!</h3>"<br />
"<h3>Press \"new\" to start a new game.</h3>")))<br />
<br />
(else<br />
(guess-number-loop<br />
number<br />
(+ nb-guesses 1)<br />
(list "<h3>" guess " is "<br />
(if (< guess number) "lower" "higher")<br />
" than my number.</h3>"<br />
"<h3>Try again!</h3>")))))))))))<br />
<br />
(define (make-page nb-guesses msg)<br />
(list<br />
#<<HTML-END<br />
<br />
<meta name="viewport" content="width=device-width, initial-scale=1.0"><br />
<br />
<html><br />
<head><br />
<style TYPE="text/css"><br />
<!--<br />
body {<br />
background-image: -webkit-gradient(linear, left top, left bottom, from(#fffb8b), to(#80ff80));<br />
}<br />
input.guess {<br />
font: 24px Arial;<br />
padding: 2px 2px;<br />
width: 50px;<br />
margin: 5px;<br />
}<br />
--><br />
</style><br />
</head><br />
<br />
<center><br />
<br />
<form onSubmit="window.location='event:enter:'+encodeURIComponent(document.getElementById('guess').value)+':'; return false;"><br />
<br />
<input type="text" class="guess" id="guess" value="" /><br />
<br />
<br/><br />
<br />
guess #<br />
HTML-END<br />
<br />
nb-guesses<br />
<br />
#<<HTML-END<br />
<br />
<br />
<br/><br/><br />
<br />
<input type="submit" value="enter" /><br />
<br />
<br/><br/><br />
<br />
<input type="button" value="new" onClick="window.location='event:new';" /><br />
<br />
<input type="button" value="quit" onClick="window.location='event:quit';" /><br />
<br />
</form><br />
<br />
<br />
HTML-END<br />
<br />
msg<br />
<br />
#<<HTML-END<br />
</center><br />
<br />
</head><br />
</html><br />
<br />
HTML-END<br />
))<br />
<br />
(guess-number-game)<br />
</schemecode></div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Special:Badtitle/NS102:Users:Feeley:list-directory-tree.scm&diff=2689Special:Badtitle/NS102:Users:Feeley:list-directory-tree.scm2014-12-22T20:23:13Z<p>WikiSysop: Script:Users:Feeley:list-directory-tree.scm</p>
<hr />
<div><schemecode>;;; Users:Feeley:list-directory-tree.scm<br />
<br />
;; List app directory content.<br />
<br />
(define (tree p)<br />
(if (and (file-exists? p)<br />
(eq? (file-type p) 'directory))<br />
(let ((lst (directory-files p)))<br />
(cons p<br />
(parameterize<br />
((current-directory p))<br />
(map tree lst))))<br />
p))<br />
<br />
(repl-eval "(tree \"~\")\n")</schemecode></div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User_talk:Javed_Ahmed_Khan&diff=2688User talk:Javed Ahmed Khan2014-12-22T14:15:17Z<p>WikiSysop: Welcome!</p>
<hr />
<div>'''Welcome to ''Gambit wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:WikiSysop|Gambit]] 09:15, 22 December 2014 (EST)</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User:Javed_Ahmed_Khan&diff=2687User:Javed Ahmed Khan2014-12-22T14:15:17Z<p>WikiSysop: Creating user page with biography of new user.</p>
<hr />
<div>I m working as a computer programmer. I want to learn scheme. Each and Everything about scheme programming language. I m working as a computer programmer. I want to learn scheme. Each and Everything about scheme programming language. I m working as a computer programmer. I want to learn scheme. Each and Everything about scheme programming language. I m working as a computer programmer. I want to learn scheme. Each and Everything about scheme programming language.</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=MediaWiki:Sidebar&diff=2686MediaWiki:Sidebar2014-10-14T01:00:43Z<p>WikiSysop: update bug report link in navigation sidebar</p>
<hr />
<div>* overview<br />
** Main Page|Main Page<br />
** External links|External links<br />
<br />
* download<br />
** Distributions|Gambit system<br />
** Packages|Packages<br />
<br />
* documentation<br />
** Documentation|All<br />
** http://www.iro.umontreal.ca/~gambit/doc/gambit-c.html|Manual<br />
** http://www.iro.umontreal.ca/~gambit/doc/gambit-c.pdf|Manual in PDF<br />
<br />
* contributing<br />
** How to contribute|How to contribute<br />
** https://github.com/feeley/gambit/commits|Changelog<br />
** https://github.com/feeley/gambit/issues|Bug reports<br />
** https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list|Mailing-list<br />
** https://webmail.iro.umontreal.ca/pipermail/gambit-list/|Mailing-list archive</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User_talk:Axis_Sivitz&diff=2685User talk:Axis Sivitz2014-10-11T11:05:08Z<p>WikiSysop: Welcome!</p>
<hr />
<div>'''Welcome to ''Gambit wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:WikiSysop|Gambit]] 07:05, 11 October 2014 (EDT)</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User:Axis_Sivitz&diff=2684User:Axis Sivitz2014-10-11T11:05:08Z<p>WikiSysop: Creating user page with biography of new user.</p>
<hr />
<div>I am a game developer that uses Gambit Scheme to run my game engine. My latest game, Cloud Breaker, was written with Gambit and released for iOS. I published an article on how to get Gambit up and running on iOS: asivitz.com/posts/running_gambit_scheme_on_ios You can learn more about my games and the use of Scheme on my blog: http://asivitz.com</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User_talk:Waqas_mirza6&diff=2683User talk:Waqas mirza62014-10-11T11:04:02Z<p>WikiSysop: Welcome!</p>
<hr />
<div>'''Welcome to ''Gambit wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:WikiSysop|Gambit]] 07:04, 11 October 2014 (EDT)</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=User:Waqas_mirza6&diff=2682User:Waqas mirza62014-10-11T11:04:02Z<p>WikiSysop: Creating user page with biography of new user.</p>
<hr />
<div>I have a little webpage that concentrates on showing other individuals to assemble their email list in any specialty that they are in. This site comprises of a point of arrival to gather email addresses, a bundle of items that instruct about building an email rundown, and a couple of pages with articles I've expounded on building an email list.</div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Special:Badtitle/NS102:Math:pi.scm&diff=2681Special:Badtitle/NS102:Math:pi.scm2014-10-09T18:11:56Z<p>WikiSysop: Script:Math:pi.scm</p>
<hr />
<div><schemecode>;;; Math:pi.scm<br />
<br />
;; Math:pi.scm<br />
;;<br />
;; Author: Marc Feeley <feeley@iro.umontreal.ca><br />
;;<br />
;; Computes 1000 digits of pi. The algorithm is explained here:<br />
;; http://mathworld.wolfram.com/Brent-SalaminFormula.html<br />
<br />
(define (pi nb-digits)<br />
;; compute a few more digits than required<br />
(round (/ (pi-brent-salamin (+ nb-digits 5))<br />
100000)))<br />
<br />
(define (pi-brent-salamin nb-digits)<br />
(let ((one (expt 10 nb-digits)))<br />
(let loop ((a one)<br />
(b (integer-sqrt (quotient (* one one) 2)))<br />
(t (quotient one 4))<br />
(x 1))<br />
(if (= a b)<br />
(quotient (square (+ a b)) (* 4 t))<br />
(let ((new-a (quotient (+ a b) 2)))<br />
(loop new-a<br />
(integer-sqrt (* a b))<br />
(- t (quotient (* x (square (- new-a a))) one))<br />
(* 2 x)))))))<br />
<br />
(define (square x)<br />
(* x x))<br />
<br />
(repl-eval "(pi 1000)\n")<br />
</schemecode></div>WikiSysophttps://gambitscheme.org/wiki/index.php?title=Special:Badtitle/NS102:Games:maze-svg.scm&diff=2680Special:Badtitle/NS102:Games:maze-svg.scm2014-10-07T16:26:45Z<p>WikiSysop: Script:Games:maze-svg.scm</p>
<hr />
<div><schemecode>;;; Games:maze-svg.scm<br />
<br />
;; Games:maze-svg.scm<br />
;;<br />
;; Author: Marc Feeley <feeley@iro.umontreal.ca><br />
;;<br />
;; This program draws a maze.<br />
<br />
(define size 15)<br />
<br />
(define foldr<br />
(lambda (f base lst)<br />
<br />
(define foldr-aux<br />
(lambda (lst)<br />
(if (null? lst)<br />
base<br />
(f (car lst) (foldr-aux (cdr lst))))))<br />
<br />
(foldr-aux lst)))<br />
<br />
(define foldl<br />
(lambda (f base lst)<br />
<br />
(define foldl-aux<br />
(lambda (base lst)<br />
(if (null? lst)<br />
base<br />
(foldl-aux (f base (car lst)) (cdr lst)))))<br />
<br />
(foldl-aux base lst)))<br />
<br />
(define for<br />
(lambda (lo hi f)<br />
<br />
(define for-aux<br />
(lambda (lo)<br />
(if (< lo hi)<br />
(cons (f lo) (for-aux (+ lo 1)))<br />
'())))<br />
<br />
(for-aux lo)))<br />
<br />
(define concat<br />
(lambda (lists)<br />
(foldr append '() lists)))<br />
<br />
(define list-read<br />
(lambda (lst i)<br />
(if (= i 0)<br />
(car lst)<br />
(list-read (cdr lst) (- i 1)))))<br />
<br />
(define list-write<br />
(lambda (lst i val)<br />
(if (= i 0)<br />
(cons val (cdr lst))<br />
(cons (car lst) (list-write (cdr lst) (- i 1) val)))))<br />
<br />
(define list-remove-pos<br />
(lambda (lst i)<br />
(if (= i 0)<br />
(cdr lst)<br />
(cons (car lst) (list-remove-pos (cdr lst) (- i 1))))))<br />
<br />
(define duplicates?<br />
(lambda (lst)<br />
(if (null? lst)<br />
#f<br />
(or (member (car lst) (cdr lst))<br />
(duplicates? (cdr lst))))))<br />
<br />
(define make-matrix<br />
(lambda (n m init)<br />
(for 0 n (lambda (i) (for 0 m (lambda (j) (init i j)))))))<br />
<br />
(define matrix-read<br />
(lambda (mat i j)<br />
(list-read (list-read mat i) j)))<br />
<br />
(define matrix-write<br />
(lambda (mat i j val)<br />
(list-write mat i (list-write (list-read mat i) j val))))<br />
<br />
(define matrix-size<br />
(lambda (mat)<br />
(cons (length mat) (length (car mat)))))<br />
<br />
(define matrix-map<br />
(lambda (f mat)<br />
(map (lambda (lst) (map f lst)) mat)))<br />
<br />
(define next-random<br />
(lambda (current-random)<br />
(remainder (+ (* current-random 3581) 12751) 131072)))<br />
<br />
(define shuffle<br />
(lambda (lst)<br />
(shuffle-aux lst (random-integer 131072))))<br />
<br />
(random-source-randomize! default-random-source) ;; different maze each time<br />
<br />
(define shuffle-aux<br />
(lambda (lst current-random)<br />
(if (null? lst)<br />
'()<br />
(let ((new-random (next-random current-random)))<br />
(let ((i (modulo new-random (length lst))))<br />
(cons (list-read lst i)<br />
(shuffle-aux (list-remove-pos lst i)<br />
new-random)))))))<br />
<br />
(define make-maze<br />
(lambda (n m) ;; n and m must be odd<br />
(if (not (and (odd? n) (odd? m)))<br />
'error<br />
(let ((cave<br />
(pierce<br />
(cons 1 0)<br />
(pierce<br />
(cons (- n 2) (- m 1))<br />
(make-matrix n m (lambda (i j)<br />
(if (and (odd? i) (odd? j))<br />
(cons i j)<br />
#f))))))<br />
(possible-holes<br />
(concat<br />
(for 0 n (lambda (i)<br />
(concat<br />
(for 0 m (lambda (j)<br />
(if (or (equal? (odd? i) (odd? j))<br />
(= i 0)<br />
(= i (- n 1))<br />
(= j 0)<br />
(= j (- m 1)))<br />
'()<br />
(list (cons i j)))))))))))<br />
(pierce-randomly (shuffle possible-holes) cave)))))<br />
<br />
(define pierce<br />
(lambda (pos cave)<br />
(let ((i (car pos)) (j (cdr pos)))<br />
(matrix-write cave i j pos))))<br />
<br />
(define pierce-randomly<br />
(lambda (possible-holes cave)<br />
(if (null? possible-holes)<br />
cave<br />
(let ((hole (car possible-holes)))<br />
(pierce-randomly (cdr possible-holes)<br />
(try-to-pierce hole cave))))))<br />
<br />
(define try-to-pierce<br />
(lambda (pos cave)<br />
(let ((i (car pos)) (j (cdr pos)))<br />
(let ((ncs (neighboring-cavities pos cave)))<br />
(if (duplicates?<br />
(map (lambda (nc) (matrix-read cave (car nc) (cdr nc))) ncs))<br />
cave<br />
(pierce pos<br />
(foldl (lambda (c nc) (change-cavity c nc pos))<br />
cave<br />
ncs)))))))<br />
<br />
(define change-cavity<br />
(lambda (cave pos new-cavity-id)<br />
(let ((i (car pos)) (j (cdr pos)))<br />
(change-cavity-aux cave pos new-cavity-id (matrix-read cave i j)))))<br />
<br />
(define change-cavity-aux<br />
(lambda (cave pos new-cavity-id old-cavity-id)<br />
(let ((i (car pos)) (j (cdr pos)))<br />
(let ((cavity-id (matrix-read cave i j)))<br />
(if (equal? cavity-id old-cavity-id)<br />
(foldl (lambda (c nc)<br />
(change-cavity-aux c nc new-cavity-id old-cavity-id))<br />
(matrix-write cave i j new-cavity-id)<br />
(neighboring-cavities pos cave))<br />
cave)))))<br />
<br />
(define neighboring-cavities<br />
(lambda (pos cave)<br />
(let ((size (matrix-size cave)))<br />
(let ((n (car size)) (m (cdr size)))<br />
(let ((i (car pos)) (j (cdr pos)))<br />
(append (if (and (> i 0) (matrix-read cave (- i 1) j))<br />
(list (cons (- i 1) j))<br />
'())<br />
(if (and (< i (- n 1)) (matrix-read cave (+ i 1) j))<br />
(list (cons (+ i 1) j))<br />
'())<br />
(if (and (> j 0) (matrix-read cave i (- j 1)))<br />
(list (cons i (- j 1)))<br />
'())<br />
(if (and (< j (- m 1)) (matrix-read cave i (+ j 1)))<br />
(list (cons i (+ j 1)))<br />
'())))))))<br />
<br />
(define cave-to-svg<br />
(lambda (cave)<br />
(let* ((size (matrix-size cave))<br />
(n (car size))<br />
(m (cdr size))<br />
(iota-n (for 0 n (lambda (x) x)))<br />
(iota-m (for 0 m (lambda (x) x)))<br />
(scale 1024)<br />
(extra (quotient (* m scale) 4)))<br />
(list "<svg width=\"1000\" height=\"1400\" "<br />
"viewBox=\"" 0 " " 0 " " (* n scale) " " (+ (* m scale) extra)<br />
"\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n"<br />
(map (lambda (row i)<br />
(map (lambda (x j)<br />
(if x<br />
""<br />
(list "<rect x=\""<br />
(* i scale)<br />
"\" y=\""<br />
(* j scale)<br />
"\" width=\""<br />
scale<br />
"\" height=\""<br />
scale<br />
"\" />\n")))<br />
row<br />
iota-m))<br />
cave<br />
iota-n)<br />
<br />
(list "<rect x=\""<br />
(quotient (* n scale) 8)<br />
"\" y=\""<br />
(+ (* m scale) (quotient extra 4))<br />
"\" width=\""<br />
(quotient (* n scale) 4)<br />
"\" height=\""<br />
(quotient extra 2)<br />
"\" "<br />
"style=\"fill:green\" onclick=\"window.location = 'event:new';\""<br />
" />\n")<br />
<br />
(list "<text x=\""<br />
(quotient (* 2 n scale) 8)<br />
"\" y=\""<br />
(+ (* m scale) (quotient (* 9 extra) 16))<br />
"\" style=\"fill:white\" text-anchor=\"middle\" font-size=\""<br />
(quotient (* m scale) 15)<br />
"\" onclick=\"window.location = 'event:new';\">New</text>\n")<br />
<br />
(list "<rect x=\""<br />
(quotient (* 5 n scale) 8)<br />
"\" y=\""<br />
(+ (* m scale) (quotient extra 4))<br />
"\" width=\""<br />
(quotient (* n scale) 4)<br />
"\" height=\""<br />
(quotient extra 2)<br />
"\" "<br />
"style=\"fill:red\" onclick=\"window.location = 'event:quit';\""<br />
" />\n")<br />
<br />
(list "<text x=\""<br />
(quotient (* 6 n scale) 8)<br />
"\" y=\""<br />
(+ (* m scale) (quotient (* 9 extra) 16))<br />
"\" style=\"fill:white\" text-anchor=\"middle\" font-size=\""<br />
(quotient (* m scale) 15)<br />
"\" onclick=\"window.location = 'event:quit';\">Quit</text>\n")<br />
<br />
"</svg>\n"))))<br />
<br />
(define maze-svg<br />
(lambda (n m)<br />
(set-page<br />
(cave-to-svg (make-maze n m))<br />
(lambda (event)<br />
<br />
(cond ((equal? event "event:new")<br />
(maze-svg n m))<br />
<br />
((equal? event "event:quit")<br />
(edit))))<br />
<br />
#t<br />
"image/svg+xml")))<br />
<br />
(maze-svg size size)<br />
</schemecode></div>WikiSysop