https://gambitscheme.org/wiki/api.php?action=feedcontributions&user=Wbresler&feedformat=atomGambit wiki - User contributions [en]2024-03-28T17:14:50ZUser contributionsMediaWiki 1.35.3https://gambitscheme.org/wiki/index.php?title=How_to_contribute&diff=178How to contribute2008-03-27T22:08:13Z<p>Wbresler: Hyphenated the compound adjective "Gambit-specific".</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 />
** 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 bug while working with Gambit we advise that you report the bug on the<br />
[http://www.iro.umontreal.ca/~gambit/bugzilla/ bug tracking system], which is powered by [http://www.bugzilla.org/ Bugzilla]. You should<br />
do this even if you know how to fix or work around the problem, so that others<br />
can search the bug database to be aware of its existence and to see the status of the bug.<br />
Suggestions for new features can also be submitted to the bug tracking system. The bugs are<br />
prioritized so that the most serious bugs are addressed first.<br />
<br />
The latest sources are available in the [[Source code repository | source code repository]]. It can be accessed using<br />
the [http://www.selenic.com/mercurial/wiki/ Mercurial] distributed version control system. The details are<br />
explained in the [[Contributing Patches to Gambit Source Code | source code repository instructions]]. With Mercurial 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 [http://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.</div>Wbreslerhttps://gambitscheme.org/wiki/index.php?title=Main_Page&diff=177Main Page2008-03-27T22:06:19Z<p>Wbresler: Hyphenated the compound adjective "gcc-specific".</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.2.5):'''<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.2/source/gambc-v4_2_5.tgz Sources],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.2/prebuilt/gambc-v4_2_5-macosx-universal.dmg Universal Mac OS X installer],<br />
[http://www.iro.umontreal.ca/~gambit/download/gambit/v4.2/prebuilt/gambc-v4_2_5-windows-mingw.exe Windows installer]<br />
(for other releases see the [[distributions]]).<br />
<br />
==What's Gambit?==<br />
<br />
Gambit consists of two main programs: '''gsi''', the Gambit Scheme<br />
interpreter, and '''gsc''', the Gambit Scheme compiler. The interpreter is designed to provide<br />
a nice debugging environment whereas the compiler targets fast execution.<br />
The compiler can produce standalone executables or compiled modules which<br />
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).<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 speculative inlining predefined procedures (see the [[benchmarks]] page for a comparison with other Scheme implementations and other languages). Thanks to an efficient implementation of continuations, the thread system is very efficient and can support millions of concurrent threads. The bignum library uses sophisticated algorithms that are in some cases asymptotically faster than those of GMP (GNU Multiple Precision Arithmetic Library).<br />
* '''Reliability.''' Stable releases typically have very few bugs. Bug tracking is done with [http://www.bugzilla.org/ bugzilla]. Gambit-C has been used to develop large-scale real-world software in academic and commercial settings.<br />
<br />
==Getting Gambit==<br />
<br />
Gambit is available as prebuilt and source code [[distributions]]. There are prebuilt distributions for Mac OS X, Microsoft Windows, and other operating systems. The source code distributions must be compiled with a C or C++ compiler. The latest sources are available in the [[Source code repository | source code repository]]. It can be accessed using<br />
the [http://www.selenic.com/mercurial/wiki/ Mercurial] distributed version control system.<br />
<br />
==Documentation==<br />
<br />
[[Documentation]] is available.<br />
<br />
==Support==<br />
<br />
Come chat with us in the #gambit channel on Freenode.<br />
<br />
==Contributing==<br />
<br />
Learn [[how to contribute]] to Gambit's development.<br />
<br />
===Reporting bugs===<br />
<br />
[http://www.iro.umontreal.ca/~gambit/bugzilla/ Gambit bugzilla]<br />
<br />
===Source repository===<br />
<br />
[http://www.iro.umontreal.ca/~gambit/repo/gambit/ Gambit Mercurial repo]<br />
<br />
==License==<br />
<br />
Gambit is Copyright &copy; 1994-2008 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>Wbresler