mikera / clisk

The Clojure Image Synthesis Kit
281 stars 13 forks source link

require clojure.test #3

Closed mchampine closed 12 years ago

mchampine commented 12 years ago

With lein2 and Clojure 1.4 I had to add a require statement to my ns declaration or it throws and error when not finding clojure.test

This works:

(ns myclisk.core (:require clojure.test) (:use [clisk core functions patterns colours]))

mikera commented 12 years ago

Interesting - when does the error occur?

There shouldn't be any clojure.test dependencies in clisk itself (apart from the test suite), is myclisk.core your own namespace where you are using tests?

(I'm not a lein user myself but keen to make sure Clisk works smoothly with leiningen)

mchampine commented 12 years ago

Yes, myclisk is the namespace where I play with clisk.

To reproduce

$ lein2 new myclisk $ edit project.clj to add clisk dependency $ lein2 deps (pulls down clisk) Edit ns in src/myclisk/core.clj to: (ns myclisk.core (:use [clisk core functions patterns colours])) Eval the ns expression

Without (:require clojure.test) it complains that clojure.test is not found.

Lein generates a test/myclisk/core_test.clj which contains a ":use clojure.test" in the ns. That must be it, but I've done a few other lein based projects without needing to add the require.

Odd.

M.

On Wed, Aug 15, 2012 at 8:16 PM, Mike Anderson notifications@github.comwrote:

Interesting - when does the error occur?

There shouldn't be any clojure.test dependencies in clisk itself (apart from the test suite), is myclisk.core your own namespace where you are using tests?

(I'm not a lein user myself but keen to make sure Clisk works smoothly with leiningen)

— Reply to this email directly or view it on GitHubhttps://github.com/mikera/clisk/issues/3#issuecomment-7773713.

mikera commented 12 years ago

Odd indeed.

Can you give me a full stack trace? The only thing I can think of is that I've got some odd dependency on clojure.test hiding in the code somewhere.....

mchampine commented 12 years ago

clojure.test [Thrown class java.lang.ClassNotFoundException]

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

Backtrace: 0: URLClassLoader.java:366 java.net.URLClassLoader$1.run 1: URLClassLoader.java:355 java.net.URLClassLoader$1.run 2: (Unknown Source) java.security.AccessController.doPrivileged 3: URLClassLoader.java:354 java.net.URLClassLoader.findClass 4: DynamicClassLoader.java:61 clojure.lang.DynamicClassLoader.findClass 5: ClassLoader.java:423 java.lang.ClassLoader.loadClass 6: ClassLoader.java:356 java.lang.ClassLoader.loadClass 7: (Unknown Source) java.lang.Class.forName0 8: Class.java:264 java.lang.Class.forName 9: RT.java:2039 clojure.lang.RT.classForName 10: Compiler.java:957 clojure.lang.Compiler$HostExpr.maybeClass 11: Compiler.java:736 clojure.lang.Compiler$HostExpr.access$400 12: Compiler.java:6397 clojure.lang.Compiler.macroexpand1 13: Compiler.java:6441 clojure.lang.Compiler.analyzeSeq 14: Compiler.java:6262 clojure.lang.Compiler.analyze 15: Compiler.java:6223 clojure.lang.Compiler.analyze 16: Compiler.java:5618 clojure.lang.Compiler$BodyExpr$Parser.parse 17: Compiler.java:5054 clojure.lang.Compiler$FnMethod.parse 18: Compiler.java:3674 clojure.lang.Compiler$FnExpr.parse 19: Compiler.java:6453 clojure.lang.Compiler.analyzeSeq 20: Compiler.java:6262 clojure.lang.Compiler.analyze 21: Compiler.java:6443 clojure.lang.Compiler.analyzeSeq 22: Compiler.java:6262 clojure.lang.Compiler.analyze 23: Compiler.java:37 clojure.lang.Compiler.access$100 24: Compiler.java:518 clojure.lang.Compiler$DefExpr$Parser.parse 25: Compiler.java:6455 clojure.lang.Compiler.analyzeSeq 26: Compiler.java:6262 clojure.lang.Compiler.analyze 27: Compiler.java:6223 clojure.lang.Compiler.analyze 28: Compiler.java:6515 clojure.lang.Compiler.eval 29: Compiler.java:6952 clojure.lang.Compiler.load 30: RT.java:359 clojure.lang.RT.loadResourceScript 31: RT.java:350 clojure.lang.RT.loadResourceScript 32: RT.java:429 clojure.lang.RT.load 33: RT.java:400 clojure.lang.RT.load 34: core.clj:5415 clojure.core/load[fn] 35: core.clj:5414 clojure.core/load 36: RestFn.java:408 clojure.lang.RestFn.invoke 37: core.clj:5227 clojure.core/load-one 38: core.clj:5264 clojure.core/load-lib 39: RestFn.java:142 clojure.lang.RestFn.applyTo 40: core.clj:603 clojure.core/apply 41: core.clj:5302 clojure.core/load-libs 42: RestFn.java:137 clojure.lang.RestFn.applyTo 43: core.clj:605 clojure.core/apply 44: core.clj:5392 clojure.core/use 45: RestFn.java:408 clojure.lang.RestFn.invoke 46: NO_SOURCE_FILE:1 myclisk.core/eval1925[fn] 47: NO_SOURCE_FILE:1 myclisk.core/eval1925 48: Compiler.java:6511 clojure.lang.Compiler.eval 49: Compiler.java:6501 clojure.lang.Compiler.eval 50: Compiler.java:6477 clojure.lang.Compiler.eval 51: core.clj:2797 clojure.core/eval 52: core.clj:532 swank.core/eval786[fn] 53: MultiFn.java:163 clojure.lang.MultiFn.invoke 54: basic.clj:54 swank.commands.basic/eval-region 55: basic.clj:44 swank.commands.basic/eval-region 56: basic.clj:73 swank.commands.basic/eval974[fn] 57: Var.java:415 clojure.lang.Var.invoke 58: (Unknown Source) user/eval1921 59: Compiler.java:6511 clojure.lang.Compiler.eval 60: Compiler.java:6477 clojure.lang.Compiler.eval 61: core.clj:2797 clojure.core/eval 62: core.clj:100 swank.core/eval-in-emacs-package 63: core.clj:256 swank.core/eval-for-emacs 64: Var.java:423 clojure.lang.Var.invoke 65: AFn.java:167 clojure.lang.AFn.applyToHelper 66: Var.java:532 clojure.lang.Var.applyTo 67: core.clj:601 clojure.core/apply 68: core.clj:107 swank.core/eval-from-control 69: core.clj:330 swank.core/spawn-worker-thread[fn] 70: AFn.java:159 clojure.lang.AFn.applyToHelper 71: AFn.java:151 clojure.lang.AFn.applyTo 72: core.clj:601 clojure.core/apply 73: core.clj:326 swank.core/spawn-worker-thread[fn] 74: RestFn.java:397 clojure.lang.RestFn.invoke 75: AFn.java:24 clojure.lang.AFn.run 76: Thread.java:722 java.lang.Thread.run

mchampine commented 12 years ago

The dependency appears to be in clisk.core. I called "use" on each of the packages (functions patterns colors etc.) one at a time, and core is the only one that blows up.

[~/clojure/clisk]$ grep -rHi clojure.test . ./src/main/clojure/clisk/core.clj:(defn tst ) ./src/test/clojure/clisk/test_colours.clj: (:use clojure.test) ./src/test/clojure/clisk/test_core.clj: (:use clojure.test) ./src/test/clojure/clisk/test_functions.clj: (:use clojure.test) ./src/test/clojure/clisk/test_generator.clj: (:use clojure.test) ./src/test/clojure/clisk/test_node.clj: (:use clojure.test) ./src/test/clojure/clisk/test_patterns.clj: (:use clojure.test)

mikera commented 12 years ago

Ah, found the problem! Fixed in the latest SNAPSHOT version.

I did have a dependency on clojure.test lurking in there.

Thanks for your help!