Dear Chicken users,

I just tagged release 2.8 of the "numbers" egg.  Everyone using numbers
is advised to upgrade to this version, and authors of eggs which depend
on the numbers egg are advised to consider changing their eggs'
dependencies to make numbers 2.8 a minimum accepted version.

This is not a breakthrough release in terms of features, but it includes
many bugfixes (too many to mention here) and other fixes regarding
strict standard-correctness so it should be a lot more stable now.

There are a few new features since 2.7 that are worth mentioning, though:

- There's now (limited!) support for compilation of code with "extended"
   number literals.  This means you can now write down complex numbers,
   big numbers and rational numbers in your code, as-is, and it will
   compile properly (before, this worked under limited circumstances
   in the interpreter only).
  The caveat is that this code will not be cross-compilable, and you
   will need to add "-X numbers-syntax" to your invocation of csc in
   order to extend the reader with the extended number parser.
  For this reason, it is advised to use this with caution, and I'd
   like to urge people not to use it in eggs intended for general use.
- The exact-integer-sqrt and exact-integer-nth-root functions have
   been added.  The former is from r7rs, the latter is a generalized
   version of it for other exponents than 2.
- The test suite has been expanded considerably.
- There's now a "types database" which gets installed along with the
   library on Chicken versions which support specialization.  This should
   improve performance considerably.  Programs using only flonum
   operations should perform identically with and without numbers, if
   specialization is enabled via -specialize, which is also implied by
   optimization levels 3 and higher.

Of course this version of numbers works with official Chicken releases,
but it will work best with Chicken 4.7.4 or later.  This is because a
few of the improvements and fixes require core support.  These changes
are mostly related to the reader, affecting number literals, so if
you're using string->number everywhere you should notice no functional
differences between 4.7.0 and 4.7.4.  For these reasons, obviously the
testsuite will not pass 100% on 4.7.0.  Also, the specialization
"types database" only works on 4.7.4 because 4.7.0 lacks support for
specialization.

Finally I'd like to thank Felix Winkelmann for kindly providing an
initial specialization database, John Cowan for explaining many points
in the R7RS draft that were not clear to me as well as urging me to make
this release already, and finally Bill Schottstaedt for pointing me
towards the awe-inspiring testsuite of s7, his Scheme implementation,
which helped greatly in tracking down many annoying bugs.

Cheers,
Peter
-- 
http://sjamaan.ath.cx
--
"The process of preparing programs for a digital computer
 is especially attractive, not only because it can be economically
 and scientifically rewarding, but also because it can be an aesthetic
 experience much like composing poetry or music."
                                                        -- Donald Knuth

_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to