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

Re: Testing the reference implementation

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



Bradley Lucier <lucier@xxxxxxxxxxxxxxx> writes:

> First of all, the first argument here is supposed to be +0+1i; why  
> it's printing as +0+0i I don't know.
>
> Secondly, I don't know why the result of the expression does not  
> compare eq? to error-object; ("ERROR")  shouldn't be passed to print- 
> number in any case.  I get the same results when I test it with equal?.

The reason is that you're assuming a semantics for
WITH-EXCEPTION-HANDLER which the SRFI 34 version of it doesn't have:
It doesn't throw back to the call of WITH-EXCEPTION-HANDLER when an
exception occurs.  Consequently, you get ("ERROR") objects thrown deep
into the innards of the reference implementation, and that makes it
gag, and, subsequently, less than articulate.

You probably want something like:

   (let ((result
            (guard
             (exc
              (else error-object))
             (operation first-arg second-arg))))
     ...)

in its place. 

Having said that, your test program spotted a few more typos after
this change---thanks for that!  I've put an updated reference
implementation up at the SRFI site which fixes at least the most
obvious ones.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla