core.rrb-vector

rrb-vector won't compile with clojurescript: clojure.lang.ArityException: Wrong number of args (1) passed to: nodes/ranges

Details

  • Type: Defect Defect
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Completed
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Environment:
    [org.clojure/clojurescript "1.9.293"]

Description

rrb-vector does not compile under recent versions of clojurescript.

See this error report in a project using rrb-vector for more details & fix:
https://github.com/brandonbloom/fipp/issues/42

Activity

Hide
Stuart Sierra added a comment -

I have encountered the same issue as described in fipp#42 but I cannot reproduce it in a standalone project with just ClojureScript and rrb-vector.

Show
Stuart Sierra added a comment - I have encountered the same issue as described in fipp#42 but I cannot reproduce it in a standalone project with just ClojureScript and rrb-vector.
Hide
Stuart Sierra added a comment -

This may be an issue only with cljsbuild: see https://github.com/emezeske/lein-cljsbuild/issues/469

It appears to have something to do with a macro name clashing with a function name, but I don't understand the details.

Show
Stuart Sierra added a comment - This may be an issue only with cljsbuild: see https://github.com/emezeske/lein-cljsbuild/issues/469 It appears to have something to do with a macro name clashing with a function name, but I don't understand the details.
Hide
Dmitri Sotnikov added a comment -

Still appears to be an issue with Clojure 1.9 and ClojureScript 1.10.238.

Show
Dmitri Sotnikov added a comment - Still appears to be an issue with Clojure 1.9 and ClojureScript 1.10.238.
Hide
Miikka Koskinen added a comment -

This happens if clojure.core.rrb-vector.nodes Clojure namespace is loaded before rrb-vector is compiled as ClojureScript. I have a cljs.main reproduction here: https://github.com/miikka/cljs-rrb-vector-repro

I believe that the problem is that in nodes.clj, there's a 2-ary macro called ranges, and in nodes.cljs there's a unary function called ranges. Now if you refer nodes from clojure.core.rrb-vector.nodes in the ClojureScript code and the Clojure namespace is loaded, you'll get the macro instead of the function.

Show
Miikka Koskinen added a comment - This happens if clojure.core.rrb-vector.nodes Clojure namespace is loaded before rrb-vector is compiled as ClojureScript. I have a cljs.main reproduction here: https://github.com/miikka/cljs-rrb-vector-repro I believe that the problem is that in nodes.clj, there's a 2-ary macro called ranges, and in nodes.cljs there's a unary function called ranges. Now if you refer nodes from clojure.core.rrb-vector.nodes in the ClojureScript code and the Clojure namespace is loaded, you'll get the macro instead of the function.
Hide
Miikka Koskinen added a comment -

Also reported in CRRBV-19.

Show
Miikka Koskinen added a comment - Also reported in CRRBV-19.
Hide
Mark Stuart added a comment -

This has hit me today, I'm using Clojure 1.10 and ClojureScript 1.10.439 along with figwheel-main 0.2.0

Show
Mark Stuart added a comment - This has hit me today, I'm using Clojure 1.10 and ClojureScript 1.10.439 along with figwheel-main 0.2.0
Hide
Alex Miller added a comment -

Can someone supply a patch? Happy to help get it applied and released if needed.

Show
Alex Miller added a comment - Can someone supply a patch? Happy to help get it applied and released if needed.
Hide
Michał Marczyk added a comment -

Just pushed a workaround commit renaming the function involved in the apparent name clash on the ClojureScript side and cut a new release (0.0.14).

Thanks for the report and the diagnosis!

Show
Michał Marczyk added a comment - Just pushed a workaround commit renaming the function involved in the apparent name clash on the ClojureScript side and cut a new release (0.0.14). Thanks for the report and the diagnosis!

People

Vote (6)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: