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

Doesn't work under Java 11 #32

Open
Engelberg opened this issue Dec 18, 2018 · 6 comments
Open

Doesn't work under Java 11 #32

Engelberg opened this issue Dec 18, 2018 · 6 comments

Comments

@Engelberg
Copy link

Culprit is the version of fipp you rely on is an older fork that hasn't been updated to rely on the new rrb-vector. In Java 11, a toArray method was added so it is now overloaded in a way that requires a type hint to be resolved. This affected rrb-vector, which has now been fixed, but libs depending directly or indirectly on the old version don't work.

https://www.deps.co/blog/how-to-upgrade-clojure-projects-to-use-java-11/

@dgrnbrg
Copy link
Owner

dgrnbrg commented Dec 18, 2018 via email

@Engelberg
Copy link
Author

Do you remember why you chose bigml/fipp over brandonbloom/fipp? Easiest fix would be to switch to brandonbloom/fipp, but I want to make sure you don't lose functionality you were expecting from the fork.

@dgrnbrg
Copy link
Owner

dgrnbrg commented Dec 18, 2018 via email

@Engelberg
Copy link
Author

It all comes down to rrb-vector, which is a dependency of fipp and therefore puget-printer. The new version is compatible with Java 11, but also exhibits a clojurescript compilation problem under some circumstances (like when using cljsbuild as the build tool).

Interestingly, it looks like you aren't even using puget-printer when in clojurescript, so I'm not really sure why the clojurescript build even needs to compile puget-printer and therefore fipp and rrb-vector. It looks like in core.cljc you use conditional macro to require puget-printer only under clj, so I wouldn't expect puget-printer to even be compiled in clojurescript.

It seems to me that if it's possible to figure out why puget-printer is getting pulled into clojurescript, and just eliminate it from the cljs build, it would be safe to bump the dependency up to the latest puget-printer and have everything working on jdk 11, while compiling correctly on cljs.

@giodamelio
Copy link

In the mean time I was able to work around this issue (when using Leiningen) by forcing a newer version of rr-vector (the latest is 0.1.1 at the time of this comment). Just add the snippet below to you project.clj.

;; Force Spyscope to use a newer version of rrb-vector that is compatible with Java 11
:managed-dependencies [[org.clojure/core.rrb-vector "0.1.1"]]

@maris-orbidans-otm
Copy link

Doesn't work under java 15

openjdk version "15.0.2" 2021-01-19

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

4 participants