Upstream helped identify the problem and solution:
http://lists.gnu.org/archive/html/scm-discuss/2017-10/msg00009.html
I've tested and the cherry-picked patch fixes the test problem on a 32-bit
x86 virtual machine; I have a 5f2-2 with the patch in mentors.d.n.
--bryan
On Sun, 3 Sep 2017, Adrian Bunk wrote:
Source: scm
Version: 5f2-1
Severity: serious
https://buildd.debian.org/status/package.php?p=scm&suite=sid
...
(float-print-test #t) ==> #t
(mult-float-print-test #t) ==> #t
(mult-float-print-test #t) ==> #t
(mult-float-print-test #t) ==> #t
(mult-float-print-test #t) ==> #t
(mult-float-print-test #t) ==> #t
(#<CLOSURE float-rw-range-test "r4rstest.scm": () (#@define ((success #t)) (do ((cnt -323 (+ 1 cnt))) ((> cnt
308) success) (let* ((estr (string-append "1.e" (number->string cnt))) (num (string->number estr)) (str
(number->string num))) (cond ((or (>= (string-length str) 10) (not (equal? (string->number str) num))) (set! success #f)
(for-each write (list estr num str (string->number str))))))))>) ==>
;ERROR: "r4rstest.scm": round-quotient: Wrong type in arg1 (0 . 0)
; in expression: (#@number->string #@num)
; in scope:
; num
; estr
; (cnt . #@do)
; (success . #@define)
; () procedure float-rw-range-test
; (log2 slow-frexp float-precision float-print-test mult-float-print-test
float-rw-range-test . #@define)
; (f0.0 f0.5 f1.0 f2.0 . #@let)
; () procedure test-inexact-printing
; defined by load: "r4rstest.scm"
;STACK TRACE
1; (#@let* ((estr (#@string-append "1.e" (#@number->string #@cnt) ...
2; (#@do ((cnt -323 (#@+ 1 #@cnt))) ((#@> #@cnt 308) success) (# ...
3; (#@let ((res (#@if (#@procedure? #@0+1) (#@apply #@0+1 #@0-2) ...
4; (#@let ((have-inexacts? (#@and (#@string->number "0.0") (#@ine ...
...
; program args: ("./scm" "-fr4rstest.scm" "-e(test-sc4)(test-cont)(test-delay)(gc)" "-e"
"(or (null? errs) (quit 1))")
Makefile:555: recipe for target 'check' failed
make[1]: *** [check] Error 1