mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
readme: update support table
This commit is contained in:
parent
2baf0e2ffc
commit
3c4965a616
1 changed files with 62 additions and 24 deletions
86
README.md
86
README.md
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue