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 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

Reply via email to