Hi, Ludo’; A srfi-64-test.scm file is a test suite for the SRFI 64 and you can get it from http://srfi.schemers.org/srfi-64/srfi-64-test.scm .
51 expected passes and 2 expected failures are normal: $ guile -L /home/sunjoong/guile/site --use-srfi=64 srfi-64-test.scm %%%% Starting test SRFI 64 - Meta-Test Suite (Writing full log to "SRFI 64 - Meta-Test Suite.log") # of expected passes 51 # of expected failures 2 In above example, /home/sunjoong/guile/site directory is where srfi directory be in residence and srfi directory contains SRFI 64 implementation. If it display unexpected(!!) failure, something's wrong. 2012/4/22 Ludovic Courtès <l...@gnu.org> > Hello, > > Sunjoong Lee <sunjo...@gmail.com> skribis: > > > Your implementation fails srfi-64-test.scm, a test suite for the SRFI 64. > > Oh, which ones? This is essentially the reference implementation, so it > shouldn’t fail. But perhaps my copy of srfi-64.scm is older than > srfi-64-test.scm? > > The reference implementation has a bug at test-error macro and it cause syntax error like this: $ guile -L /home/sunjoong/guile/site --use-srfi=64 srfi-64-test.scm ;;; ERROR: Syntax error: ;;; /home/sunjoong/guile/test/srfi-64-test.scm:186:4: source expression failed to match any pattern in form (%test-error #t (vector-ref (quote #(1 2)) 9)) %%%% Starting test SRFI 64 - Meta-Test Suite (Writing full log to "SRFI 64 - Meta-Test Suite.log") I've noticed that and sent a patch to Per. Even after fixing this bug, there are some problems; First, test-error use %test-error but %test-error sets result-kind to skip. So, the reference implementation fails the test suite for the SRFI 64 whenever not on kawa or mzscheme. Though it fails srfi-64-test.scm, you may use test-error macro after fixing above a bug but... Second, test-apply uses test-with-runner but test-with-runner defined after test-apply. Third, test-group is not exported. At last, you're using make-stack, a Guile's debugging facility. I think it makes a problem more complex; $ guile -L /home/sunjoong/guile/site --use-srfi=64 srfi-64-test.scm %%%% Starting test SRFI 64 - Meta-Test Suite (Writing full log to "SRFI 64 - Meta-Test Suite.log") In ice-9/boot-9.scm: 149: 18 [catch #t #<catch-closure 8674460> ...] 157: 17 [#<procedure 863d8c0 ()>] In unknown file: ?: 16 [catch-closure] In ice-9/boot-9.scm: 63: 15 [call-with-prompt prompt0 ...] In ice-9/eval.scm: 407: 14 [eval # #] In ice-9/boot-9.scm: 2111: 13 [save-module-excursion #<procedure 8c45840 at ice-9/boot-9.scm:3646:3 ()>] 3653: 12 [#<procedure 8c45840 at ice-9/boot-9.scm:3646:3 ()>] In unknown file: ?: 11 [load-compiled/vm "/home/sunjoong/.cache/guile/ccache/2.0-LE-4-2.0/home/sunjoong/guile/test/srfi-64-test.scm.go"] In /home/sunjoong/guile/test/srfi-64-test.scm: 147: 10 [#<procedure 90dd820 ()>] In ice-9/boot-9.scm: 149: 9 [catch #t ...] 157: 8 [#<procedure 8ad41b8 ()>] In /home/sunjoong/guile/test/srfi-64-test.scm: 90: 7 [triv-runner #<procedure 91247e0 at /home/sunjoong/guile/test/srfi-64-test.scm:150:14 ()>] 150: 6 [#<procedure 91247e0 at /home/sunjoong/guile/test/srfi-64-test.scm:150:14 ()>] In ice-9/boot-9.scm: 149: 5 [catch #t ...] 157: 4 [#<procedure 8ad4190 ()>] In /home/sunjoong/guile/test/srfi-64-test.scm: 145: 3 [choke] In ice-9/boot-9.scm: 102: 2 [#<procedure 90981a0 at ice-9/boot-9.scm:97:6 (thrown-k . args)> out-of-range ...] In /home/sunjoong/guile/test/srfi-64-test.scm: 150: 1 [#<procedure 9124800 at /home/sunjoong/guile/test/srfi-64-test.scm:150:25 (key . args)> out-of-range ...] In unknown file: ?: 0 [make-stack #t] FAIL 2.1.1. Baseline test; PASS with no optional args FAIL 2.1.2. Baseline test; FAIL with no optional args FAIL 2.1.3. PASS with a test name and error type In ice-9/boot-9.scm: 149: 18 [catch #t #<catch-closure 8674460> ...] 157: 17 [#<procedure 863d8c0 ()>] In unknown file: ?: 16 [catch-closure] In ice-9/boot-9.scm: 63: 15 [call-with-prompt prompt0 ...] In ice-9/eval.scm: 407: 14 [eval # #] In ice-9/boot-9.scm: 2111: 13 [save-module-excursion #<procedure 8c45840 at ice-9/boot-9.scm:3646:3 ()>] 3653: 12 [#<procedure 8c45840 at ice-9/boot-9.scm:3646:3 ()>] In unknown file: ?: 11 [load-compiled/vm "/home/sunjoong/.cache/guile/ccache/2.0-LE-4-2.0/home/sunjoong/guile/test/srfi-64-test.scm.go"] In /home/sunjoong/guile/test/srfi-64-test.scm: 607: 10 [#<procedure 90dd820 ()>] In ice-9/boot-9.scm: 149: 9 [catch #t ...] 157: 8 [#<procedure 9668280 ()>] In /home/sunjoong/guile/test/srfi-64-test.scm: 90: 7 [triv-runner #<procedure 8c54f00 at /home/sunjoong/guile/test/srfi-64-test.scm:610:13 ()>] 613: 6 [#<procedure 8c54f00 at /home/sunjoong/guile/test/srfi-64-test.scm:610:13 ()>] In ice-9/boot-9.scm: 149: 5 [catch #t ...] 157: 4 [#<procedure 9668230 ()>] In /home/sunjoong/guile/test/srfi-64-test.scm: 145: 3 [choke] In ice-9/boot-9.scm: 102: 2 [#<procedure 92b9660 at ice-9/boot-9.scm:97:6 (thrown-k . args)> out-of-range ...] In /home/sunjoong/guile/test/srfi-64-test.scm: 613: 1 [#<procedure 8c54fb0 at /home/sunjoong/guile/test/srfi-64-test.scm:613:15 (key . args)> out-of-range ...] In unknown file: ?: 0 [make-stack #t] # of expected passes 50 # of expected failures 2 # of unexpected failures 3 In above example, 3 unexpected failures are because of %test-error, I think. But there are so many backtraces(?).