Hey IREE users and contributors,
tl;dr: support for building IREE on macOS, with GCC, with non-Ninja CMake generators, and with Bazel on Windows will *for now* have only best-effort support and be documented as such. This is largely just a codification of what is already true. We hope to move some of these to fully supported status as we are able.
We've been discussing our various build configurations and their support status. In the interest of transparency, we'd like to make it clear (and be honest with ourselves 😛) about the level of support each of these configurations has. Note that this is intended to be a reflection of reality, not necessarily a goal state. As such, we're planning to declare the following build configurations as "best effort" because they don't have CI coverage or any core developers who use them
1. Any GCC build
2. Any macOS build
3. Any Windows Bazel build
4. Any CMake build with generators other than Ninja
That doesn't mean we won't try to make them work. We just don't anticipate that they'll have the same standard of greenness as things for which we have robust presubmits. As always, patches to fix these will be welcome. We'll update our docs to reflect this (e.g. including installing ninja as part of getting started). Part of the motivation is so that we don't unnecessarily send new users down poorly maintained paths. If you have a particular use case for one of these configurations, we'd consider re-evaluating this categorization.
This also has consequences for releases. Until we can support all builds for a given platform (Windows, macOS), some releases for it will also remain best effort. The current workflow still tries to build and publish them, but continues even if they fail. You can see which configuraitons are marked experimental in
https://github.com/google/iree/blob/main/.github/workflows/build_package.yml. That is all releases for macOS (in practice we expect this will usually succeed because Mac is similar to Linux, but the mac runners on GitHub actions are pretty flaky), and integrations releases for Windows (building TF on Bazel with Windows is... interesting).
This isn't the last word on this though and I am in the process of dramatically simplifying our CI infrastructure so that we can scale up our supported configurations. The first step in that was doing an honest evaluation of where we are at now though, and we hope that being open about this will be helpful for our collaborators and users.
Best,
Geoffrey