I asked in the IRC channel about metadata on functions[1], and was
told that it's indeed possible in 1.2. I tried this at the REPL and
saw the following behavior (which looks like a bug):
user=> (defn ^{:foo "v1.0"} mfoo "mfoo docstring" [] (println "foo v1.0"))
#'user/mfoo
user=> (meta mfoo)
{:ns #<Namespace user>, :name mfoo}
user=> (mfoo)
foo v1.0
nil
user=> (defn ^{:foo "v2.0"} mfoo "mfoo docstring" [] (println "foo v2.0"))
#'user/mfoo
user=> (meta mfoo)
{:ns #<Namespace user>, :name mfoo, :file "NO_SOURCE_PATH", :line
33, :arglists ([]), :doc "mfoo docstring", :foo "v1.0"}
user=> (mfoo)
foo v2.0
nil
This is from the latest source:
$ git remote -v
origin http://github.com/clojure/clojure.git (fetch)
origin http://github.com/clojure/clojure.git (push)
$ git rev-parse HEAD
d184ed95817c5ddfd5874ea75e83e0df7e753c24
It appears I can't create new tickets on assembla[2], so I'm posting
to the mailing list instead.
Thanks!
Mike
[1] http://clojure-log.n01se.net/#04:25
[2] http://www.assembla.com/spaces/clojure/tickets