nathanmarz / cascalog

Data processing on Hadoop without the hassle.
Other
1.38k stars 178 forks source link

Clojure 1.7.0 Warnings due to new core functions #291

Open timothypratley opened 8 years ago

timothypratley commented 8 years ago

When using Clojure 1.7.0 warnings are emitted:

WARNING: some? already refers to: #'clojure.core/some? in namespace: jackknife.seq, being replaced by: #'jackknife.seq/some?
Warning: protocol #'cascalog.cascading.flow/IRunnable is overwriting function run!
WARNING: run! already refers to: #'clojure.core/run! in namespace: cascalog.cascading.flow, being replaced by: #'cascalog.cascading.flow/run!

These can be addressed by modifying the ns form: (:refer-clojure :exclude [some?])

I can submit a pull request if prefered (it is a very minor change)

midje.cascalog is especially noisy (about 50 warnings emitted)

...
WARNING: record? already refers to: #'clojure.core/record? in namespace: midje.data.project-state, being replaced by: #'midje.clojure.core/record?
sritchie commented 8 years ago

Sure, that'd be great!

dkincaid commented 8 years ago

This is a blocker to using Clojure 1.7.0 with Cascalog. It's more than just warnings. I'm having all my tests fail when running Clojure 1.7.0. They pass with 1.6.0. Could we get this in and a new release? Some tools are starting to require 1.7.0 (clj-refactor for one).

timothypratley commented 8 years ago

Hi @dkincaid and you try out https://github.com/nathanmarz/cascalog/pull/293 and let me know if it works for you? I believe it is good to go, but am only a light user and so it would be good to know if there are things that were overlooked.

dkincaid commented 8 years ago

Sure I'll give it a try. Could you refresh my memory on how to build and install locally? I tried lein sub install from the root and it's able to find the lib (cascalog/cascalog-core "3.0.0-SNAPSHOT"), but I'm getting a ClassNotFoundException when trying to run the tests in my project:

Caused by: java.lang.ClassNotFoundException: cascalog.cascading.types.CascadingPlatform

dkincaid commented 8 years ago

Interesting. There is no (:gen-class) in cascalog.cascading.types.clj and no :aot in project.clj. Don't we need those for leiningen to compile the Java classes? I added those, rebuilt and it's running now.

dkincaid commented 8 years ago

Unfortunately, my tests are still failing under clojure 1.7.0. I'm not getting the warnings anymore about run! being overridden though. So it appears there is a more fundamental problem with at least midje-cascalog.

sritchie commented 8 years ago

Hey @dkincaid, can you give us an example of a test that fails under 1.7.0? Would love to get this fixed.