Open yurivict opened 3 years ago
We don't support FreeBSD ourselves. That said, we welcome PRs from the community to make FreeBSD work!
One general suggestion is that jaxlib
reuses a lot of build infrastructure from TensorFlow. So I would first figure out what is needed to make TensorFlow build, and hopefully making jaxlib
build is then a small extension (or none at all).
TensorFlow
can't be built on FreeBSD because Bazel can only work in Google's environment and isn't viable outside.
bazel
is open source and not specific to Google's environment. However I don't know what level of FreeBSD support it has.
As I mentioned, we don't have the engineering cycles to support FreeBSD ourselves. This is something the community will have to contribute, if there is interest. We welcome PRs!
No, this isn't a matter of a level of OS support. It's a matter of bazel featureset being immature and WIP.
For example, Bazel project would assume that downloading files from the web/wan is fine, when it isn't fine for a package builder due to the build reproducibility requirement.
Bazel doesn't support easy switch to using pre-downloaded files, and doesn't play well with same software being installed from packages. It also fails with cryptic messages like the above one. Maybe these shortcomings aren't a big deal inside of Google, but they are a big deal outside.
No level of community support would ever help to fix that, especially when community primarily uses more mature tools like cmake and meson, and doesn't use bazel.
We have no interest in supporting non-Bazel builds, I'm afraid. It would be a very large task to maintain a separate build system. Feel free to raise feature requests with the Bazel project, if it doesn't fulfill your needs.
It's also unlikely we can ever use many OS-vendored packages. For example, our single largest dependency (via XLA) is LLVM, but we track LLVM head very closely (e.g., there is no released version of LLVM that we can use or that most likely even builds, barring the specific commit hashes that we use. I doubt any version more than a few days old would work, given the frequency with which we submit changes upstream). That said, I believe the TensorFlow community is working on allowing more use of OS-vendored packages in cases where it makes sense, and we would inherit whatever work happens there for JAX. I should point out that's a relatively small amount of code for JAX, though.
Any updates?
Hi @jxy, Thank you for your reply.
Thank you very much @jxy, your patches worked for me!
Hopefully we can get these checked into all the repos!
As I mentioned on the Bazel issue, please send PRs and tag me. I'll review them.
Compiler: clang-10 OS: FreeBSD 12.2