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 for Clojure 1.3.0 projects #13

Closed
bostonaholic opened this issue Oct 15, 2011 · 14 comments
Closed

Broken for Clojure 1.3.0 projects #13

bostonaholic opened this issue Oct 15, 2011 · 14 comments
Labels

Comments

@bostonaholic
Copy link

This is due to Clojure 1.3.0 Release Feature 1.1: Earmuffed Vars Are No Longer Automatically Considered Dynamic.

https://github.com/clojure/clojure/blob/master/changes.md

I get the following stacktrace when running lein spec for Clojure 1.3.0:

Warning: *reporters* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *reporters* or change the name.
Warning: *runner* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *runner* or change the name.
Warning: *specs* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *specs* or change the name.
Warning: *color?* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *color?* or change the name.
Warning: *full-stack-trace?* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *full-stack-trace?* or change the name.
Warning: *tag-filter* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *tag-filter* or change the name.
Exception in thread "main" java.lang.IllegalStateException: Can't dynamically bind non-dynamic var: speclj.config/*runner*
    at clojure.lang.Var.pushThreadBindings(Var.java:339)
    at clojure.core$push_thread_bindings.invoke(core.clj:1716)
    at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1767)
    at clojure.lang.RestFn.invoke(RestFn.java:425)
    at speclj.main$do_specs.invoke(main.clj:88)
    at speclj.main$run.doInvoke(main.clj:103)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:600)
    at speclj.main$_main.doInvoke(main.clj:106)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.lang.Var.invoke(Var.java:401)
    at clojure.lang.AFn.applyToHelper(AFn.java:161)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.core$apply.invoke(core.clj:600)
    at clojure.lang.Var.invoke(Var.java:405)
    at speclj.main.main(main.java:13)
@slagyr
Copy link
Owner

slagyr commented Oct 17, 2011

Matthew,

Thanks for the report. Indeed these vars need the :dynamic entry in their metadata for 1.3. However, I'm having a problem getting every thing working on 1.3. I'm led to believe that there may be a bug in the new Clojure implementation. Investigation is underway. Assuming we can get everything working, I'll push a new release of Speclj that's compatible with 1.3.

Micah

On Oct 15, 2011, at 6:44 PM, Matthew Boston wrote:

This is due to Clojure 1.3.0 Release Feature 1.1: Earmuffed Vars Are No Longer Automatically Considered Dynamic.

https://github.com/manutter51/Clojure-1.3-Changes-text/blob/master/README.creole

I get the following stacktrace when running lein spec for Clojure 1.3.0:

Warning: reporters not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic reporters or change the name.
Warning: runner not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic runner or change the name.
Warning: specs not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic specs or change the name.
Warning: color? not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic color? or change the name.
Warning: full-stack-trace? not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic full-stack-trace? or change the name.
Warning: tag-filter not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic tag-filter or change the name.
Exception in thread "main" java.lang.IllegalStateException: Can't dynamically bind non-dynamic var: speclj.config/runner
at clojure.lang.Var.pushThreadBindings(Var.java:339)
at clojure.core$push_thread_bindings.invoke(core.clj:1716)
at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1767)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at speclj.main$do_specs.invoke(main.clj:88)
at speclj.main$run.doInvoke(main.clj:103)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:600)
at speclj.main$_main.doInvoke(main.clj:106)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.lang.Var.invoke(Var.java:401)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.core$apply.invoke(core.clj:600)
at clojure.lang.Var.invoke(Var.java:405)
at speclj.main.main(main.java:13)

Reply to this email directly or view it on GitHub:
#13

@bostonaholic
Copy link
Author

Thank you, Micah. I'm taking a look at it as well. Hopefully we can find a solution.

@dakrone
Copy link

dakrone commented Nov 3, 2011

Has there been any update on this? Anything I can do to help?

I was considering switching a few of my projects to speclj and 1.3 compatibility is a prerequisite now that it's been released.

@slagyr
Copy link
Owner

slagyr commented Nov 3, 2011

Lee,

There was a thread on this topic on IRC, then it went on the email list, and finally I presonally reached out to Rich among other people. In the end, Rich added a 2 line fix to Clojure 1.4, and magically Speclj works.

1.4 will be released at ClojureConj in a couple weeks as I understand. I could be wrong but It seem like 1.3 will not see another release… so Speclj will likely never work on 1.3.

Micah

On Nov 3, 2011, at 12:55 PM, Lee wrote:

Has there been any update on this? Anything I can do to help?

I was considering switching a few of my projects to speclj and 1.3 compatibility is a prerequisite now that it's been released.


Reply to this email directly or view it on GitHub:
#13 (comment)

@dakrone
Copy link

dakrone commented Nov 3, 2011

That's too bad, well I'll look forward to one that works with clojure 1.4 here in a fews weeks, thanks for the quick reply :)

@slagyr
Copy link
Owner

slagyr commented Dec 1, 2011

Will be fixed with the release of Clojure 1.4

@slagyr slagyr closed this as completed Dec 1, 2011
@octopusgrabbus
Copy link

Thanks for this thread, because it answered a question I had after putting in the dynamic meta data. I'll stay on 1.2 until 1.4.

@slagyr
Copy link
Owner

slagyr commented Dec 12, 2011

Sure thing. Hopefully 1.4 comes out soon. tap tap tap

@gf3
Copy link

gf3 commented Dec 27, 2011

Hmm, I tried it on the latest alpha (1.4.0-alpha3) and I seem to be getting the same errors as 1.3.0, re: earmuffs.

@bostonaholic
Copy link
Author

@gf3 did you build speclj with clojure 1.4.x as a dependency?

@slagyr
Copy link
Owner

slagyr commented Dec 27, 2011

I was waiting for Clojure 1.4 to come out of beta before releasing the fix, but actually there's not need to wait since the changes are backwards compatible. Speclj 2.0.0 has just been released. It works with Clojure 1.4.0-alpha3, but it won't work with Clojure 1.3.

Micah

On Dec 27, 2011, at 2:34 PM, Gianni Chiappetta wrote:

Hmm, I tried it on the latest alpha (1.4.0-alpha3) and I seem to be getting the same errors as 1.3.0, re: earmuffs.


Reply to this email directly or view it on GitHub:
#13 (comment)

@gf3
Copy link

gf3 commented Dec 27, 2011

Amazing, thank-you @slagyr!

@bostonaholic
Copy link
Author

@slagyr could you upload 2.0.0 to clojars? Thanks!

@slagyr
Copy link
Owner

slagyr commented Dec 29, 2011

Doh! Done.

Micah

On Dec 29, 2011, at 3:00 AM, Matthew Boston wrote:

@slagyr could you upload 2.0.0 to clojars? Thanks!


Reply to this email directly or view it on GitHub:
#13 (comment)

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

No branches or pull requests

5 participants