diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2018-11-27 11:27:45 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2018-11-27 11:27:45 -0500 |
| commit | 3c4965a6162e50064d22bc1900584e74e2ef15ea (patch) | |
| tree | 001606cc1f457e31eaad4192fab227fa35cdbc05 /README.md | |
| parent | 2baf0e2ffc154d7915e690ddb4d892d1bafd5db2 (diff) | |
| download | zig-3c4965a6162e50064d22bc1900584e74e2ef15ea.tar.gz zig-3c4965a6162e50064d22bc1900584e74e2ef15ea.zip | |
readme: update support table
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 92 |
1 files changed, 65 insertions, 27 deletions
@@ -42,33 +42,71 @@ clarity. * In addition to creating executables, creating a C library is a primary use case. You can export an auto-generated .h file. -### Support Table - -Freestanding means that you do not directly interact with the OS -or you are writing your own OS. - -Note that if you use libc or other libraries to interact with the OS, -that counts as "freestanding" for the purposes of this table. - -| | freestanding | linux | macosx | windows | other | -|-------------|--------------|---------|---------|---------|---------| -|i386 | OK | planned | OK | planned | planned | -|x86_64 | OK | OK | OK | OK | planned | -|arm | OK | planned | planned | planned | planned | -|bpf | OK | planned | N/A | N/A | planned | -|hexagon | OK | planned | N/A | N/A | planned | -|mips | OK | planned | N/A | N/A | planned | -|powerpc | OK | planned | N/A | N/A | planned | -|r600 | OK | planned | N/A | N/A | planned | -|amdgcn | OK | planned | N/A | N/A | planned | -|sparc | OK | planned | N/A | N/A | planned | -|s390x | OK | planned | N/A | N/A | planned | -|spir | OK | planned | N/A | N/A | planned | -|lanai | OK | planned | N/A | N/A | planned | -|wasm32 | planned | N/A | N/A | N/A | N/A | -|wasm64 | planned | N/A | N/A | N/A | N/A | -|riscv32 | planned | planned | N/A | N/A | planned | -|riscv64 | planned | planned | N/A | N/A | planned | +### Supported Targets + +#### Tier 1 Support + + * Not only can Zig generate machine code for these targets, but the standard + library cross-platform abstractions have implementations for these targets. + Thus it is practical to write a pure Zig application with no dependency on + libc. + * The CI server automatically tests these targets on every commit to master + branch, and updates ziglang.org/download with links to pre-built binaries. + * These targets have debug info capabilities and therefore produce stack + traces on failed assertions. + +#### Tier 2 Support + + * There may be some standard library implementations, but many abstractions + will give an "Unsupported OS" compile error. One can link with libc or other + libraries to fill in the gaps in the standard library. + * These targets are known to work, but are not automatically tested, so there + are occasional regressions. + * Some tests may be disabled for these targets as we work toward Tier 1 + support. + +#### Tier 3 Support + + * The standard library has little to no knowledge of the existence of this + target. + * Because Zig is based on LLVM, it has the capability to build for these + targets, and LLVM has the target enabled by default. + * These targets are not frequently tested; one will likely need to contribute + to Zig in order to build for these targets. + * The Zig compiler might need to be updated with a few things such as + - what sizes are the C integer types + - C ABI calling convention for this target + - bootstrap code and default panic handler + +#### Tier 4 Support + + * Support for these targets is entirely experimental. + * LLVM may have the target as an experimental target, which means that you + need to use Zig-provided binaries for the target to be available, or + build LLVM from source with special configure flags. + +#### Support Table + +| | freestanding | linux | macosx | windows | freebsd | other | +|--------|--------------|--------|--------|---------|---------|--------| +|x86_64 | Tier 2 | Tier 1 | Tier 1 | Tier 1 | Tier 3 | Tier 3 | +|i386 | Tier 2 | Tier 2 | Tier 2 | Tier 2 | Tier 3 | Tier 3 | +|arm | Tier 2 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | +|arm64 | Tier 2 | Tier 2 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | +|bpf | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|hexagon | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|mips | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|powerpc | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|r600 | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|amdgcn | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|sparc | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|s390x | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|spir | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|lanai | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | +|wasm32 | Tier 4 | N/A | N/A | N/A | N/A | N/A | +|wasm64 | Tier 4 | N/A | N/A | N/A | N/A | N/A | +|riscv32 | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | +|riscv64 | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | ## Community |
