Dear CHICKEN users, I just released version 3.0 of the "numbers" egg.
As some of you may know I've been busy these past few weeks on making this egg more suitable for a possible integration into the core system. Whether that will become reality remains to be seen, but the big refactoring I performed to make it more compatible with the way things work in core meant I had to take a closer look at the egg. The performance of various operations (notably number reading and writing, division and ratnum operations) has been radically improved, and is now competitive with many common Scheme implementations which are not aggressively optimised for number-crunching. If you're currently relying on numbers in a performance-critical way, I would really appreciate if you could try out numbers 3.0, and let me know how the new version performs in your application. Beware of breakage, as is only to be expected with such a huge change. There is one backwards incompatible change that I know of: bitwise operations do not accept inexact integral numbers anymore. This means you _must_ pass a fixnum or a bignum (a simple workaround is to wrap every call in a inexact->exact). If you find any other breakage, let me know and I'll fix it. Now, a lot remains to be done to get the full numeric tower as performant as, say, Gambit or Racket. Without integration into core, some options for optimisation are simply inaccessible to us (most notably type specializations to inline C calls). Unfortunately, integration into core will most likely imply a (slight?) performance degradation for code that only uses fixnums or flonums. The exact impact can only be measured by actually trying it out, and testing once everything has been done. For those who are interested in the details, see the NOTES and TODO files in the numbers repository. Cheers, Peter -- http://www.more-magic.net _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users