venantius / ultra

A Leiningen plugin for a superior development environment
Eclipse Public License 1.0
1.24k stars 35 forks source link

Update whidbey to 1.1.1, puget to 0.9.2 (fipp 0.6.2) #42

Closed dm3 closed 8 years ago

dm3 commented 8 years ago

Keeping up with the times.

Stacktraces and coloring seems to be working after the limited testing that I've performed.

venantius commented 8 years ago

Tests don't pass.

dm3 commented 8 years ago

hm, can't reproduce. will look into it later

venantius commented 8 years ago

I did some debugging and figured out the root of the problem - it is, in fact, a CI problem for once. Travis uses Leiningen 2.5.1, whereas reader conditional file support (which Fipp needs) wasn't introduced until Leiningen 2.5.2.

In the short term, we can circumvent the issues here by moving the test step to have Lein run it via trampoline. Just add the following line to the project's .travis.yml:

script: lein trampoline test
venantius commented 8 years ago

Given the lein issues, I think it'd probably also be a good step to add a :min-lein-version to the project.clj, e.g https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L37

dm3 commented 8 years ago

Thanks for the investigation!

venantius commented 8 years ago

Great, thanks! I'll probably cut a new release of Ultra this weekend.

venantius commented 8 years ago

This PR has introduced a weird bug with lein test, so I'm going to revert it for now and work on figuring out what's going on.

venantius commented 8 years ago

To be specific - the issue caused was one in which the deftest form triggered the following exception:

Exception in thread "main" java.lang.RuntimeException: Method code too large!, compiling:(shrike/model/user_test.clj:6:1)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6730)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6711)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler$MapExpr.parse(Compiler.java:3050)
    at clojure.lang.Compiler.analyze(Compiler.java:6532)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:576)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6723)
    at clojure.lang.Compiler.analyze(Compiler.java:6524)
    at clojure.lang.Compiler.analyze(Compiler.java:6485)
    at clojure.lang.Compiler.eval(Compiler.java:6786)
    at clojure.lang.Compiler.load(Compiler.java:7227)
    at clojure.lang.RT.loadResourceScript(RT.java:371)
    at clojure.lang.RT.loadResourceScript(RT.java:362)
    at clojure.lang.RT.load(RT.java:446)
    at clojure.lang.RT.load(RT.java:412)
    at clojure.core$load$fn__5448.invoke(core.clj:5866)
    at clojure.core$load.doInvoke(core.clj:5865)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5671)
    at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
    at clojure.core$load_lib.doInvoke(core.clj:5710)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:632)
    at clojure.core$load_libs.doInvoke(core.clj:5749)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:632)
    at clojure.core$require.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:632)
    at user$eval1395.invoke(form-init1039281082124279429.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6782)
    at clojure.lang.Compiler.eval(Compiler.java:6772)
    at clojure.lang.Compiler.load(Compiler.java:7227)
    at clojure.lang.Compiler.loadFile(Compiler.java:7165)
    at clojure.main$load_script.invoke(main.clj:275)
    at clojure.main$init_opt.invoke(main.clj:280)
    at clojure.main$initialize.invoke(main.clj:308)
    at clojure.main$null_opt.invoke(main.clj:343)
    at clojure.main$main.doInvoke(main.clj:421)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Method code too large!
    at clojure.asm.MethodWriter.getSize(MethodWriter.java:1872)
    at clojure.asm.ClassWriter.toByteArray(ClassWriter.java:775)
    at clojure.lang.Compiler$ObjExpr.compile(Compiler.java:4529)
    at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3983)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6721)
    ... 46 more
Tests failed.

It's not totally clear where the root cause is. It's not the hara dependencies, which was easy to check, so it's something about the changes in Puget/Whidbey and they way they've been integrated here that's the cause. I'll take a closer look at this later on this week.