Ah, I didn't grok that you were reporting two separate breakages (one in swank, one in your app).
I think the problem is in how the lein-swank plugin sets up dependencies (or, how Leiningen itself applies :exclusions). If you don't have an org.clojure/clojure dependency in your project, then lein-swank will add one, its default (v1.2.1). In this case, I found I did have two clojure jars; my 1.5.0-SNAPSHOT, and [org.clojure/clojure "1.2.1"]. This explains the bizarre message of "No matching ctor found for class clojure.lang.Compiler$CompilerException". In my verification of swank, I ended up just temporarily swapping the com.cemerick/clojure build in where the official RC4 sits in ~/.m2/repository; once I did that, swank was happy. I haven't yet been able to duplicate the other fault you saw. If it was really due to namespace metadata, then `lein repl` wouldn't ever start, given clojure.tools.nrepl.server's namespace metadata (https://github.com/clojure/tools.nrepl/blob/master/src/main/clojure/clojure/tools/nrepl/server.clj). I wonder if you could produce a cut-down example that exhibits the issue repeatably? Thanks, - Chas On Feb 2, 2013, at 9:22 AM, Baishampayan Ghose wrote: > I put the canonical clojure artefact in a global exclusions vector in > my project.clj. The classpath doesn't have any duplicate clojure jar > in it. I was testing it out with `lein repl`, since swank-clojure is > broken in different ways. > > Regards, > BG > > On Sat, Feb 2, 2013 at 7:43 PM, Chas Emerick <c...@cemerick.com> wrote: >> Hi Baishampayan, >> >> I got such errors when I first started working on the patch; they were >> caused by the compiler using print-dup'd strings to create namespaces >> instead of emitting bytecode (which the patched build includes). Is it >> possible that you have both an org.clojure/clojure jar and the patched >> com.cemerick/clojure jar on your classpath? >> >> FWIW, such metadata happens to exist in some nREPL namespaces, and some of >> my projects as well, so I presume that that's not the actual problem. >> >> Just out of curiosity, do things work well if you use e.g. inferior-lisp or >> ritz? >> >> Thanks for testing! >> >> - Chas >> >> On Feb 1, 2013, at 11:10 PM, Baishampayan Ghose wrote: >> >>> Just did some testing with our code-base and Clojure 1.5.0-RC4 (with >>> and without Chas' read-eval patch). >>> >>> There is definitely something strange going on. Things worked just >>> fine with 1.5.0-RC4 but with the read-eval patch `lein swank` is >>> completely broken but more than that, our code is failing to compile >>> with this weird error - >>> >>> eval-reader: (clojure.lang.PersistentArrayMap/create {:author "Joe Dev >>> <j...@helpshift.com>", :doc "Some doc here."}) >>> RuntimeException EvalReader not allowed when *read-eval* is false. >>> clojure.lang.Util.runtimeException (Util.java:219) >>> >>> Almost all our namespaces have documentation attached via metadata like >>> this - >>> >>> (ns ^{:doc "Some doc here." >>> :author "Joe Dev <j...@helpshift.com>"} >>> com.helpshift.some.ns >>> (:require [com.helpshift.other.ns :as chon]) >>> (:use clojure.test >>> midje.sweet)) >>> >>> FWIW, the file that will fail to compile is random and I couldn't >>> reproduce this error on a fresh project with just a couple of files. >>> >>> It's quite clear that the eval-reader is getting used from inside >>> Clojure and we need to test out the edge cases a bit more. >>> >>> This is clearly not a low-impact fix, but IMHO we should take the time >>> and get it right before 1.5.0 >>> >>> Regards, >>> BG >>> >>> >>> On Sat, Feb 2, 2013 at 4:01 AM, Chas Emerick <c...@cemerick.com> wrote: >>>> I have added a patch to CLJ-1153 that appears to address the *read-eval* >>>> problem: >>>> >>>> http://dev.clojure.org/jira/browse/CLJ-1153?focusedCommentId=30523#comment-30523 >>>> >>>> code on github: >>>> https://github.com/cemerick/clojure/commit/1f5c19c07443d2535ede4ff71d23b40c195d617f >>>> >>>> artifact on Clojars: [com.cemerick/clojure "1.5.0-SNAPSHOT"] >>>> >>>> The Leiningen dependency above is 1.5.0-RC4 + the patch on the ticket. >>>> Note that you'll need to set your project's global :exclusions to >>>> [org.clojure/clojure] in order for the com.cemerick/clojure artifact to >>>> supersede it. >>>> >>>> It tests well for me, but needs to be exercised as much as possible. Some >>>> have already done so (there's an ongoing discussion on the clojure-dev ML >>>> with some initial test experiences: >>>> http://groups.google.com/group/clojure-dev/browse_frm/thread/cc6f747919db6c94), >>>> but I'm hoping that we can get as many eyes as possible on this — doing >>>> both testing as well as code/patch examination — so as to ensure >>>> correctness and maximize the chances of 1.5.0 final going out with this >>>> vulnerability buttoned up. >>>> >>>> Thanks, >>>> >>>> - Chas >>>> >>>> -- >>>> -- >>>> 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/groups/opt_out. >>>> >>>> >>> >>> >>> >>> -- >>> Baishampayan Ghose >>> b.ghose at gmail.com >>> >>> -- >>> -- >>> 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/groups/opt_out. >>> >>> >> >> -- >> -- >> 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/groups/opt_out. >> >> > > > > -- > Baishampayan Ghose > b.ghose at gmail.com > > -- > -- > 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/groups/opt_out. > > -- -- 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/groups/opt_out.