FWIW: I tried to reproduce it here: https://github.com/lvh/nestedrepro
but I was unable to cause these sorts of errors using try/catch and do.

On Sat, Oct 6, 2018 at 6:17 PM Laurens Van Houtven <_...@lvh.io> wrote:

> I'm hitting CLJ-1852 [0] (Clojure-generated class names length exceed
> file-system limit) with a large core.match expression. I have verified that
> it is the number of clauses in core.match: compilation works as soon as I
> reduce it, and looking at `target/` it is actually producing very long
> filenames a la:
>
>
> 'iddqd$xyzzy$fn__19779$fn__19788$fn__19789$fn__19790$fn__19793$fn__19794$fn__19795$fn__19796$fn__19797$fn__19814$fn__19815$fn__19816$fn__19819$fn__19820$fn__19823$fn__19824$fn__19825$fn__19826.class'
>
> However, I don't quite understand _why_ core.match produces such long
> filenames. The error and filename suggest the problem is deeply nested
> fn*s. Judging by macroexpand-all it's just a ton of let and try/catch which
> I'd expect don't compile to fn*s internally (I'm aware of the equivalent
> between let and lambda but I expect that's not really how it's
> implemented). I am trying to understand why it's producing all of these
> nested fns as compiled classes to see if I can somehow work around this
> (without rewriting the function completely, hopefully!).
>
> I've found a similar reproducer here[1]. Unfortunately it doesn't do a
> better job explaining _why_ the compiler emits that. Any tools for helping
> me understand the compiler would be helpful. I'm already quite comfortable
> with JVM bytecode and asm. Is the best way to figure this out just to read
> Compiler.java?
>
>
> [0]: https://dev.clojure.org/jira/browse/CLJ-1852
> [1]: https://github.com/simonpure/clojure-match-io-exception
>
>

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

Reply via email to