Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken with Clojure 1.9.0-alpha11 #5

Closed
Deraen opened this issue Aug 19, 2016 · 9 comments
Closed

Broken with Clojure 1.9.0-alpha11 #5

Deraen opened this issue Aug 19, 2016 · 9 comments

Comments

@Deraen
Copy link

Deraen commented Aug 19, 2016

Such.sequences has a bad ns form with :require which is missing :.

https://github.com/marick/suchwow/blob/master/src/such/sequences.clj#L2

@marick
Copy link
Owner

marick commented Aug 19, 2016

The obvious fix breaks on all previous versions. This is why I'm giving up on Clojure

@arrdem
Copy link

arrdem commented Aug 19, 2016

😢

@gfredericks
Copy link

I tried changing require to :require and it worked fine with clojure 1.8. @marick how does this break for you?

@puredanger
Copy link
Contributor

I created a PR at #6 with the fix. Hope that helps.

@peter
Copy link

peter commented Aug 21, 2016

+1 for applying the PR by puredanger. Until this is fixed midje won't work, see:

marick/Midje#369

@marick
Copy link
Owner

marick commented Aug 21, 2016

I will fix this this evening.

@marick
Copy link
Owner

marick commented Aug 21, 2016

I ask a favor. If - if - you agree with me that the following error message is unacceptably unhelpful in this age of Elixir and Elm, please respond to https://groups.google.com/forum/?hl=en#!topic/clojure/mIlKaOiujlo With respect to @puredanger (who is a better, more patient person than I am) the idea that "spec error messages are going to be increasingly common for all of us to see and understand and I think it is worth taking the time to slow down and actually read them" is just not going to fly these days. Although I am ~90% certain to abandon Clojure for Elixir+Elm, I still think the idea of Lisp is great.

If you disagree, it would be appropriate to say that too.

Exception in thread "main" java.lang.IllegalArgumentException: Call to clojure.core/ns did not conform to spec:
In: [2] val: ((require [such.vars :as var] [such.immigration :as immigrate]) (require midje.checking.checkers.defining midje.checking.checkers.chatty midje.checking.checkers.simple midje.checking.checkers.combining midje.checking.checkers.collection)) fails at: [:args] predicate: (cat :attr-map (? map?) :clauses :clojure.core.specs/ns-clauses),  Extra input
:clojure.spec/args  (midje.checkers "Checkers are for checking results of checkables, or checking \n   that appropriate arguments are passed to prerequisites" (require [such.vars :as var] [such.immigration :as immigrate]) (require midje.checking.checkers.defining midje.checking.checkers.chatty midje.checking.checkers.simple midje.checking.checkers.combining midje.checking.checkers.collection))
, compiling:(midje/checkers.clj:1:1)
    at clojure.lang.Compiler.macroexpand1(Compiler.java:6795)
    at clojure.lang.Compiler.macroexpand(Compiler.java:6861)
    at clojure.lang.Compiler.eval(Compiler.java:6935)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.RT.loadResourceScript(RT.java:374)
    at clojure.lang.RT.loadResourceScript(RT.java:365)
    at clojure.lang.RT.load(RT.java:455)
    at clojure.lang.RT.load(RT.java:421)
    at clojure.core$load$fn__7645.invoke(core.clj:6008)
    at clojure.core$load.invokeStatic(core.clj:6007)
    at clojure.core$load.doInvoke(core.clj:5991)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5812)
    at clojure.core$load_one.invoke(core.clj:5807)
    at clojure.core$load_lib$fn__7590.invoke(core.clj:5852)
    at clojure.core$load_lib.invokeStatic(core.clj:5851)
    at clojure.core$load_lib.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5889)
    at clojure.core$load_libs.doInvoke(core.clj:5873)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5911)
    at clojure.core$require.doInvoke(core.clj:5911)
    at clojure.lang.RestFn.invoke(RestFn.java:512)
    at midje.parsing.3_from_lexical_maps.from_fake_maps$eval8453$loading__7531__auto____8454.invoke(from_fake_maps.clj:1)
    at midje.parsing.3_from_lexical_maps.from_fake_maps$eval8453.invokeStatic(from_fake_maps.clj:1)
    at midje.parsing.3_from_lexical_maps.from_fake_maps$eval8453.invoke(from_fake_maps.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6951)
    at clojure.lang.Compiler.eval(Compiler.java:6940)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.RT.loadResourceScript(RT.java:374)
    at clojure.lang.RT.loadResourceScript(RT.java:365)
    at clojure.lang.RT.load(RT.java:455)
    at clojure.lang.RT.load(RT.java:421)
    at clojure.core$load$fn__7645.invoke(core.clj:6008)
    at clojure.core$load.invokeStatic(core.clj:6007)
    at clojure.core$load.doInvoke(core.clj:5991)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5812)
    at clojure.core$load_one.invoke(core.clj:5807)
    at clojure.core$load_lib$fn__7590.invoke(core.clj:5852)
    at clojure.core$load_lib.invokeStatic(core.clj:5851)
    at clojure.core$load_lib.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5889)
    at clojure.core$load_libs.doInvoke(core.clj:5873)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5911)
    at clojure.core$require.doInvoke(core.clj:5911)
    at clojure.lang.RestFn.invoke(RestFn.java:551)
    at midje.parsing.lexical_maps$eval8445$loading__7531__auto____8446.invoke(lexical_maps.clj:1)
    at midje.parsing.lexical_maps$eval8445.invokeStatic(lexical_maps.clj:1)
    at midje.parsing.lexical_maps$eval8445.invoke(lexical_maps.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6951)
    at clojure.lang.Compiler.eval(Compiler.java:6940)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.RT.loadResourceScript(RT.java:374)
    at clojure.lang.RT.loadResourceScript(RT.java:365)
    at clojure.lang.RT.load(RT.java:455)
    at clojure.lang.RT.load(RT.java:421)
    at clojure.core$load$fn__7645.invoke(core.clj:6008)
    at clojure.core$load.invokeStatic(core.clj:6007)
    at clojure.core$load.doInvoke(core.clj:5991)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5812)
    at clojure.core$load_one.invoke(core.clj:5807)
    at clojure.core$load_lib$fn__7590.invoke(core.clj:5852)
    at clojure.core$load_lib.invokeStatic(core.clj:5851)
    at clojure.core$load_lib.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5889)
    at clojure.core$load_libs.doInvoke(core.clj:5873)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5911)
    at clojure.core$require.doInvoke(core.clj:5911)
    at clojure.lang.RestFn.invoke(RestFn.java:512)
    at midje.parsing.2_to_lexical_maps.fakes$eval8437$loading__7531__auto____8438.invoke(fakes.clj:1)
    at midje.parsing.2_to_lexical_maps.fakes$eval8437.invokeStatic(fakes.clj:1)
    at midje.parsing.2_to_lexical_maps.fakes$eval8437.invoke(fakes.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6951)
    at clojure.lang.Compiler.eval(Compiler.java:6940)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.RT.loadResourceScript(RT.java:374)
    at clojure.lang.RT.loadResourceScript(RT.java:365)
    at clojure.lang.RT.load(RT.java:455)
    at clojure.lang.RT.load(RT.java:421)
    at clojure.core$load$fn__7645.invoke(core.clj:6008)
    at clojure.core$load.invokeStatic(core.clj:6007)
    at clojure.core$load.doInvoke(core.clj:5991)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5812)
    at clojure.core$load_one.invoke(core.clj:5807)
    at clojure.core$load_lib$fn__7590.invoke(core.clj:5852)
    at clojure.core$load_lib.invokeStatic(core.clj:5851)
    at clojure.core$load_lib.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5889)
    at clojure.core$load_libs.doInvoke(core.clj:5873)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5911)
    at clojure.core$require.doInvoke(core.clj:5911)
    at clojure.lang.RestFn.invoke(RestFn.java:1523)
    at midje.data.prerequisite_state$eval8244$loading__7531__auto____8245.invoke(prerequisite_state.clj:1)
    at midje.data.prerequisite_state$eval8244.invokeStatic(prerequisite_state.clj:1)
    at midje.data.prerequisite_state$eval8244.invoke(prerequisite_state.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6951)
    at clojure.lang.Compiler.eval(Compiler.java:6940)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.RT.loadResourceScript(RT.java:374)
    at clojure.lang.RT.loadResourceScript(RT.java:365)
    at clojure.lang.RT.load(RT.java:455)
    at clojure.lang.RT.load(RT.java:421)
    at clojure.core$load$fn__7645.invoke(core.clj:6008)
    at clojure.core$load.invokeStatic(core.clj:6007)
    at clojure.core$load.doInvoke(core.clj:5991)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5812)
    at clojure.core$load_one.invoke(core.clj:5807)
    at clojure.core$load_lib$fn__7590.invoke(core.clj:5852)
    at clojure.core$load_lib.invokeStatic(core.clj:5851)
    at clojure.core$load_lib.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5889)
    at clojure.core$load_libs.doInvoke(core.clj:5873)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5911)
    at clojure.core$require.doInvoke(core.clj:5911)
    at clojure.lang.RestFn.invoke(RestFn.java:805)
    at midje.checking.checkables$eval8208$loading__7531__auto____8209.invoke(checkables.clj:1)
    at midje.checking.checkables$eval8208.invokeStatic(checkables.clj:1)
    at midje.checking.checkables$eval8208.invoke(checkables.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6951)
    at clojure.lang.Compiler.eval(Compiler.java:6940)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.RT.loadResourceScript(RT.java:374)
    at clojure.lang.RT.loadResourceScript(RT.java:365)
    at clojure.lang.RT.load(RT.java:455)
    at clojure.lang.RT.load(RT.java:421)
    at clojure.core$load$fn__7645.invoke(core.clj:6008)
    at clojure.core$load.invokeStatic(core.clj:6007)
    at clojure.core$load.doInvoke(core.clj:5991)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5812)
    at clojure.core$load_one.invoke(core.clj:5807)
    at clojure.core$load_lib$fn__7590.invoke(core.clj:5852)
    at clojure.core$load_lib.invokeStatic(core.clj:5851)
    at clojure.core$load_lib.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5889)
    at clojure.core$load_libs.doInvoke(core.clj:5873)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5911)
    at clojure.core$require.doInvoke(core.clj:5911)
    at clojure.lang.RestFn.invoke(RestFn.java:436)
    at midje.sweet$eval7876$loading__7531__auto____7877.invoke(sweet.clj:4)
    at midje.sweet$eval7876.invokeStatic(sweet.clj:4)
    at midje.sweet$eval7876.invoke(sweet.clj:4)
    at clojure.lang.Compiler.eval(Compiler.java:6951)
    at clojure.lang.Compiler.eval(Compiler.java:6940)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.RT.loadResourceScript(RT.java:374)
    at clojure.lang.RT.loadResourceScript(RT.java:365)
    at clojure.lang.RT.load(RT.java:455)
    at clojure.lang.RT.load(RT.java:421)
    at clojure.core$load$fn__7645.invoke(core.clj:6008)
    at clojure.core$load.invokeStatic(core.clj:6007)
    at clojure.core$load.doInvoke(core.clj:5991)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5812)
    at clojure.core$load_one.invoke(core.clj:5807)
    at clojure.core$load_lib$fn__7590.invoke(core.clj:5852)
    at clojure.core$load_lib.invokeStatic(core.clj:5851)
    at clojure.core$load_lib.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5889)
    at clojure.core$load_libs.doInvoke(core.clj:5873)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5911)
    at clojure.core$require.doInvoke(core.clj:5911)
    at clojure.lang.RestFn.invoke(RestFn.java:2793)
    at midje.repl$eval4497$loading__7531__auto____4498.invoke(repl.clj:1)
    at midje.repl$eval4497.invokeStatic(repl.clj:1)
    at midje.repl$eval4497.invoke(repl.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6951)
    at clojure.lang.Compiler.eval(Compiler.java:6940)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.RT.loadResourceScript(RT.java:374)
    at clojure.lang.RT.loadResourceScript(RT.java:365)
    at clojure.lang.RT.load(RT.java:455)
    at clojure.lang.RT.load(RT.java:421)
    at clojure.core$load$fn__7645.invoke(core.clj:6008)
    at clojure.core$load.invokeStatic(core.clj:6007)
    at clojure.core$load.doInvoke(core.clj:5991)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5812)
    at clojure.core$load_one.invoke(core.clj:5807)
    at clojure.core$load_lib$fn__7590.invoke(core.clj:5852)
    at clojure.core$load_lib.invokeStatic(core.clj:5851)
    at clojure.core$load_lib.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$load_libs.invokeStatic(core.clj:5889)
    at clojure.core$load_libs.doInvoke(core.clj:5873)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:659)
    at clojure.core$require.invokeStatic(core.clj:5911)
    at clojure.core$require.doInvoke(core.clj:5911)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at user$eval4491.invokeStatic(form-init1525926663091106112.clj:1)
    at user$eval4491.invoke(form-init1525926663091106112.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6951)
    at clojure.lang.Compiler.eval(Compiler.java:6941)
    at clojure.lang.Compiler.eval(Compiler.java:6940)
    at clojure.lang.Compiler.load(Compiler.java:7403)
    at clojure.lang.Compiler.loadFile(Compiler.java:7341)
    at clojure.main$load_script.invokeStatic(main.clj:276)
    at clojure.main$init_opt.invokeStatic(main.clj:278)
    at clojure.main$init_opt.invoke(main.clj:278)
    at clojure.main$initialize.invokeStatic(main.clj:309)
    at clojure.main$null_opt.invokeStatic(main.clj:343)
    at clojure.main$null_opt.invoke(main.clj:340)
    at clojure.main$main.invokeStatic(main.clj:422)
    at clojure.main$main.doInvoke(main.clj:385)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalArgumentException: Call to clojure.core/ns did not conform to spec:
In: [2] val: ((require [such.vars :as var] [such.immigration :as immigrate]) (require midje.checking.checkers.defining midje.checking.checkers.chatty midje.checking.checkers.simple midje.checking.checkers.combining midje.checking.checkers.collection)) fails at: [:args] predicate: (cat :attr-map (? map?) :clauses :clojure.core.specs/ns-clauses),  Extra input
:clojure.spec/args  (midje.checkers "Checkers are for checking results of checkables, or checking \n   that appropriate arguments are passed to prerequisites" (require [such.vars :as var] [such.immigration :as immigrate]) (require midje.checking.checkers.defining midje.checking.checkers.chatty midje.checking.checkers.simple midje.checking.checkers.combining midje.checking.checkers.collection))

    at clojure.spec$macroexpand_check.invokeStatic(spec.clj:627)
    at clojure.spec$macroexpand_check.invoke(spec.clj:616)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.lang.Compiler.macroexpand1(Compiler.java:6789)
    ... 239 more
Error encountered performing task 'midje' with profile(s): 'base,system,user,provided,dev,1.9'
Subprocess failed
986 $ 

@marick
Copy link
Owner

marick commented Aug 21, 2016

This is fixed in 5.2.3. However, the real issue, that Midje is broken under Clojure 1.9alpha11, isn't solved. Midje had a bad ns form as well. However, fixing it reveals that Midje depends on a version of clojure.core.unify that also has a (different) core.spec failure.

Users of suchwow are fine, but the tests won't work under Clojure 1.9alpha11.

@marick marick closed this as completed Aug 21, 2016
@marick
Copy link
Owner

marick commented Aug 22, 2016

Midje 1.9.0-alpha5 is now compatible with Clojure 1.9-alpha11.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants