[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