noir-clojure/noir

noir 1.2.1 working with lein-swank 1.3.3, not with 1.3.4

Closed this issue · 5 comments

Hi,

Not sure if I should open this issue in swank-clojure or noir, anyway:

  • noir 1.2.1 + swank 1.3.3 OK:
$ cat project.clj 
(defproject my-noir-lab "0.1.0-SNAPSHOT"
  :description "A web site written with noir"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [noir                "1.2.1"]]
  :main my-noir-lab.server)

$ ls ~/.lein/plugins/
lein-foo-0.1.0-SNAPSHOT.jar  lein-midje-1.0.7.jar  lein-newnew-0.1.2.jar  lein-noir-1.2.1.jar  swank-clojure-1.3.3.jar
$ rm -rf lib && lein deps && lein swank
Copying 31 files to /home/denis/Dropbox/project/my-noir-lab/lib
Connection opened on localhost port 4005.
  • But noir 1.2.1 with swank 1.3.4 KO:
$ lein plugin install swank-clojure 1.3.4
[INFO] Unable to find resource 'swank-clojure:swank-clojure:jar:1.3.4' in repository central (http://repo1.maven.org/maven2)
Installing shell wrapper to /home/denis/.lein/bin/swank-clojure
Copying 2 files to /tmp/lein-4306a37c-5de2-4922-8f42-2ba47cb551a6/lib
Including swank-clojure-1.3.4.jar
Including clojure-1.2.1.jar
Including clj-stacktrace-0.2.4.jar
Created swank-clojure-1.3.4.jar
$ rm -rf lib && lein deps && lein swank
Copying 31 files to /home/denis/Dropbox/project/my-noir-lab/lib
Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: pst-elem-str in this context, compiling:(swank/core.clj:128)
    at clojure.lang.Compiler.analyze(Compiler.java:6235)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3452)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6411)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
    at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5008)
    at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3629)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6407)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.access$100(Compiler.java:37)
    at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:492)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler.eval(Compiler.java:6469)
    at clojure.lang.Compiler.load(Compiler.java:6902)
    at clojure.lang.RT.loadResourceScript(RT.java:357)
    at clojure.lang.RT.loadResourceScript(RT.java:348)
    at clojure.lang.RT.load(RT.java:427)
    at clojure.lang.RT.load(RT.java:398)
    at clojure.core$load$fn__4610.invoke(core.clj:5386)
    at clojure.core$load.doInvoke(core.clj:5385)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5200)
    at clojure.core$load_lib.doInvoke(core.clj:5237)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$load_libs.doInvoke(core.clj:5271)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:604)
    at clojure.core$use.doInvoke(core.clj:5363)
    at clojure.lang.RestFn.invoke(RestFn.java:512)
    at swank.swank$eval40$loading__4505__auto____41.invoke(swank.clj:1)
    at swank.swank$eval40.invoke(swank.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    at clojure.lang.Compiler.eval(Compiler.java:6455)
    at clojure.lang.Compiler.load(Compiler.java:6902)
    at clojure.lang.RT.loadResourceScript(RT.java:357)
    at clojure.lang.RT.loadResourceScript(RT.java:348)
    at clojure.lang.RT.load(RT.java:427)
    at clojure.lang.RT.load(RT.java:398)
    at clojure.core$load$fn__4610.invoke(core.clj:5386)
    at clojure.core$load.doInvoke(core.clj:5385)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5200)
    at clojure.core$load_lib.doInvoke(core.clj:5237)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$load_libs.doInvoke(core.clj:5271)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$require.doInvoke(core.clj:5352)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at user$eval27.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    at clojure.lang.Compiler.eval(Compiler.java:6455)
    at clojure.lang.Compiler.eval(Compiler.java:6431)
    at clojure.core$eval.invoke(core.clj:2795)
    at clojure.main$eval_opt.invoke(main.clj:296)
    at clojure.main$initialize.invoke(main.clj:315)
    at clojure.main$null_opt.invoke(main.clj:348)
    at clojure.main$main.doInvoke(main.clj:426)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:405)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unable to resolve symbol: pst-elem-str in this context
    at clojure.lang.Util.runtimeException(Util.java:156)
    at clojure.lang.Compiler.resolveIn(Compiler.java:6720)
    at clojure.lang.Compiler.resolve(Compiler.java:6664)
    at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6625)
    at clojure.lang.Compiler.analyze(Compiler.java:6198)
    ... 70 more

Regards,

Denis

This is a result of a version mismatch for clj-stacktrace with swank. Noir 1.3.0-alpha4 fixes it.

You should be able to declare an explicit dependency upon the latest clj-stacktrace as a workaround in the mean time.

swank-clojure-1.3.4.jar + noir-1.2.1 are working fine together with this workaround:

$ ls ~/.lein/plugins/
lein-midje-1.0.7.jar  swank-clojure-1.3.4.jar
(defproject my-noir-lab "0.1.0-SNAPSHOT"
  :description "A web site written with noir"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [noir                "1.2.1"]
                 ;; workaround for https://github.com/ibdknox/noir/issues/76
                 [clj-stacktrace      "0.2.4"]]
  :main my-noir-lab.server)

unrelatedly, you should definitely upgrade to 1.2.2 :)

I'll sure do that