[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

update: can you pass the SRFI-56 challenge?

This page is part of the web mail archives of SRFI 56 from before July 7th, 2015. The new archives for SRFI 56 contain all messages, not just those from before July 7th, 2015.


Sorry for the long delay.  There is a new version which, pending
update on srfi.schemers.org, can be found at:


Two minor changes have been made to the specification.  The places
which said "an error is signalled" have been changed to "it is an
error" for simplicity and consistency with the R5RS numeric and I/O
procedures on which they are based.  Also the comment about optionally
signalling an error on invalid character sequences has been removed.
It was beyond the scope of this SRFI, and others are working on
character I/O and encoding SRFI's now.

The reference implementation has been completed, and the test suite
extended.  The two together now form a very exacting stress test of an
implementation's numeric capabilities.  Although the code is fully
portable and has been tested on a wide variety of implementations,
some Schemes lack bignums, and many Schemes fail the floating point
tests.  Currently only three implementations pass all tests.  The
implementations ranked in order:

Chicken 2.0 (with numbers egg):  All pass!
KSI 3.4.2: All pass!
MzScheme (v200 or v299): All pass!
Petite Chez 6.0a: 6 failures
Gambit4b14: 8 failures
Stklos 0.55: 14 failures
RScheme 35 failures

Implementations which can't complete the test suite:

Gauche 0.8.5: passes all tests until first float64 then errors
  "number.c", line 1875 (iexpt10): Assertion failed: e < IEXPT10_TABLESIZ
MIT-Scheme 7.7.90: passes all tests until first float64 then errors
  Floating-point overflow signalled by flonum-denormalize.
Scheme48 1.3: passes most tests, fails towards end of float64 tests
  Error: I'm bored.
Guile 1.6.7: passes all until float64 then crashes
  ERROR: In procedure string->number: Argument out of range: 324
SISC 1.11.2: passes most until mid-float32 then hangs
Bigloo 2.6e: need to comment out bignums, hangs on float64 tests

MIT-Scheme can be told to ignore the error type that arises and then
completes the test suite with only 8 failures.

Scheme48 has been reported to complete the suite with only a few
errors in the upcoming 1.4 release.

I hear the Guilers are working on extending their numeric tower and
hope to be able to represent the number of days in a year soon :)