It's a nasty bug, seems like a local symbol scope issue.  I will take a 
look at it.  Thanks for the report.

On Thursday, August 1, 2013 6:05:59 AM UTC-4, Kemar wrote:
>
> There seems to be an issue with the rebinding of loop-bindings using 
> loop/recur in go blocks,
> specifically when you are just changing the order of the original bindings 
> in a recur call.
>
> Take this snippet for example:
>
>    
> (require '[clojure.core.async :refer [go timeout]])
>> (go (loop [a :black, b :white]  
>>       (println a b)
>>       (<! (timeout 1000))
>>       (recur b a)))
>>
>
> Instead of repeatedly printing
>
> :black :white
>> :white :black
>> :black :white 
>> :white :black
>> (...)
>>
>
>  it actually prints
>
> :black :white
>> :white :white
>> :white :white
>> :white :white
>> (...)
>>
>  
> Note however, that 
>  
>
>> (require '[clojure.core.async :refer [go timeout]])
>> (go (loop [a :black, b :white]  
>>       (println a b)
>>       (<! (timeout 1000))
>>       (recur (identity b) (identity a))))
>>
>
> works correctly.
>
> Any ideas as to what's causing this?
>
>
> Cheers,
> Kevin
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to