I've filed http://dev.clojure.org/jira/browse/CLJ-1745
In checking Mike Rodriguez's test case for reproducing the issue, I could reproduce the behavior change in a lein repl, but the behavior appears to be the same with a plain Clojure REPL. See the ticket for what I found, and feel free to edit in case anyone else gets additional results that differ from those. Andy On Wed, Jun 3, 2015 at 7:20 PM, Alex Miller <a...@puredanger.com> wrote: > s/Ivan/Mike Rodriguez/ sorry :) > > > On Wednesday, June 3, 2015 at 8:19:40 PM UTC-6, Alex Miller wrote: >> >> Thanks Ivan and Andy, I'd appreciate a ticket in jira if only to consider >> this again before release. >> >> Thank goodness Stu H screened that one so I can blame him. ;) >> >> >> On Wednesday, June 3, 2015 at 4:00:35 PM UTC-6, Andy Fingerhut wrote: >>> >>> Just to provide slightly more info, that change was made because of this >>> ticket: http://dev.clojure.org/jira/browse/CLJ-1169 >>> >>> Andy >>> >>> On Wed, Jun 3, 2015 at 6:34 AM, Mike Rodriguez <mjr...@gmail.com> wrote: >>> >>>> Sorry for the delay in getting back with a response to this. I think >>>> it is fairly clear in the Clojure Compiler that there is an exception that >>>> will wrap errors that occur during macroexpansion now. >>>> >>>> Around here >>>> https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java#L6627-L6649, >>>> the Compiler.macroexpand1() now has a try-catch for Throwable around the >>>> evaluation of the macro invocation. >>>> This was not the case in Clojure version 1.6. See around >>>> https://github.com/clojure/clojure/blob/clojure-1.6.0/src/jvm/clojure/lang/Compiler.java#L6548-L6560 >>>> for a reference point. >>>> >>>> I'm fairly sure that is what has caused this change in behavior that >>>> broke our expectations that the exception types our code through during >>>> macroexpansion would propagate all the way back to the caller. Again, I >>>> think this was a bad expectation to have, but it is a little tricky. >>>> >>>> It is a little trickier for us to have any strong assertions on the >>>> type of exception that may come from a macro now. >>>> Compiler$CompilerException seems too dependent on the implementation. So >>>> we've opted to just assert there would be a is-thrown? RuntimeException in >>>> these sorts of tests. If we want to test something like an ExceptionInfo's >>>> data map, we now just have to write a helper to walk the stack trace until >>>> we find it - which would likely be a single "step" up the trace. >>>> >>>> A simple reproducing case: >>>> *clojure-version* ;= {:major 1, :minor 7, :incremental 0, :qualifier >>>> "RC1"} >>>> >>>> (defmacro demo [] (throw (ex-info "fail" {}))) >>>> >>>> (demo) ;= CompilerException clojure.lang.ExceptionInfo: fail {}, >>>> compiling:(form-init4053282905768384039.clj:1:1) >>>> >>>> vs. >>>> *clojure-version* ;= {:major 1, :minor 6, :incremental 0, :qualifier >>>> nil} >>>> >>>> (demo) ;= ExceptionInfo fail clojure.core/ex-info (core.clj:4403) >>>> >>>> >>>> >>>> On Saturday, May 23, 2015 at 8:52:47 AM UTC-5, Alex Miller wrote: >>>>> >>>>> I'm not aware of any wholesale changes with respect to compiler >>>>> exceptions. Can you give an example? >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. >>>> For more options, visit 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. > -- 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.