XGBoost4J support on Windows

Is there any interest in adding a Windows dll to the XGBoost4j jar that’s distributed in Maven Central? As far as I can tell it builds fine (and I’m willing to fix the XGBoost4j Windows build if it’s currently broken, I’ve contributed fixes for that before).

It makes it easier for downstream projects to consume XGBoost as the Maven Central jar will work across Linux, macOS and Windows x86_64 platforms. (As an aside has there been any thought about supporting macOS aarch64 when the hardware for that lands later this year?)

Distributed training in Windows is currently not operational. See https://github.com/dmlc/xgboost/issues/6049 for example. We will need to run tests and fix bugs. https://github.com/dmlc/xgboost/pull/6105 has potential to fix distributed training on Windows, but we’ll want to run tests.

EDIT. If you mean the Java/Scala package without Spark support, it might be more doable to support Windows.

The difficulty is that we don’t have access to a macOS aarch64 machine on which to test the JVM package.

If you would like to step in and help out with Windows and macOS support, let us know.

I’m currently interested in single node Java usage, we use XGBoost as a backend in our Java ML library - tribuo.org, and internally I’ve built an XGBoost4j jar with Windows, macOS and Linux support, but in the open source release of Tribuo we now depend on the XGBoost4j version in Maven Central which doesn’t have Windows.

I’m happy to help out with Windows issues for the Java package, wrt to macOS I don’t have access to an aarch64 machine either (and at the moment I’m not sure what the status of OpenJDK is on that platform, I know some work is happening http://openjdk.java.net/jeps/8251280 but I don’t know how complete it is), it was more speculative. I think the native library loader will need to become a little more complicated to make it work, separating out the binaries by both OS and architecture.