I cannot use clarity as a dependency

I am starting a toy project at clojure. I decided to give it a try. I installed leiningen and clojure and I was able to run lein install and work with it via emacs. Although I cannot use clarity, depending on my project:

;;;project.clj
(defproject sms-client "1.0.0-SNAPSHOT"
  :description "This is meant to be an sms client"
  :dependencies [[org.clojure/clojure "1.2.1"]
             [clarity "0.5.5"]])

;;;src/sms_client/core.clj
(ns sms-client.core
   (:require [clarity.form :as form]
             [clarity.dev :as dev]))

(def the-form
(form/form
  :login ""
  :password ""))

(dev/show-comp the-form)

      

This is bloated:

clojure.lang.RT.keyword(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
  [Thrown class java.lang.NoSuchMethodError]

Restarts:
 0: [QUIT] Quit to the SLIME top level

Backtrace:
  0: clarity.component__init.__init0(Unknown Source)
  1: clarity.component__init.<clinit>(Unknown Source)
  2: java.lang.Class.forName0(Native Method)
  3: java.lang.Class.forName(Class.java:264)
  4: clojure.lang.RT.loadClassForName(RT.java:1578)
  5: clojure.lang.RT.load(RT.java:399)
  6: clojure.lang.RT.load(RT.java:381)
  7: clojure.core$load$fn__4519.invoke(core.clj:4915)
  8: clojure.core$load.doInvoke(core.clj:4914)
  9: clojure.lang.RestFn.invoke(RestFn.java:408)
 10: clojure.core$load_one.invoke(core.clj:4729)
 11: clojure.core$load_lib.doInvoke(core.clj:4766)
 12: clojure.lang.RestFn.applyTo(RestFn.java:142)
 13: clojure.core$apply.invoke(core.clj:542)
 14: clojure.core$load_libs.doInvoke(core.clj:4800)
 15: clojure.lang.RestFn.applyTo(RestFn.java:137)
 16: clojure.core$apply.invoke(core.clj:542)
 17: clojure.core$require.doInvoke(core.clj:4881)
 18: clojure.lang.RestFn.invoke(RestFn.java:619)
 19: clarity.form$eval1651$loading__4414__auto____1652.invoke(form.clj:1)
 20: clarity.form$eval1651.invoke(form.clj:1)
 21: clojure.lang.Compiler.eval(Compiler.java:5424)
 22: clojure.lang.Compiler.eval(Compiler.java:5415)
 23: clojure.lang.Compiler.load(Compiler.java:5857)
 24: clojure.lang.RT.loadResourceScript(RT.java:340)
 25: clojure.lang.RT.loadResourceScript(RT.java:331)
 26: clojure.lang.RT.load(RT.java:409)
 27: clojure.lang.RT.load(RT.java:381)
 28: clojure.core$load$fn__4519.invoke(core.clj:4915)
 29: clojure.core$load.doInvoke(core.clj:4914)
 30: clojure.lang.RestFn.invoke(RestFn.java:408)
 31: clojure.core$load_one.invoke(core.clj:4729)
 32: clojure.core$load_lib.doInvoke(core.clj:4766)
 33: clojure.lang.RestFn.applyTo(RestFn.java:142)
 34: clojure.core$apply.invoke(core.clj:542)
 35: clojure.core$load_libs.doInvoke(core.clj:4800)
 36: clojure.lang.RestFn.applyTo(RestFn.java:137)
 37: clojure.core$apply.invoke(core.clj:542)
 38: clojure.core$require.doInvoke(core.clj:4881)
 39: clojure.lang.RestFn.invoke(RestFn.java:421)
 40: sms_client.core$eval1645$loading__4414__auto____1646.invoke(NO_SOURCE_FILE:1)
 41: sms_client.core$eval1645.invoke(NO_SOURCE_FILE:1)
 42: clojure.lang.Compiler.eval(Compiler.java:5424)
 43: clojure.lang.Compiler.eval(Compiler.java:5415)
 44: clojure.lang.Compiler.eval(Compiler.java:5391)
 45: clojure.core$eval.invoke(core.clj:2382)
 46: swank.commands.basic$eval_region.invoke(basic.clj:47)
 47: swank.commands.basic$eval_region.invoke(basic.clj:37)
 48: swank.commands.basic$eval849$listener_eval__850.invoke(basic.clj:71)
 49: clojure.lang.Var.invoke(Var.java:365)
 50: user$eval1641.invoke(NO_SOURCE_FILE)
 51: clojure.lang.Compiler.eval(Compiler.java:5424)
 52: clojure.lang.Compiler.eval(Compiler.java:5391)
 53: clojure.core$eval.invoke(core.clj:2382)
 54: swank.core$eval_in_emacs_package.invoke(core.clj:92)
 55: swank.core$eval_for_emacs.invoke(core.clj:239)
 56: clojure.lang.Var.invoke(Var.java:373)
 57: clojure.lang.AFn.applyToHelper(AFn.java:167)
 58: clojure.lang.Var.applyTo(Var.java:482)
 59: clojure.core$apply.invoke(core.clj:540)
 60: swank.core$eval_from_control.invoke(core.clj:99)
 61: swank.core$eval_loop.invoke(core.clj:104)
 62: swank.core$spawn_repl_thread$fn__617$fn__618.invoke(core.clj:309)
 63: clojure.lang.AFn.applyToHelper(AFn.java:159)
 64: clojure.lang.AFn.applyTo(AFn.java:151)
 65: clojure.core$apply.invoke(core.clj:540)
 66: swank.core$spawn_repl_thread$fn__617.doInvoke(core.clj:306)
 67: clojure.lang.RestFn.invoke(RestFn.java:397)
 68: clojure.lang.AFn.run(AFn.java:24)
 69: java.lang.Thread.run(Thread.java:679)

      

What am I doing wrong?

+3


source to share


2 answers


with a clarity of "0.5.5" with her require

that explodes:

user=> (require 'clarity.form)         
java.lang.NoSuchMethodError: clojure.lang.RT.keyword(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword; (form.clj:1)

      



the clarity "0.5,5" doesn't seem to work with clojure 1.2.1, but it works with clojure 1.3.0
you can work with the clarity "0.5.3" and stick with clojure 1.2.1, or stay with the clarity 0.5.5 and switch to clojure 1.3.0.

I personally recommend using the latest versions of both.

+4


source


It was an AOT compilation that made the library jar incompatible with Clojure 1.2. I didn't want to drop support for 1.2, so I fixed that and just released Clarity 0.5.6. Thanks for your feedback!



+4


source







All Articles