guile-devel
[Top][All Lists]
Advanced

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

Re: guile 2.1.7 skips while condition


From: Andy Wingo
Subject: Re: guile 2.1.7 skips while condition
Date: Mon, 13 Mar 2017 21:35:37 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

On Mon 13 Mar 2017 18:09, Arne Babenhauserheide <address@hidden> writes:

> Arne Babenhauserheide writes:
>
>> Andy Wingo <address@hidden> writes:
>>
>>> On Thu 09 Mar 2017 15:31, Arne Babenhauserheide <address@hidden> writes:
>>>
>>>> However I did not manage to reproduce it in a small example, therefore I
>>>> pastebinned the whole file:
>>>>
>>>> script: https://paste.pound-python.org/show/0IlalBrxVH7KHjW83ayu/
>>>> input: https://paste.pound-python.org/show/ZxQsazFfwVrvz9f4SU4f/
>>>
>>> Sounds like you found a nice bug.  This is a big script though; have you
>>> tried incrementally removing parts of it to winnow it down?  That is
>>> definitely the first step to fixing the bug :)
>>
>> I tried building a minimal working example, but not removing stuff bit
>> by bit (due to time constraints on free creative time). I would hope
>> that it shouldn’t be too complex, but cannot promise I’d get it done
>> within the next few weeks.
>
> Here’s a shortened version:

Or even smaller:

(define (t)
  (let ((n #t))
    (let lp ()
      (when n
        (call-with-prompt 'foo
          (lambda ()
            (set! n #f)
            (abort-to-prompt 'foo))
          (lambda (k)
            (lp)))))))

Guile is thinking that the n is always true because it doesn't
understand that aborting back to the prompt means that possible all
mutable objects are mutated.

Andy



reply via email to

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