[gambit-list] Please test before coming release

Marc Feeley feeley at iro.umontreal.ca
Tue Dec 28 08:26:04 EST 2021


Hello.  I have been preparing the next release of Gambit and the work is close to be done.  As far as I can see most of what remains to be done are additional changes to the documentation, mostly concerning modules.  I will concentrate on that these next few days.

I would greatly appreciate some external testing of commit 5c8e698ed97ab0cefc1938214a481e666c76349d . Of particular importance is trying various combinations of configure options on different operating systems and C compilers.

Many things have been added since v4.9.3 which was released in 2019.  Here are the main changes:

- Better R7RS conformance (not quite 100% conformance but close)
- Performance enhancements, in particular a new C trampoline that improves the speed of interpretation and intermodule jumps
- A module system which supports “primitive” modules and R7RS modules
- Decentralized package distribution and installation based on git (try: gsi github.com/gambit/hello/demo)
- A growing set of builtin modules including popular SRFIs
- A production quality JavaScript backend with “infix” FFI
- A web version of the Gambit interpreter (currently available on try.scheme.org)
- A more thorough “make check" that now verifies that module exports are complete and consistent
- A new website (temporarily available as staging.gambitscheme.org)
- The “Forensics” system to track the performance over the commit history (see forensics.gambitscheme.org)

Notice that the build procedure is still basically “git clone …;./configure;make”.  There is no need for an explicit “make modules” as this is part of the normal build procedure.  If you want to avoid building the modules you can “make core”.  Moreover the JavaScript backend is built by default (this can be disabled with a “--enable-targets=” configure option).  The JavaScript backend supports the gsc -exe option to create a script that uses nodejs, or a .html file that can be viewed with a browser, for example:

    $ cat hello.scm
    (pp (list 'hello (expt 2 200))) (read)
    $ gsc -target js -exe -o hello.exe hello.scm
    $ ./hello.exe
    (hello 1606938044258990275541962092341162602522202993782792835301376)
    $ gsc -target js -exe -o hello.html hello.scm
    $ open hello.html

Your feedback is welcome!

Marc




More information about the Gambit-list mailing list