readme: update support table

This commit is contained in:
Andrew Kelley 2018-11-27 11:27:45 -05:00
parent 2baf0e2ffc
commit 3c4965a616
No known key found for this signature in database
GPG key ID: 7C5F548F728501A9

View file

@ -42,33 +42,71 @@ clarity.
* In addition to creating executables, creating a C library is a primary use * In addition to creating executables, creating a C library is a primary use
case. You can export an auto-generated .h file. case. You can export an auto-generated .h file.
### Support Table ### Supported Targets
Freestanding means that you do not directly interact with the OS #### Tier 1 Support
or you are writing your own OS.
Note that if you use libc or other libraries to interact with the OS, * Not only can Zig generate machine code for these targets, but the standard
that counts as "freestanding" for the purposes of this table. 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.
| | freestanding | linux | macosx | windows | other | #### Tier 2 Support
|-------------|--------------|---------|---------|---------|---------|
|i386 | OK | planned | OK | planned | planned | * There may be some standard library implementations, but many abstractions
|x86_64 | OK | OK | OK | OK | planned | will give an "Unsupported OS" compile error. One can link with libc or other
|arm | OK | planned | planned | planned | planned | libraries to fill in the gaps in the standard library.
|bpf | OK | planned | N/A | N/A | planned | * These targets are known to work, but are not automatically tested, so there
|hexagon | OK | planned | N/A | N/A | planned | are occasional regressions.
|mips | OK | planned | N/A | N/A | planned | * Some tests may be disabled for these targets as we work toward Tier 1
|powerpc | OK | planned | N/A | N/A | planned | support.
|r600 | OK | planned | N/A | N/A | planned |
|amdgcn | OK | planned | N/A | N/A | planned | #### Tier 3 Support
|sparc | OK | planned | N/A | N/A | planned |
|s390x | OK | planned | N/A | N/A | planned | * The standard library has little to no knowledge of the existence of this
|spir | OK | planned | N/A | N/A | planned | target.
|lanai | OK | planned | N/A | N/A | planned | * Because Zig is based on LLVM, it has the capability to build for these
|wasm32 | planned | N/A | N/A | N/A | N/A | targets, and LLVM has the target enabled by default.
|wasm64 | planned | N/A | N/A | N/A | N/A | * These targets are not frequently tested; one will likely need to contribute
|riscv32 | planned | planned | N/A | N/A | planned | to Zig in order to build for these targets.
|riscv64 | planned | planned | N/A | N/A | planned | * 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 ## Community