What you're seeing here is a spec failure on macro specs that have been 
added in Clojure 1.9+ (tighter checks on code, so basically identifying 
existing silently wrong code).  Note that lein is itself a Clojure program 
with plugins and running on it's own version of Clojure, which can change 
independently of your app.

I think James' suggestion is a good one (the underlying core.unify issue 
was fixed and released years ago).

On Tuesday, February 4, 2020 at 9:56:47 AM UTC-6, James Reeves wrote:
>
> This may be due to the plugins overriding a dependency that Leiningen 
> itself needs. There was an issue like this 
> <https://github.com/weavejester/lein-ring/issues/203> logged with 
> Lein-Ring, which I notice you're using. Try updating the Lein-Ring version 
> to 0.12.5 and see if that fixes the issue.
>
> On Tue, 4 Feb 2020 at 13:18, 'Simon Brooke' via Clojure <
> clojure@googlegroups.com> wrote:
>
>> Hi all
>>
>> I recently wanted to do some work on a project of mine I've not worked on 
>> for more than a year, and found to my great surprise that it will no longer 
>> build. Full details of the bug are here 
>> <https://github.com/journeyman-cc/smeagol/issues/43>, but the core seems 
>> to be:
>>
>> clojure.lang.Compiler$CompilerException: Syntax error macroexpanding 
>> clojure.core/fn at (clojure/core/unify.clj:83:18).
>> #:clojure.error{:phase :macro-syntax-check, :line 83, :column 18, :source 
>> "clojure/core/unify.clj", :symbol clojure.core/fn}
>>  at clojure.lang.Compiler.checkSpecs (Compiler.java:6971)
>>
>> ...
>>
>> Caused by: clojure.lang.ExceptionInfo: Call to clojure.core/fn did not 
>> conform to spec.
>> #:clojure.spec.alpha{:problems ({:path [:fn-tail :arity-1 :params], :pred 
>> clojure.core/vector?, :val clojure.core.unify/var-unify, :via 
>> [:clojure.core.specs.alpha/params+body :clojure.core.specs.alpha/param-list 
>> :clojure.core.specs.alpha/param-list], :in [0]} {:path [:fn-tail :arity-n], 
>> :pred (clojure.core/fn [%] (clojure.core/or (clojure.core/nil? %) 
>> (clojure.core/sequential? %))), :val clojure.core.unify/var-unify, :via 
>> [:clojure.core.specs.alpha/params+body 
>> :clojure.core.specs.alpha/params+body], :in [0]}), :spec 
>> #object[clojure.spec.alpha$regex_spec_impl$reify__2509 0x7c214cc0 
>> "clojure.spec.alpha$regex_spec_impl$reify__2509@7c214cc0"], :value 
>> (clojure.core.unify/var-unify [G__813 G__814 G__815 G__816] 
>> (clojure.core/if-let [vb__806__auto__ (G__816 G__814)] 
>> (clojure.core.unify/garner-unifiers G__813 vb__806__auto__ G__815 G__816) 
>> (clojure.core/if-let [vexpr__807__auto__ (clojure.core/and (G__813 G__815) 
>> (G__816 G__815))] (clojure.core.unify/garner-unifiers G__813 G__814 
>> vexpr__807__auto__ G__816) (if (clojure.core.unify/occurs? G__813 G__814 
>> G__815 G__816) (throw (java.lang.IllegalStateException. (clojure.core/str 
>> "Cycle found in the path " G__815))) (clojure.core.unify/bind-phase G__816 
>> G__814 G__815))))), :args (clojure.core.unify/var-unify [G__813 G__814 
>> G__815 G__816] (clojure.core/if-let [vb__806__auto__ (G__816 G__814)] 
>> (clojure.core.unify/garner-unifiers G__813 vb__806__auto__ G__815 G__816) 
>> (clojure.core/if-let [vexpr__807__auto__ (clojure.core/and (G__813 G__815) 
>> (G__816 G__815))] (clojure.core.unify/garner-unifiers G__813 G__814 
>> vexpr__807__auto__ G__816) (if (clojure.core.unify/occurs? G__813 G__814 
>> G__815 G__816) (throw (java.lang.IllegalStateException. (clojure.core/str 
>> "Cycle found in the path " G__815))) (clojure.core.unify/bind-phase G__816 
>> G__814 G__815)))))}
>>  at clojure.spec.alpha$macroexpand_check.invokeStatic (alpha.clj:705)
>>
>> ... 
>>
>>
>> No functions of mine occur anywhere in the stacktrace, but below all the 
>> clojure compiler functions I get to:
>>
>>     clojure.lang.RestFn.invoke (RestFn.java:408)
>>     leiningen.core.utils$require_resolve.invokeStatic (utils.clj:102)
>>     leiningen.core.utils$require_resolve.invoke (utils.clj:95)
>>     leiningen.core.utils$require_resolve.invokeStatic (utils.clj:105)
>>     leiningen.core.utils$require_resolve.invoke (utils.clj:95)
>>     leiningen.core.main$lookup_task_var.invokeStatic (main.clj:69)
>>     leiningen.core.main$lookup_task_var.invoke (main.clj:65)
>>     leiningen.core.main$pass_through_help_QMARK_.invokeStatic (main.clj:79)
>>     leiningen.core.main$pass_through_help_QMARK_.invoke (main.clj:73)
>>     leiningen.core.main$task_args.invokeStatic (main.clj:82)
>>     leiningen.core.main$task_args.invoke (main.clj:81)
>>     leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:339)
>>     leiningen.core.main$resolve_and_apply.invoke (main.clj:336)
>>     leiningen.core.main$_main$fn__6681.invoke (main.clj:452)
>>     leiningen.core.main$_main.invokeStatic (main.clj:442)
>>     leiningen.core.main$_main.doInvoke (main.clj:439)
>>
>>
>> The versions of Leiningen I am currently using are `Leiningen 2.9.1 on 
>> Java 1.8.0_242 OpenJDK 64-Bit Server VM` and `Leiningen 2.9.1 on Java 
>> 11.0.6 OpenJDK 64-Bit Server VM`; I don't recall the version I was using a 
>> year ago. None of the project dependencies have changed, I'm running with 
>> this 
>> project.clj 
>> <https://github.com/journeyman-cc/smeagol/blob/master/project.clj>, 
>> which certainly did build thirteen months ago.
>>
>> My guess is that because my code has not changed, the version of Clojure 
>> used has not changed, and the dependencies have not changed, the only thing 
>> which is not controlled for is Leiningen. Has anyone else seen a problem 
>> like this, and if so how did you cure it?
>>
>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to clojure+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/clojure/4ce229bf-99c0-4922-aca2-8f0565e7feb0%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/clojure/4ce229bf-99c0-4922-aca2-8f0565e7feb0%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> -- 
> James Reeves
> booleanknot.com
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/89f470ff-a941-4372-948e-de18b9c0128b%40googlegroups.com.

Reply via email to