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.