[TANAL-97] analyze+eval throws exception with Clojure 1.7.0-alpha3 but not 1.6.0 for project utf8 Created: 28/Oct/14 Updated: 28/Oct/14 Resolved: 28/Oct/14
|Reporter:||Andy Fingerhut||Assignee:||Nicola Mometto|
I haven't tracked down what is going on here. I am using tools.analyzer(.jvm) 0.6.1 with the latest Eastwood where I've noticed this (but also saw it with the 0.2.x version of tools.analyzer(.jvm) used by Eastwood 0.1.4). I haven't yet checked whether the latest released tools.analyzer(.jvm) improves on this behavior.
This might also be a bug introduced in Clojure 1.7.0-alpha3 vs. 1.6.0.
To see the issue, get latest Eastwood, pull all of the crucible projects, or at least the one that gets renamed utf8-2013-11-15, and run these two commands after doing 'mvm install' on the latest Clojure master as of 1.7.0-alpha3. The last command below will use 1.7.0-master-SNAPSHOT of Clojure, so it needs to be installed in your ~/.m2 named as that, or change the project.clj file to name 1.7.0-alpha3 instead.
With the last command I see an exception like this:
|Comment by Nicola Mometto [ 28/Oct/14 12:03 PM ]|
This appears to be caused because clojure 1.7.0-alpha3 fails to compile nio.core, thus the ns expression is not evaluated.
This is a regression introduced with clojure 1.7.0-alpha2, I'm investigating the cause and will open a CLJ ticket
|Comment by Nicola Mometto [ 28/Oct/14 12:14 PM ]|
turns out it's not even a clojure reggression, it's a bug in the last released version of nio that has been fixed in the SNAPSHOT version: https://github.com/pjstadig/nio/issues/4
clojure <=1.7.0-alpha2 silently ignored this bug but commit https://github.com/clojure/clojure/commit/85169b785c5dd59e89c0bd12600eebe5f6172874 had the side effect of exposing the bug
|Comment by Andy Fingerhut [ 28/Oct/14 2:24 PM ]|
Thanks for tracking that down! (inc Bronsa)
|Comment by Andy Fingerhut [ 28/Oct/14 5:18 PM ]|
And this helped me discover that although I tried to stop Eastwood's linking at the point that analyze+eval returns an AST indicating that eval threw an exception, I was only checking the top-level AST. I should have been checking all sub-ASTs of top-level do forms, and do forms nested inside those, etc. Soon Eastwood will stop earlier, closer to the real problem in this case.