[gambit-list] Gambit-C 4.0 beta 22
Marc Feeley
feeley at iro.umontreal.ca
Fri Apr 6 09:58:47 EDT 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Gambit-C 4.0 beta 22 is now available. The source tarball is here:
http://www.iro.umontreal.ca/~gambit/download/gambit/4.0/source/
gambc-4.0b22.tar.gz
Here are the highlights of this release:
- The compiler did not check for interrupts and stack-overflows
at all the right places. This caused a failure in
"make check". This has been fixed.
- The compiler generates better code for the "case" construct.
A C "switch" statement is used when there are enough
cases of a given type (i.e. fixnum, symbol, etc) to justify
it. For example, the code below now runs over 3 times faster.
(declare (standard-bindings) (block) (fixnum) (not safe))
(define (prime? x)
(case x
((2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
53 59 61 67 71 73 79 83 89 97 101 103 107
109 113 127 131 137 139 149 151 157 163
167 173 179 181 191 193 197 199)
#t)
(else
(if (< x 200) #f 'maybe))))
(define (go x n)
(let loop ((i n) (res #f))
(if (> i 0)
(loop (- i 1) (prime? x))
res)))
(time (go 12 100000000))
- Several changes have been made to accomodate Snow v1.1.0 .
All standard special forms now come with a "##" alias, i.e.
(##define n 5) is equivalent to (define n 5). This makes
it possible to redefine "define" (and other special forms)
to do some special processing, and expand into a ##define .
- The syntax-case implementation has been upgraded to the
latest version of portable syntax-case (version 7.3). The
integration with Gambit has been improved. It is now
possible to use Gambit specific special forms, such as
"declare", "namespace" and "c-declare", when syntax-case
is active. You can also make changes to the
syntax-case implementation (misc/psyntax73.ss) and
expand it to get a new syntax-case.scm .
- When generating a dynamically loadable file, the compiler
deletes the intermediate C file that was generated. Use
the new "-keep-c" compiler option to keep the C file.
- The debugger now correctly handles "leap" (the ,l command).
- A bug in the bignum division algorithm has been fixed.
- A bug in the expansion of tables has been fixed.
Marc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)
iD8DBQFGFlIX//V9Zc2T/v4RAswWAKCoPAQr6W2KLTMR+a6gh0es73yyeACgg89/
QUBek7KTsFACx+OPLgroZws=
=f8hB
-----END PGP SIGNATURE-----
More information about the Gambit-list
mailing list