guile-user
[Top][All Lists]
Advanced

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

Re: SRFI-64 implementation for Guile 2.0


From: Sunjoong Lee
Subject: Re: SRFI-64 implementation for Guile 2.0
Date: Mon, 23 Apr 2012 15:07:05 +0900

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 <address@hidden>
Hello,

Sunjoong Lee <address@hidden> 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(?).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]