I have had a similar thing happen with the core.match/match macro - a lot
of examples simply break when put inside a go block. I thought it might
have been something to do with aot compilation but I'm not sure.

Adam
On 18 Feb 2014 05:33, "t x" <txrev...@gmail.com> wrote:

> Building on Michal's example, here is a "more minimal example" --
> which also "fails" in Clojure:
>
>
> (ns test
>   (:require [clojure.core.async :as async]))
>
>
> (defmacro silly [obj pat1 body1 other]
>   `(case ~obj
>      ~pat1 ~body1
>      ~other))
>
> (let []
>
>   (def out (java.io.StringWriter.))
>
>   (defn log [& args]
>     (doseq [arg args]
>       (.write out (str arg))
>       (.write out "\n")))
>
>
>   (async/<!! (async/go
>               (silly :dog
>                      :dog (log "with-go: woof woof")
>                      (log "with-go: other"))))
>
>   (str out))
>
> On Mon, Feb 17, 2014 at 5:14 PM, t x <txrev...@gmail.com> wrote:
> > Hi Michal,
> >
> >   Does this mean:
> >
> >   (a) the reported behavior is normal (and my bug report is invalid) or
> >
> >   (b) this error happens in both cljs + clojure ?
> >
> > Thanks!
> >
> > On Mon, Feb 17, 2014 at 4:33 PM, Michał Marczyk
> > <michal.marc...@gmail.com> wrote:
> >> Just to be clear, the above is a version of t x's bug-report modified
> >> to use a StringWriter instead of console.log.
> >>
> >> Cheers,
> >> Michał
> >>
> >>
> >> On 18 February 2014 01:25, Michał Marczyk <michal.marc...@gmail.com>
> wrote:
> >>> The same thing happens in Clojure:
> >>>
> >>> (defmacro silly [object pat1 body1 pat2 body2]
> >>>   `(case (:tag ~object)
> >>>      ~pat1 ~body1
> >>>      ~body2))
> >>>
> >>> (def out (java.io.StringWriter.))
> >>>
> >>> (defn log [& args]
> >>>   (doseq [arg args]
> >>>     (.write out (str arg))
> >>>     (.write out "\n")))
> >>>
> >>> (defn init []
> >>>   (silly {:tag :dog}
> >>>          :dog (log "without-go: woof woof")
> >>>          cat (log "without-go: unrecognized"))
> >>>   (async/go
> >>>    (silly {:tag :dog}
> >>>           :dog (log "with-go: woof woof")
> >>>           cat (log "with-go: unrecognized"))))
> >>>
> >>> (init)
> >>>
> >>> (print (str out))
> >>> without-go: woof woof
> >>> with-go: woof woof
> >>> with-go: unrecognized
> >>> nil
> >>>
> >>> Cheers,
> >>> Michał
> >>>
> >>>
> >>> On 18 February 2014 01:01, t x <txrev...@gmail.com> wrote:
> >>>> Thanks for verifying!
> >>>>
> >>>> @tbaldridge: can you enlighten us on if:
> >>>>
> >>>>   * I'm doing something stupid or
> >>>>   * this is an actual bug in cljs/core.async?
> >>>>
> >>>> Thanks!
> >>>>
> >>>> On Mon, Feb 17, 2014 at 2:10 PM, Manuel Paccagnella
> >>>> <manuel.paccagne...@gmail.com> wrote:
> >>>>> Tested on Linux x64, Chromium 31.0.1650.63 and Firefox 26.0. Same
> behaviour
> >>>>> that you have seen. However, I haven't looked at the code yet.
> >>>>>
> >>>>> Il giorno lunedì 17 febbraio 2014 20:34:22 UTC+1, t x ha scritto:
> >>>>>>
> >>>>>> Can anyone verify whether this bug is reproducible?
> >>>>>>
> >>>>>> On Mon, Feb 17, 2014 at 12:28 AM, t x <txre...@gmail.com> wrote:
> >>>>>> > Hi,
> >>>>>> >
> >>>>>> >   repo: https://github.com/txrev319/bug-report
> >>>>>> >
> >>>>>> >   I have a really weird bug where:
> >>>>>> >
> >>>>>> >   * (my-macro ...) ==> everything works
> >>>>>> >
> >>>>>> >   * (async/go (my-macro ...)) ==> something weird happens
> >>>>>> >
> >>>>>> >
> >>>>>> >   A minimal failure case is documented at:
> >>>>>> > https://github.com/txrev319/bug-report/blob/master/src/app.cljx
> >>>>>> >
> >>>>>> >   It depends on the macro defined in:
> >>>>>> >
> https://github.com/txrev319/bug-report/blob/master/src/macros.cljx
> >>>>>> >
> >>>>>> >   The bug can be replicated by following the instructions at:
> >>>>>> > https://github.com/txrev319/bug-report/blob/master/README.md
> >>>>>> >
> >>>>>> >   I *believe* I have included everything required to replicate the
> >>>>>> > bug. If I am missing anything, please let me know.
> >>>>>> >
> >>>>>> >
> >>>>>> > Extra info:
> >>>>>> >
> >>>>>> > $ lein --version
> >>>>>> > Leiningen 2.2.0 on Java 1.7.0_45 Java HotSpot(TM) 64-Bit Server VM
> >>>>>> >
> >>>>>> > I'm on 64-bit OSX.
> >>>>>> >
> >>>>>> >
> >>>>>> > Thanks!
> >>>>>
> >>>>> --
> >>>>> 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.
> >>>>
> >>>> --
> >>>> 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.
> >>
> >> --
> >> 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.
>
> --
> 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.
>

-- 
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