<< Back to previous view

[LOGIC-105] java.lang.IllegalArgumentException: No single method: _id of interface: clojure.core.logic.IConstraintId found for function: -id of protocol: IConstraintId Created: 17/Jan/13  Updated: 28/Jul/13  Resolved: 18/Jan/13

Status: Closed
Project: core.logic
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Major
Reporter: Timo Westkämper Assignee: David Nolen
Resolution: Declined Votes: 0
Labels: None
Environment:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)

Ubtunu 12.04 - 32 bit



 Description   

When compiling this project https://github.com/timowest/symbol with the master version of core.logic I run into the following stacktrace

Exception in thread "main" java.lang.IllegalArgumentException: No single method: _id of interface: clojure.core.logic.IConstraintId found for function: -id of protocol: IConstraintId, compiling:(clojure/core/logic.clj:177:5)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6566)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.analyze(Compiler.java:6321)
at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2668)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.analyze(Compiler.java:6321)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5138)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3750)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6557)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.access$100(Compiler.java:37)
at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:528)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.analyze(Compiler.java:6321)
at clojure.lang.Compiler.eval(Compiler.java:6622)
at clojure.lang.Compiler.load(Compiler.java:7062)
at clojure.lang.RT.loadResourceScript(RT.java:361)
at clojure.lang.RT.loadResourceScript(RT.java:352)
at clojure.lang.RT.load(RT.java:431)
at clojure.lang.RT.load(RT.java:402)
at clojure.core$load$fn__5039.invoke(core.clj:5520)
at clojure.core$load.doInvoke(core.clj:5519)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5326)
at clojure.core$load_lib$fn__4988.invoke(core.clj:5365)
at clojure.core$load_lib.doInvoke(core.clj:5364)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$load_libs.doInvoke(core.clj:5403)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:621)
at clojure.core$use.doInvoke(core.clj:5497)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at symbol.types$eval75$loading_4931auto___76.invoke(types.clj:9)
at symbol.types$eval75.invoke(types.clj:9)
at clojure.lang.Compiler.eval(Compiler.java:6618)
at clojure.lang.Compiler.eval(Compiler.java:6607)
at clojure.lang.Compiler.load(Compiler.java:7062)
at clojure.lang.RT.loadResourceScript(RT.java:361)
at clojure.lang.RT.loadResourceScript(RT.java:352)
at clojure.lang.RT.load(RT.java:431)
at clojure.lang.RT.load(RT.java:402)
at clojure.core$load$fn__5039.invoke(core.clj:5520)
at clojure.core$load.doInvoke(core.clj:5519)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5326)
at clojure.core$load_lib$fn__4988.invoke(core.clj:5365)
at clojure.core$load_lib.doInvoke(core.clj:5364)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$load_libs.doInvoke(core.clj:5403)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$require.doInvoke(core.clj:5486)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at symbol.includes_test$eval69$loading_4931auto___70.invoke(includes_test.clj:9)
at symbol.includes_test$eval69.invoke(includes_test.clj:9)
at clojure.lang.Compiler.eval(Compiler.java:6618)
at clojure.lang.Compiler.eval(Compiler.java:6607)
at clojure.lang.Compiler.load(Compiler.java:7062)
at clojure.lang.RT.loadResourceScript(RT.java:361)
at clojure.lang.RT.loadResourceScript(RT.java:352)
at clojure.lang.RT.load(RT.java:431)
at clojure.lang.RT.load(RT.java:402)
at clojure.core$load$fn__5039.invoke(core.clj:5520)
at clojure.core$load.doInvoke(core.clj:5519)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5326)
at clojure.core$load_lib$fn__4988.invoke(core.clj:5365)
at clojure.core$load_lib.doInvoke(core.clj:5364)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$load_libs.doInvoke(core.clj:5403)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$require.doInvoke(core.clj:5486)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval29$fn__50.doInvoke(NO_SOURCE_FILE:1)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:617)
at user$eval29.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:6618)
at clojure.lang.Compiler.eval(Compiler.java:6608)
at clojure.lang.Compiler.eval(Compiler.java:6581)
at clojure.core$eval.invoke(core.clj:2852)
at clojure.main$eval_opt.invoke(main.clj:300)
at clojure.main$initialize.invoke(main.clj:319)
at clojure.main$null_opt.invoke(main.clj:354)
at clojure.main$main$fn__6676.invoke(main.clj:432)
at clojure.main$main.doInvoke(main.clj:429)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:419)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalArgumentException: No single method: _id of interface: clojure.core.logic.IConstraintId found for function: -id of protocol: IConstraintId
at clojure.lang.Compiler$InvokeExpr.<init>(Compiler.java:3422)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3629)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6561)
... 99 more
Subprocess failed



 Comments   
Comment by David Nolen [ 17/Jan/13 3:20 PM ]

Can you try again with master? What do you mean by "compiling" the project? Are you AOT'ing your project?

Comment by Timo Westkämper [ 17/Jan/13 3:23 PM ]

Still the same issue. I am running 'lein midje'.

Comment by David Nolen [ 17/Jan/13 3:30 PM ]

So you are testing with Midje? Is there anyway to confirm that this issue exists if you take Midje out of the picture? Can you run the tests manually via the REPL?

The error is very puzzling since I've tested the inclusion of core.logic 0.8.0-rc2 with some other projects.

Comment by Timo Westkämper [ 17/Jan/13 3:31 PM ]

Here is the new stacktrace

Exception in thread "main" java.lang.IllegalArgumentException: No single method: _id of interface: clojure.core.logic.IConstraintId found for function: -id of protocol: IConstraintId, compiling:(clojure/core/logic.clj:169:5)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6566)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.analyze(Compiler.java:6321)
at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2668)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.analyze(Compiler.java:6321)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5707)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5138)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3750)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6557)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6547)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.access$100(Compiler.java:37)
at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:528)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6559)
at clojure.lang.Compiler.analyze(Compiler.java:6360)
at clojure.lang.Compiler.analyze(Compiler.java:6321)
at clojure.lang.Compiler.eval(Compiler.java:6622)
at clojure.lang.Compiler.load(Compiler.java:7062)
at clojure.lang.RT.loadResourceScript(RT.java:361)
at clojure.lang.RT.loadResourceScript(RT.java:352)
at clojure.lang.RT.load(RT.java:431)
at clojure.lang.RT.load(RT.java:402)
at clojure.core$load$fn__5039.invoke(core.clj:5520)
at clojure.core$load.doInvoke(core.clj:5519)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5326)
at clojure.core$load_lib$fn__4988.invoke(core.clj:5365)
at clojure.core$load_lib.doInvoke(core.clj:5364)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$load_libs.doInvoke(core.clj:5403)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:621)
at clojure.core$use.doInvoke(core.clj:5497)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at symbol.types$eval75$loading_4931auto___76.invoke(types.clj:9)
at symbol.types$eval75.invoke(types.clj:9)
at clojure.lang.Compiler.eval(Compiler.java:6618)
at clojure.lang.Compiler.eval(Compiler.java:6607)
at clojure.lang.Compiler.load(Compiler.java:7062)
at clojure.lang.RT.loadResourceScript(RT.java:361)
at clojure.lang.RT.loadResourceScript(RT.java:352)
at clojure.lang.RT.load(RT.java:431)
at clojure.lang.RT.load(RT.java:402)
at clojure.core$load$fn__5039.invoke(core.clj:5520)
at clojure.core$load.doInvoke(core.clj:5519)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5326)
at clojure.core$load_lib$fn__4988.invoke(core.clj:5365)
at clojure.core$load_lib.doInvoke(core.clj:5364)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$load_libs.doInvoke(core.clj:5403)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$require.doInvoke(core.clj:5486)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at symbol.includes_test$eval69$loading_4931auto___70.invoke(includes_test.clj:9)
at symbol.includes_test$eval69.invoke(includes_test.clj:9)
at clojure.lang.Compiler.eval(Compiler.java:6618)
at clojure.lang.Compiler.eval(Compiler.java:6607)
at clojure.lang.Compiler.load(Compiler.java:7062)
at clojure.lang.RT.loadResourceScript(RT.java:361)
at clojure.lang.RT.loadResourceScript(RT.java:352)
at clojure.lang.RT.load(RT.java:431)
at clojure.lang.RT.load(RT.java:402)
at clojure.core$load$fn__5039.invoke(core.clj:5520)
at clojure.core$load.doInvoke(core.clj:5519)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5326)
at clojure.core$load_lib$fn__4988.invoke(core.clj:5365)
at clojure.core$load_lib.doInvoke(core.clj:5364)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$load_libs.doInvoke(core.clj:5403)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$require.doInvoke(core.clj:5486)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval29$fn__50.doInvoke(NO_SOURCE_FILE:1)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:617)
at user$eval29.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:6618)
at clojure.lang.Compiler.eval(Compiler.java:6608)
at clojure.lang.Compiler.eval(Compiler.java:6581)
at clojure.core$eval.invoke(core.clj:2852)
at clojure.main$eval_opt.invoke(main.clj:300)
at clojure.main$initialize.invoke(main.clj:319)
at clojure.main$null_opt.invoke(main.clj:354)
at clojure.main$main$fn__6676.invoke(main.clj:432)
at clojure.main$main.doInvoke(main.clj:429)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:419)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalArgumentException: No single method: _id of interface: clojure.core.logic.IConstraintId found for function: -id of protocol: IConstraintId
at clojure.lang.Compiler$InvokeExpr.<init>(Compiler.java:3422)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3629)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6561)
... 99 more
Subprocess failed

Comment by Timo Westkämper [ 17/Jan/13 3:32 PM ]

Yes, same via repl

tiwe@tiwe:~/work/workspace/symbol$ lein repl
nREPL server started on port 55271
REPL-y 0.1.0-beta10
Clojure 1.5.0-RC2
Exit: Control+D or (exit) or (quit)
Commands: (user/help)
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
(user/sourcery function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Examples from clojuredocs.org: [clojuredocs or cdoc]
(user/clojuredocs name-here)
(user/clojuredocs "ns-here" "name-here")
CompilerException java.lang.IllegalArgumentException: No single method: _id of interface: clojure.core.logic.IConstraintId found for function: -id of protocol: IConstraintId, compiling:(clojure/core/logic.clj:169:5)
reply.eval-modes.nrepl=>

Comment by David Nolen [ 17/Jan/13 3:41 PM ]

OK, I just cloned your repo and switched the dependencies to Clojure 1.5.0-RC2 and core.logic 0.8.0-rc2. I can run lein repl without a hitch. While it's a bit obnoxious have you tried blowing away your maven cache and trying again? Perhaps there are other changes that aren't in your master branch on GitHub?

Comment by Timo Westkämper [ 17/Jan/13 3:51 PM ]

Yes, sorry, I forgot to push some changes. Could you pull and try again?

Comment by David Nolen [ 17/Jan/13 3:55 PM ]

I still cannot reproduce after pulling from master. I note that your repl prompt looks a bit different from mine however - "reply.eval-modes.nrepl=>", whereas I have "symbol.main=>"

Comment by Timo Westkämper [ 18/Jan/13 2:41 AM ]

It looks like this was caused by a too old version of clojure on my machine. I didn't realize lein uses the clojure version I have installed on Ubuntu for compilation instead of the version mentioned in project.clj.

Comment by David Nolen [ 18/Jan/13 9:53 AM ]

Thanks for the update, closing this one!

Generated at Wed Apr 23 17:14:16 CDT 2014 using JIRA 4.4#649-r158309.