Sai platform tuplesPlatform names in sai capture the OS, arch and toolchain details in a string in a way that allows more or less specificity for matching. The general format is "os/arch[/toolchain]", eg, "linux-fedora/x86_64/gcc". The elements may contain increasingly specific details by -, eg, "linux-fedora-32/x86_64-amd", or "freertos-espidf/xl6-esp32" Builders should describe their platform in full detail, applications that want to use the platforms to perform tests should only provide the detail level they care about. Instead of direct string matching between what the builders offer and the project wants to be built on, the builders are matched from the left for both the platform and architecture individually. So, a project wanting "linux-fedora/x86_64" will successfully match on a builder offering "linux-fedora-32/x86_64-amd". But a project requesting "linux-fedora-31/x86_64" will not match it. NOTE: dots may not be used in platform tuple strings OS partThe OS class name should be first and is mandatory, eg, "linux" or "freertos". The OS name is next, eg, "linux-fedora" or "freertos-espidf". Builders should go on to give more details, eg, versioning if that is relevant for the platform, eg, "fedora-32". Projects using Well-known OS strings
Architecture partSimilarly builders should specify at least both the arch and the vendor name of the architecture, eg, "x86_64-amd", or "x86_64-intel". Projects that don't care can just specify "x86_64", ones that do care can control what it can build on more specifically, eg, "x86_64-amd". Well-known architecture strings
Toolchain partOn many platforms there is a choice of toolchain between, eg, gcc and llvm now, and sometimes others like Intel compiler, mingw, etc. For that reason it has to be treated as another "dimension" in the platform tuple. Well-known toolchain strings
Examples
Sai builder conf host namesThe Its format is Eg, Indicating virtualizationThe host part of the string can indicate its virtualization by adding a well-known suffix to the arch part, ie, indicating that the "implementor" of the arch "device" is qemu.
Eg, |