GNU bug report logs - #38263
Bug in srfi-11 (?)

Previous Next

Package: guile;

Reported by: Tim Gesthuizen <tim.gesthuizen <at> yahoo.de>

Date: Mon, 18 Nov 2019 20:02:02 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Mark H Weaver <mhw <at> netris.org>
To: Tim Gesthuizen <tim.gesthuizen <at> yahoo.de>
Cc: 38263 <at> debbugs.gnu.org
Subject: bug#38263: Bug in srfi-11
Date: Sun, 24 Nov 2019 03:44:28 -0500
Hi Tim,

Tim Gesthuizen <tim.gesthuizen <at> yahoo.de> wrote:

> Hi,
> I had a look today into the srfi-11 specificiation. It requires that the
> variables are bound to fresh locations so let me rephrase the bug:
>
>> (let ((a 1)
>>       (b (let-values (((a . b) (values 2 3))
>>                       (c (begin (set! a 9) 4)))
>>            (list a b c))))
>>   (cons a b))
>
> Evaluates to `(1 9 (3) (4))` while it should evaluate to
> `(9 2 (3) (4))`.

I agree that this example indicates a bug in Guile's 'let-values'
implementation (which was written by Andy Wingo in August 2009), but I
disagree that it should evaluate to '(9 2 (3) (4)).  I think that your
example should raise an error, because at the point where (set! a 9) is
found, neither of the 'a' variables are in scope.

     Regards,
       Mark




This bug report was last modified 5 years and 209 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.