On Fri 24 Jun 2016 19:00, Zefram writes:
> Andy Wingo wrote:
>> ,opt (let* ((x (list 'a))
>> (y (list 'a)))
>> (list x y))
>> ;; ->
>> (let* ((x (list 'a)) (y x)) (list x y))
>
> Wow, that's a scary level of wrongitude.
Indeed :/
Fixed in git with this patch:
>From ea35
One more variant:
scheme@(guile-user)> (let ((x (list 'a))) (eq? x (list 'a)))
$1 = #t
scheme@(guile-user)> ,opt (let ((x (list 'a))) (eq? x (list 'a)))
$2 = (let ((x (list 'a))) (eq? x x))
-zefram
Andy Wingo wrote:
> ,opt (let* ((x (list 'a))
> (y (list 'a)))
> (list x y))
> ;; ->
> (let* ((x (list 'a)) (y x)) (list x y))
Wow, that's a scary level of wrongitude. It's specific to let* (or
equivalent nested let forms), but really easy to trigger within that:
scheme@(
On Fri 24 Jun 2016 18:29, Andy Wingo writes:
> On Fri 13 Nov 2015 08:57, Zefram writes:
>
>> With guile 2.0.11:
>>
>> scheme@(guile-user)> (use-modules (ice-9 control))
>> scheme@(guile-user)> (list 'a (let/ec ae (list 'b (let/ec be (be 2)
>> $1 = (a (b 2))
>> scheme@(guile-user)> (list 'a (
On Fri 13 Nov 2015 08:57, Zefram writes:
> With guile 2.0.11:
>
> scheme@(guile-user)> (use-modules (ice-9 control))
> scheme@(guile-user)> (list 'a (let/ec ae (list 'b (let/ec be (be 2)
> $1 = (a (b 2))
> scheme@(guile-user)> (list 'a (let/ec ae (list 'b (let/ec be (ae 2)
> $2 = (a (b 2)
With guile 2.0.11:
scheme@(guile-user)> (use-modules (ice-9 control))
scheme@(guile-user)> (list 'a (let/ec ae (list 'b (let/ec be (be 2)
$1 = (a (b 2))
scheme@(guile-user)> (list 'a (let/ec ae (list 'b (let/ec be (ae 2)
$2 = (a (b 2))
scheme@(guile-user)> (list 'a (let/ec ae (list 'b (ae