It looks like the problem is with the macro -inc.  It should quote the 
internal fn name so that it stays an unqualified symbol during macro 
expansion.  I need to test this a bit as I’m not familiar with this code. 
 I’ll make a patch soon if David doesn’t fix it first.


By the way, spec pointed me to the right place, but I didn’t see the 
problem at first.  Maybe the spec needs to be improved here to test the 
internal name.  I’ll have to look at that later.


If you just want to get going, here the quick fix...


diff --git a/src/main/clojure/clojure/core/logic.clj 
b/src/main/clojure/clojure/core/logic.clj

index 3e98397..2dcb818 100644

--- a/src/main/clojure/clojure/core/logic.clj

+++ b/src/main/clojure/clojure/core/logic.clj

@@ -1075,7 +1075,7 @@

      `(mplus ~e (fn [] (mplus* ~@e-rest)))))

 

 (defmacro -inc [& rest]

-  `(fn -inc [] ~@rest))

+  `(fn ~'-inc [] ~@rest))

 

On Tuesday, September 13, 2016 at 3:45:18 AM UTC-4, Burt wrote:
>
> Hi,
>
> with "1.9.0-alpha10" and core.logic "0.8.10":
>
> (ns lwb.nd.rules
>   (:refer-clojure :exclude [==])
>   (:require [clojure.core.logic :refer :all]))
> => nil
>
> with "1.9.0-alpha12" and core.logic "0.8.10":
>
> (ns lwb.nd.rules
>   (:refer-clojure :exclude [==])
>   (:require [clojure.core.logic :refer :all]))
> CompilerException clojure.lang.ExceptionInfo: Call to clojure.core/fn did 
> not conform to spec:
> In: [0] val: clojure.core.logic/-inc fails spec: 
> :clojure.core.specs/arg-list at: [:args :bs :arity-1 :args] predicate: 
> vector?
> In: [0] val: clojure.core.logic/-inc fails spec: 
> :clojure.core.specs/args+body at: [:args :bs :arity-n] predicate: (cat 
> :args :clojure.core.specs/arg-list :prepost (? map?) :body (* any?))
> :clojure.spec/args  (clojure.core.logic/-inc [] (bind (this) g))
>  #:clojure.spec{:problems ({:path [:args :bs :arity-1 :args], :pred 
> vector?, :val clojure.core.logic/-inc, :via [:clojure.core.specs/args+body 
> :clojure.core.specs/arg-list :clojure.core.specs/arg-list], :in [0]} {:path 
> [:args :bs :arity-n], :pred (cat :args :clojure.core.specs/arg-list 
> :prepost (? map?) :body (* any?)), :val clojure.core.logic/-inc, :via 
> [:clojure.core.specs/args+body :clojure.core.specs/args+body], :in [0]}), 
> :args (clojure.core.logic/-inc [] (bind (this) g))}, 
> compiling:(clojure/core/logic.clj:1130:5) 
>
> Is there already a fix for this?
>
> Kind regards,
> Burt
>
>

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to