diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-05-03 14:48:56 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-05-03 14:48:56 -0400 |
| commit | f6937db7d610163f9dac6f69b76bc38e62580a0d (patch) | |
| tree | 6a45ba0739b9517635b67acc2064ddc73273c321 /README.md | |
| parent | bd9c629c4c306c9159a5e6ad16fe5637d2bc6dbf (diff) | |
| download | zig-f6937db7d610163f9dac6f69b76bc38e62580a0d.tar.gz zig-f6937db7d610163f9dac6f69b76bc38e62580a0d.zip | |
remove redundant information from README
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 136 |
1 files changed, 5 insertions, 131 deletions
@@ -3,137 +3,11 @@ Zig is an open-source programming language designed for **robustness**, **optimality**, and **maintainability**. -[Download & Documentation](https://ziglang.org/download/) - -## Feature Highlights - - * Small, simple language. Focus on debugging your application rather than - debugging knowledge of your programming language. - * Ships with a build system that obviates the need for a configure script - or a makefile. In fact, existing C and C++ projects may choose to depend on - Zig instead of e.g. cmake. - * A fresh take on error handling which makes writing correct code easier than - writing buggy code. - * Debug mode optimizes for fast compilation time and crashing with a stack trace - when undefined behavior *would* happen. - * ReleaseFast mode produces heavily optimized code. What other projects call - "Link Time Optimization" Zig does automatically. - * Compatible with C libraries with no wrapper necessary. Directly include - C .h files and get access to the functions and symbols therein. - * Provides standard library which competes with the C standard library and is - always compiled against statically in source form. Zig binaries do not - depend on libc unless explicitly linked. - * Optional type instead of null pointers. - * Safe unions, tagged unions, and C ABI compatible unions. - * Generics so that one can write efficient data structures that work for any - data type. - * No header files required. Top level declarations are entirely - order-independent. - * Compile-time code execution. Compile-time reflection. - * Partial compile-time function evaluation which eliminates the need for - a preprocessor or macros. - * The binaries produced by Zig have complete debugging information so you can, - for example, use GDB, MSVC, or LLDB to debug your software. - * Built-in unit tests with `zig test`. - * Friendly toward package maintainers. Reproducible build, bootstrapping - process carefully documented. Issues filed by package maintainers are - considered especially important. - * Cross-compiling is a primary use case. - * In addition to creating executables, creating a C library is a primary use - case. You can export an auto-generated .h file. - -### 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. - * ([coming soon](https://github.com/ziglang/zig/issues/514)) libc is available - for this target even when cross compiling. - -#### 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 - * `zig targets` is guaranteed to include this target. - -#### 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. `zig targets` will - display the target if it is available. - * This target may be considered deprecated by an official party, - [such as macosx/i386](https://support.apple.com/en-us/HT208436) in which - case this target will remain forever stuck in Tier 4. - * This target may only support `--emit asm` and cannot emit object files. - -#### Support Table - -| | freestanding | linux | macosx | windows | freebsd | netbsd | UEFI | other | -|-------------|--------------|--------|--------|---------|---------|------- | -------|--------| -|x86_64 | Tier 2 | Tier 1 | Tier 1 | Tier 1 | Tier 2 | Tier 2 | Tier 2 | Tier 3 | -|i386 | Tier 2 | Tier 2 | Tier 4 | Tier 2 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | -|arm | Tier 2 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | -|arm64 | Tier 2 | Tier 2 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | -|wasm32 | Tier 2 | N/A | N/A | N/A | N/A | N/A | N/A | Tier 2 | -|bpf | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|hexagon | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|mips | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|powerpc32 | Tier 3 | Tier 3 | Tier 4 | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|powerpc64 | Tier 3 | Tier 3 | Tier 4 | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|amdgcn | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|sparc | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|s390x | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|lanai | Tier 3 | Tier 3 | N/A | N/A | Tier 3 | Tier 3 | N/A | Tier 3 | -|wasm64 | Tier 4 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | -|avr | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|riscv32 | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | Tier 4 | Tier 4 | -|riscv64 | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | Tier 4 | Tier 4 | -|xcore | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|nvptx | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|msp430 | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|r600 | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|arc | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|tce | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|le | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|amdil | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|hsail | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|spir | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|kalimba | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|shave | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | -|renderscript | Tier 4 | Tier 4 | N/A | N/A | Tier 4 | Tier 4 | N/A | Tier 4 | - -## Community - - * IRC: `#zig` on Freenode ([Channel Logs](https://irclog.whitequark.org/zig/)). - * Reddit: [/r/zig](https://www.reddit.com/r/zig) - * Email list: [~andrewrk/ziglang@lists.sr.ht](https://lists.sr.ht/%7Eandrewrk/ziglang) +## Resources + + * [Introduction](https://ziglang.org/#Introduction) + * [Download & Documentation](https://ziglang.org/download) + * [Community](https://github.com/ziglang/zig/wiki/Community) ## Building from Source |
