hellonico / origami

Lowest barrier of entry to Image Processing, Computer Vision and Neural Networks on the JavaVM
https://hellonico.github.io/origami-docs/#/
Eclipse Public License 1.0
122 stars 7 forks source link

Has anyone encountered a similar problem? java.lang.Exception: Cyclic load dependency. #80

Closed linux-xhyang closed 3 years ago

linux-xhyang commented 3 years ago

With repo origami-fun , lein run -m opencv4.makeborder resources/images/cat2.png cb.png output follow msg:

Note: The following stack trace applies to the reader or compiler, your code was not executed. CompilerException Syntax error compiling at (opencv4/filter.clj:1:1). #:clojure.error{:phase :compile-syntax-check, :line 1, :column 1, :source "opencv4/filter.clj"} clojure.core/throw-if (core.clj:5867) clojure.core/check-cyclic-dependency (core.clj:5999) clojure.core/load (core.clj:6120) clojure.core/load (core.clj:6109) clojure.core/load-one (core.clj:5908) clojure.core/load-one (core.clj:5903) clojure.core/load-lib/fn--6765 (core.clj:5948) clojure.core/load-lib (core.clj:5947) clojure.core/load-lib (core.clj:5928) clojure.core/apply (core.clj:667) clojure.core/load-libs (core.clj:5985) clojure.core/load-libs (core.clj:5969) Caused by: Exception Cyclic load dependency: [ /opencv4/utils ]->/opencv4/filter->[ /opencv4/utils ] nil

hellonico commented 3 years ago

having a look ...

linux-xhyang commented 3 years ago

having a look ...

I found if run with clj work ok, only run with lein has this issue.

hellonico commented 3 years ago

indeed ... :/

hellonico commented 3 years ago

I need to follow up on this ... the cyclic dependency does not exist so I wonder what is happening ..

hellonico commented 3 years ago

The error is: [ /opencv4/utils ]->/opencv4/filter->[ /opencv4/utils ]

This exists: [ /opencv4/utils ]->/opencv4/filter But this doesn't ? /opencv4/filter->[ /opencv4/utils ]

hellonico commented 3 years ago

And only in origami-fun it seems .. can't reproduce in other projects ..

hellonico commented 3 years ago
⋊> ~/o/origami-fun on master ⨯ git diff                                                                                                                                 (base) 22:32:53
diff --git a/project.clj b/project.clj
index 3e7878b..2d5e988 100644
--- a/project.clj
+++ b/project.clj
@@ -1,5 +1,5 @@
 (defproject origami-fun "0.1.0-SNAPSHOT"
-  :test-paths ["test" "samples"]
+  :test-paths ["test2" "samples"]
   :gorilla-options {:load-scan-exclude #{".git" "project.clj" ".svn" "samples" "src" "test"}}
   :repositories [["vendredi" "https://repository.hellonico.info/repository/hellonico/"]]
   :aliases {"jnotebook" ["jupyter" "notebook"]
@@ -16,5 +16,5 @@
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.clojure/tools.cli "0.3.5"]
                  [seesaw "1.4.5"]
-                 [origami "4.3.0-8"]
+                 [origami/origami "4.5.1-6"]
                  [origami/filters "1.11"]])
hellonico commented 3 years ago

there's a problematic clojure file in the test folder .. lein probably tries to compile it or validate it, while clj does not, so lein fails and clj works.

Renaming the test folder to test2, or changing the test path in project.clj will allow you to run the scripts from the samples folder.

hellonico commented 3 years ago

Ah .. there was a test namespace with a conflicting name :/ Renamed filter.clj -> filterfun.clj in the commit below:

hellonico/origami-fun@e6db248

Thank you for finding this one out !