clojure-numerics / expresso

Clojure library for symbolic computation
312 stars 20 forks source link

Error trying to use expresso #19

Closed favetelinguis closed 7 years ago

favetelinguis commented 8 years ago

When trying to use 0.2.0 im getting the following warnings.

(ns proj.symj (:require [numeric.expresso.core :as sym]))

. . . WARNING: record? already refers to: #'clojure.core/record? in namespace: numeric.expresso.types, being replaced by: #'clojure.core.logic/record? . . .

And the follwoing stacktrace: clojure.lang.Compiler$CompilerException: java.lang.ExceptionInInitializerError, compiling:(numeric/expresso/parse.clj:1:1) Compiler.java:7239 clojure.lang.Compiler.load RT.java:371 clojure.lang.RT.loadResourceScript RT.java:362 clojure.lang.RT.loadResourceScript RT.java:446 clojure.lang.RT.load RT.java:412 clojure.lang.RT.load core.clj:5866 clojure.core/load[fn] core.clj:5865 clojure.core/load RestFn.java:408 clojure.lang.RestFn.invoke core.clj:5671 clojure.core/load-one core.clj:5711 clojure.core/load-lib[fn] core.clj:5710 clojure.core/load-lib RestFn.java:142 clojure.lang.RestFn.applyTo core.clj:632 clojure.core/apply core.clj:5749 clojure.core/load-libs RestFn.java:137 clojure.lang.RestFn.applyTo core.clj:632 clojure.core/apply core.clj:5832 clojure.core/require RestFn.java:1289 clojure.lang.RestFn.invoke core.clj:1 numeric.expresso.core/eval6549[fn] core.clj:1 numeric.expresso.core/eval6549 Compiler.java:6782 clojure.lang.Compiler.eval Compiler.java:6771 clojure.lang.Compiler.eval Compiler.java:7227 clojure.lang.Compiler.load RT.java:371 clojure.lang.RT.loadResourceScript RT.java:362 clojure.lang.RT.loadResourceScript RT.java:446 clojure.lang.RT.load RT.java:412 clojure.lang.RT.load core.clj:5866 clojure.core/load[fn] core.clj:5865 clojure.core/load RestFn.java:408 clojure.lang.RestFn.invoke core.clj:5671 clojure.core/load-one core.clj:5711 clojure.core/load-lib[fn] core.clj:5710 clojure.core/load-lib RestFn.java:142 clojure.lang.RestFn.applyTo core.clj:632 clojure.core/apply core.clj:5749 clojure.core/load-libs RestFn.java:137 clojure.lang.RestFn.applyTo core.clj:632 clojure.core/apply core.clj:5832 clojure.core/require RestFn.java:408 clojure.lang.RestFn.invoke C:\TestStuff\clojure\eco\src\eco\symj.clj:1 eco.symj/eval6543[fn] C:\TestStuff\clojure\eco\src\eco\symj.clj:1 eco.symj/eval6543 Compiler.java:6782 clojure.lang.Compiler.eval Compiler.java:6771 clojure.lang.Compiler.eval Compiler.java:6745 clojure.lang.Compiler.eval core.clj:3081 clojure.core/eval eval.clj:77 lighttable.nrepl.eval/->result core.clj:2493 clojure.core/partial[fn] core.clj:2622 clojure.core/map[fn] LazySeq.java:40 clojure.lang.LazySeq.sval LazySeq.java:49 clojure.lang.LazySeq.seq RT.java:507 clojure.lang.RT.seq core.clj:137 clojure.core/seq core.clj:2679 clojure.core/filter[fn] LazySeq.java:40 clojure.lang.LazySeq.sval LazySeq.java:49 clojure.lang.LazySeq.seq RT.java:507 clojure.lang.RT.seq core.clj:137 clojure.core/seq core.clj:3009 clojure.core/dorun core.clj:3025 clojure.core/doall eval.clj:126 lighttable.nrepl.eval/eval-clj RestFn.java:442 clojure.lang.RestFn.invoke eval.clj:187 lighttable.nrepl.eval/eval2805[fn] AFn.java:152 clojure.lang.AFn.applyToHelper AFn.java:144 clojure.lang.AFn.applyTo core.clj:630 clojure.core/apply core.clj:1868 clojure.core/with-bindings* RestFn.java:425 clojure.lang.RestFn.invoke eval.clj:177 lighttable.nrepl.eval/eval2805[fn] eval.clj:176 lighttable.nrepl.eval/eval2805[fn] MultiFn.java:229 clojure.lang.MultiFn.invoke core.clj:98 lighttable.nrepl.core/queued[fn] core.clj:2437 clojure.core/comp[fn] interruptible_eval.clj:138 clojure.tools.nrepl.middleware.interruptible-eval/run-next[fn] AFn.java:22 clojure.lang.AFn.run (Unknown Source) java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source) java.lang.Thread.run Caused by: java.lang.ExceptionInInitializerError: null (Unknown Source) java.lang.Class.forName0 (Unknown Source) java.lang.Class.forName RT.java:2154 clojure.lang.RT.classForName RT.java:2163 clojure.lang.RT.classForName RT.java:2182 clojure.lang.RT.loadClassForName RT.java:436 clojure.lang.RT.load RT.java:412 clojure.lang.RT.load core.clj:5866 clojure.core/load[fn] core.clj:5865 clojure.core/load RestFn.java:408 clojure.lang.RestFn.invoke core.clj:5671 clojure.core/load-one core.clj:5711 clojure.core/load-lib[fn] core.clj:5710 clojure.core/load-lib RestFn.java:142 clojure.lang.RestFn.applyTo core.clj:632 clojure.core/apply core.clj:5749 clojure.core/load-libs RestFn.java:137 clojure.lang.RestFn.applyTo core.clj:632 clojure.core/apply core.clj:5832 clojure.core/require RestFn.java:805 clojure.lang.RestFn.invoke core.clj:1 instaparse.core/loading (Unknown Source) instaparse.coreinit.load (Unknown Source) instaparse.coreinit. (Unknown Source) java.lang.Class.forName0 (Unknown Source) java.lang.Class.forName RT.java:2154 clojure.lang.RT.classForName RT.java:2163 clojure.lang.RT.classForName RT.java:2182 clojure.lang.RT.loadClassForName RT.java:436 clojure.lang.RT.load RT.java:412 clojure.lang.RT.load core.clj:5866 clojure.core/load[fn] core.clj:5865 clojure.core/load RestFn.java:408 clojure.lang.RestFn.invoke core.clj:5671 clojure.core/load-one core.clj:5711 clojure.core/load-lib[fn] core.clj:5710 clojure.core/load-lib RestFn.java:142 clojure.lang.RestFn.applyTo core.clj:632 clojure.core/apply core.clj:5749 clojure.core/load-libs RestFn.java:137 clojure.lang.RestFn.applyTo core.clj:632 clojure.core/apply core.clj:5832 clojure.core/require RestFn.java:457 clojure.lang.RestFn.invoke parse.clj:1 numeric.expresso.parse/eval9377[fn] parse.clj:1 numeric.expresso.parse/eval9377 Compiler.java:6782 clojure.lang.Compiler.eval Compiler.java:6771 clojure.lang.Compiler.eval Compiler.java:7227 clojure.lang.Compiler.load Caused by: java.lang.IllegalStateException: Attempting to call unbound fn: #'instaparse.combinators-source/cat Var.java:43 clojure.lang.Var$Unbound.throwArity AFn.java:44 clojure.lang.AFn.invoke (Unknown Source) instaparse.cfginit.load (Unknown Source) instaparse.cfginit.

Im using Clojure 1.7

mschuene commented 8 years ago

expresso 0.2.2-SNAPSHOT works with 1.7. I updated the readme to use this version.

dmh43 commented 8 years ago

@mschuene I haven't been able to get the tests to pass with any version of Clojure later than 1.6. It looks like one issue is the addition of cat in 1.7 which seems to conflict with an instaparse var in version 1.3. When requiring expresso from a Clojure 1.7 project, I get CompilerException java.lang.Exception: namespace 'instaparse.abnf' not found, compiling:(instaparse/core.clj:1:1). Any ideas how to move forward with this?

gcbeltramini commented 7 years ago

Adding instaparse to the leiningen dependencies made it work in Clojure 1.8:

:dependencies [[org.clojure/clojure "1.8.0"]
               [expresso "0.2.2-SNAPSHOT"]
               [instaparse "1.4.3"]]
dmh43 commented 7 years ago

@gcbeltramini awesome! I'll try this.