Hello Rich,
Lazy defn loading commit to 1.3.0-master introduced a bug or breakage.
Clojure 1.3.0-master-SNAPSHOT
user=> (require 'swank.swank)
user=> (swank.commands.basic/connection-info)
ClassNotFoundException swank/commands/basic
$eval695$connection_info__696 java.lang.Class.forName0 (Class.java:-2)
user=> (.printStackTrace *e)
java.lang.ClassNotFoundException: swank/commands/basic
$eval695$connection_info__696
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at clojure.lang.FnLoaderThunk.load(FnLoaderThunk.java:52)
at clojure.lang.FnLoaderThunk.doInvoke(FnLoaderThunk.java:45)
at clojure.lang.RestFn.invoke(RestFn.java:398)
at user$eval1506.invoke(NO_SOURCE_FILE:2)
at clojure.lang.Compiler.eval(Compiler.java:6301)
at clojure.lang.Compiler.eval(Compiler.java:6268)
at clojure.core$eval.invoke(core.clj:2680)
at clojure.lang.FnLoaderThunk.invoke(FnLoaderThunk.java:31)
at clojure.main$repl$read_eval_print__5558.invoke(main.clj:244)
at clojure.main$repl$fn__5563.invoke(main.clj:265)
at clojure.main$repl.doInvoke(main.clj:265)
at clojure.lang.RestFn.invoke(RestFn.java:422)
at clojure.lang.FnLoaderThunk.invoke(FnLoaderThunk.java:36)
at clojure.main$repl_opt.invoke(main.clj:331)
at clojure.lang.FnLoaderThunk.invoke(FnLoaderThunk.java:36)
at clojure.main$main.doInvoke(main.clj:427)
at clojure.lang.RestFn.invoke(RestFn.java:398)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.RestFn.applyTo(RestFn.java:133)
at clojure.lang.FnLoaderThunk.doInvoke(FnLoaderThunk.java:46)
at clojure.lang.RestFn.invoke(RestFn.java:398)
at clojure.lang.Var.invoke(Var.java:397)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.main.main(main.java:37)
nil
user=> (var-get #'swank.commands.basic/connection-info)
#<FnLoaderThunk clojure.lang.FnLoaderThunk@466c137c>
user=> (source swank.commands.basic/connection-info)
(defslimefn connection-info []
`(:pid ~(sys/get-pid)
:style :spawn
:lisp-implementation (:type "Clojure"
:name "clojure"
:version ~(clojure-version))
:package (:name ~(name (ns-name *ns*))
:prompt ~(name (ns-name *ns*)))
:version ~(deref protocol-version)))
nil
user=> (source swank.commands/defslimefn)
(defmacro defslimefn
([fname & body]
`(alter-var-root #'slime-fn-map
assoc
(symbol "swank" ~(name fname))
(defn ~fname ~@body)))
{:indent 'defun})
Same code running in 1.2.0 produced
user=> (clojure-version)
"1.2.0"
user=> (require 'swank.swank)
nil
user=> (swank.commands.basic/connection-info)
(:pid "789" :style :spawn :lisp-implementation (:type "Clojure" :name
"clojure" :version "1.2.0") :package (:name "user" :prompt
"user") :version "20100404")
user=> (var-get #'swank.commands.basic/connection-info)
#<basic$eval720$connection_info__721 swank.commands.basic
$eval720$connection_info__721@7b7e7691>
Sorry I was not able to come up a simple test case.
Regards,
Feng
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en