Comments (14)
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
from speclj.
Thank you, Micah. I'm taking a look at it as well. Hopefully we can find a solution.
from speclj.
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.
from speclj.
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)
from speclj.
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 :)
from speclj.
Will be fixed with the release of Clojure 1.4
from speclj.
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.
from speclj.
Sure thing. Hopefully 1.4 comes out soon. tap tap tap
from speclj.
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.
from speclj.
@gf3 did you build speclj with clojure 1.4.x as a dependency?
from speclj.
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)
from speclj.
Amazing, thank-you @slagyr!
from speclj.
@slagyr could you upload 2.0.0 to clojars? Thanks!
from speclj.
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)
from speclj.
Related Issues (20)
- Add support for regex's with should-throw?
- Unable to open file '/dev/stdout' HOT 1
- Ring auto-reload: Unable to resolve var: speclj.stub/*stubbed-invocations* in this context HOT 1
- Hook for exception reporting
- Home page: Sorce code -> Source code
- Use a less error-prone test for cljs
- Autotest runs tests twice when specifying reporter HOT 1
- There's no spec-specific Leiningen profile HOT 2
- Documentation not working on the site
- 'Expected' vs 'got' HOT 2
- Could not find variable require HOT 2
- context feature HOT 1
- "lein spec" uses a different namespace relative to "lein spec -a"
- Introduction of cemerick/url as project dependency breaks speclj HOT 1
- "let" around multiple specs causes only last spec to execute HOT 1
- NullPointerException using `should-invoke` when test ought to pass HOT 1
- should= with nil floats yields java.lang.NullPointerException
- directory name with space in it HOT 2
- cljs howto broken
- Running a single test from the repl
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from speclj.