I have a patch that fixes this, will open a ticket later today.

> On 21 Jul 2017, at 10:07, James Reeves <ja...@booleanknot.com> wrote:
> 
> I can also confirm, tested on Clojure 1.8.0. The macro doesn't seem to take 
> long at all; it's the expanded code that takes a significant time to compile.
> 
> On 21 July 2017 at 10:56, Peter Hull <peterhul...@gmail.com 
> <mailto:peterhul...@gmail.com>> wrote:
> On Friday, 21 July 2017 00:35:00 UTC+1, Milt Reder wrote:
> Here's a simplified example:
> 
> I can confirm that pasting that defn into a CIDER repl does take a long time 
> before the prompt comes back. I tried doing a "macro expand all" and it was 
> pretty much instantaneous. The resulting expansion is quite long but not 
> unreasonable (see below). Beyond that, I'm not sure how to analyse what 
> Clojure's doing or time it. I'm using 1.9 alpha by the way.
> Pete
> 
> (def wat
>  (fn*
>    ([& p__9335]
>      (let*
>        [map__9336
>         p__9335
>         map__9336
>         (if (seq? map__9336)
>           (. clojure.lang.PersistentHashMap create (seq map__9336))
>           map__9336)
>         a
>         (get map__9336 :a)
>         b
>         (get map__9336 :b)
>         c
>         (get map__9336 :c)
>         d
>         (get map__9336 :d)
>         e
>         (get map__9336 :e)
>         f
>         (get map__9336 :f)
>         map-0
>         (get map__9336 :map-0)
>         map-1
>         (get map__9336 :map-1)
>         map-2
>         (get map__9336 :map-2)]
>        (let*
>          [G__9337
>           "foo"
>           G__9337
>           (if a (str G__9337 a) G__9337)
>           G__9337
>           (if b (str G__9337 b) G__9337)
>           G__9337
>           (if c (str G__9337 c) G__9337)
>           G__9337
>           (if d (str G__9337 d) G__9337)
>           G__9337
>           (if e (str G__9337 e) G__9337)
>           G__9337
>           (if f (str G__9337 f) G__9337)
>           G__9337
>           (if map-0
>             (let*
>               [G__9338
>                G__9337
>                G__9338
>                (if (:a map-0) (str G__9338 (:a map-0)) G__9338)
>                G__9338
>                (if (:b map-0) (str G__9338 (:b map-0)) G__9338)
>                G__9338
>                (if (:c map-0) (str G__9338 (:c map-0)) G__9338)]
>               (if (:d map-0) (str G__9338 (:d map-0)) G__9338))
>             G__9337)
>           G__9337
>           (if map-1
>             (let*
>               [G__9339
>                G__9337
>                G__9339
>                (if (:a map-1) (str G__9339 (:a map-1)) G__9339)
>                G__9339
>                (if (:b map-1) (str G__9339 (:b map-1)) G__9339)
>                G__9339
>                (if (:c map-1) (str G__9339 (:c map-1)) G__9339)]
>               (if (:d map-1) (str G__9339 (:d map-1)) G__9339))
>             G__9337)]
>          (if map-2
>            (let*
>              [G__9340
>               G__9337
>               G__9340
>               (if (:a map-2) (str G__9340 (:a map-2)) G__9340)
>               G__9340
>               (if (:b map-2) (str G__9340 (:b map-2)) G__9340)
>               G__9340
>               (if (:c map-2) (str G__9340 (:c map-2)) G__9340)]
>              (if (:d map-2) (str G__9340 (:d map-2)) G__9340))
>            G__9337))))))
> 
> 
> 
> --
> 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 
> <mailto: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 
> <mailto:clojure%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en 
> <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 
> <mailto:clojure+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.
> 
> 
> 
> --
> James Reeves
> booleanknot.com <http://booleanknot.com/>
> 
> --
> 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 
> <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 
> <mailto:clojure+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
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/d/optout.

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to