functional-koans / clojure-koans

A set of exercises for learning Clojure
3.74k stars 2.14k forks source link

Not compatible with Clojure > 1.8 #139

Closed lucian303 closed 5 years ago

lucian303 commented 5 years ago

See exception below. This dependency is not 1.9+ compatible. The easy fix is to change project.clj to require clojure 1.8.

$ lein repl
Exception in thread "main" Syntax error macroexpanding clojure.core/ns at (spyscope/core.clj:1:1).
Call to clojure.core/ns did not conform to spec.
    at clojure.lang.Compiler.checkSpecs(Compiler.java:6971)
    at clojure.lang.Compiler.macroexpand1(Compiler.java:6987)
    at clojure.lang.Compiler.macroexpand(Compiler.java:7074)
    at clojure.lang.Compiler.eval(Compiler.java:7160)
    at clojure.lang.Compiler.load(Compiler.java:7635)
    at clojure.lang.RT.loadResourceScript(RT.java:381)
    at clojure.lang.RT.loadResourceScript(RT.java:372)
    at clojure.lang.RT.load(RT.java:463)
    at clojure.lang.RT.load(RT.java:428)
    at clojure.core$load$fn__6824.invoke(core.clj:6126)
    at clojure.core$load.invokeStatic(core.clj:6125)
    at clojure.core$load.doInvoke(core.clj:6109)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invokeStatic(core.clj:5908)
    at clojure.core$load_one.invoke(core.clj:5903)
    at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
    at clojure.core$load_lib.invokeStatic(core.clj:5947)
    at clojure.core$load_lib.doInvoke(core.clj:5928)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invokeStatic(core.clj:667)
    at clojure.core$load_libs.invokeStatic(core.clj:5985)
    at clojure.core$load_libs.doInvoke(core.clj:5969)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:667)
    at clojure.core$require.invokeStatic(core.clj:6007)
    at clojure.core$require.doInvoke(core.clj:6007)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at koan_engine.runner$eval1794.invokeStatic(form-init3956627785839174025.clj:1)
    at koan_engine.runner$eval1794.invoke(form-init3956627785839174025.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:7176)
    at clojure.lang.Compiler.eval(Compiler.java:7165)
    at clojure.lang.Compiler.load(Compiler.java:7635)
    at clojure.lang.Compiler.loadFile(Compiler.java:7573)
    at clojure.main$load_script.invokeStatic(main.clj:452)
    at clojure.main$init_opt.invokeStatic(main.clj:454)
    at clojure.main$init_opt.invoke(main.clj:454)
    at clojure.main$initialize.invokeStatic(main.clj:485)
    at clojure.main$null_opt.invokeStatic(main.clj:519)
    at clojure.main$null_opt.invoke(main.clj:516)
    at clojure.main$main.invokeStatic(main.clj:598)
    at clojure.main$main.doInvoke(main.clj:561)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.lang.Var.applyTo(Var.java:705)
    at clojure.main.main(main.java:37)
Caused by: clojure.lang.ExceptionInfo: Call to clojure.core/ns did not conform to spec. {:clojure.spec.alpha/problems [{:path [], :reason "Extra input", :pred (clojure.spec.alpha/cat :attr-map (clojure.spec.alpha/? clojure.core/map?) :ns-clauses :clojure.core.specs.alpha/ns-clauses), :val ((require [clojure.pprint :as pp] [clojure.string :as str] [clj-time.core :as time] [clj-time.format :as fmt])), :via [:clojure.core.specs.alpha/ns-form], :in [2]}], :clojure.spec.alpha/spec #object[clojure.spec.alpha$regex_spec_impl$reify__2509 0x4e93dcb9 "clojure.spec.alpha$regex_spec_impl$reify__2509@4e93dcb9"], :clojure.spec.alpha/value (spyscope.core "This co" (require [clojure.pprint :as pp] [clojure.string :as str] [clj-time.core :as time] [clj-time.format :as fmt])), :clojure.spec.alpha/args (spyscope.core "This co" (require [clojure.pprint :as pp] [clojure.string :as str] [clj-time.core :as time] [clj-time.format :as fmt]))}
    at clojure.spec.alpha$macroexpand_check.invokeStatic(alpha.clj:705)
    at clojure.spec.alpha$macroexpand_check.invoke(alpha.clj:697)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.lang.Var.applyTo(Var.java:705)
    at clojure.lang.Compiler.checkSpecs(Compiler.java:6969)
    ... 43 more
trptcolin commented 5 years ago

This looks like an issue with a different project, spyscope. Perhaps it's installed as a plugin in your local setup (e.g. in ~/.lein/profiles.clj or ~/.boot/profile.boot)? This project already uses Clojure 1.10, and doesn't have a dependency on spyscope.

See https://github.com/dgrnbrg/spyscope/issues/26 for details - it looks like the issue is fixed on master of that repository, but may not have been released.