In MacOS, two functions that differ only by capitalization will cause java class name collisions, so that jars produced by lein uberjar will fail with a java.lang.NoClassDefFoundError exception.
this occurs with tech.v3.tensor/->Tensor and tech.v3.tensor/->tensor
To reproduce:
lein uberjar any Clojure project including (defn my-func []) and (defn My-func [) in the same namespace, then java -jar my-uberjar.jar will produce the error.
Note: this is not reproducible in linux.
A fix
tech.v3.tensor/->Tensor is not used in dtype-next project, and it is an alias of the same function in tech.v3.tensor-api, so it would be safe to remove it.
One drawback to this fix is that it is a breaking change.
The issue
lein uberjar
will fail with a java.lang.NoClassDefFoundError exception.To reproduce:
lein uberjar
any Clojure project including (defn my-func []) and (defn My-func [) in the same namespace, thenjava -jar my-uberjar.jar
will produce the error.A fix
tech.v3.tensor/->Tensor
is not used in dtype-next project, and it is an alias of the same function intech.v3.tensor-api
, so it would be safe to remove it.