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