| ... | ... | @@ -19,9 +19,10 @@ Zig instead of e.g. cmake. |
| 19 | 19 | * Compile units do not depend on libc unless explicitly linked. |
| 20 | 20 | * Provides standard library which competes with the C standard library and is |
| 21 | 21 | always compiled against statically in source form. |
| 22 | | * Pointer types do not allow the null value. Instead you can use a maybe type |
| 23 | | which has several syntactic constructs to ensure that the null pointer is |
| 24 | | not missed. |
| 22 | * Nullable type instead of null pointers. |
| 23 | * Tagged union type instead of raw unions. |
| 24 | * Generics so that one can write efficient data structures that work for any |
| 25 | data type. |
| 25 | 26 | * Provides an error type with several syntatic constructs which makes writing |
| 26 | 27 | robust code convenient and straightforward. Writing correct code is easier |
| 27 | 28 | than writing buggy code. |
| ... | ... | @@ -30,15 +31,10 @@ Zig instead of e.g. cmake. |
| 30 | 31 | * Compile-time code execution. Compile-time reflection. |
| 31 | 32 | * Partial compile-time function evaluation with eliminates the need for |
| 32 | 33 | a preprocessor or macros. |
| 33 | | * Tagged union enum type. No more accidentally reading the wrong union field. |
| 34 | | * Generics so that one can write efficient data structures that work for any |
| 35 | | data type. |
| 36 | | * Easy to parse language so that humans and machines have no trouble with the |
| 37 | | syntax. |
| 38 | 34 | * The binaries produced by Zig have complete debugging information so you can, |
| 39 | 35 | for example, use GDB to debug your software. |
| 40 | | * Debug mode optimizes for fast compilation time and crashing when undefined |
| 41 | | behavior *would* happen. |
| 36 | * Debug mode optimizes for fast compilation time and crashing with a stack trace |
| 37 | when undefined behavior *would* happen. |
| 42 | 38 | * Release mode produces heavily optimized code. What other projects call |
| 43 | 39 | "Link Time Optimization" Zig does automatically. |
| 44 | 40 | * Mark functions as tests and automatically run them with `zig test`. |
| ... | ... | @@ -49,12 +45,12 @@ Zig instead of e.g. cmake. |
| 49 | 45 | * Zig Build System competes with make, cmake, autotools, SCons, etc. |
| 50 | 46 | * In addition to creating executables, creating a C library is a primary use |
| 51 | 47 | case. You can export an auto-generated .h file. |
| 52 | | * Currently supported architectures: |
| 53 | | * `x86_64` |
| 54 | | * Currently supported operating systems: |
| 55 | | * `linux` |
| 56 | | * `freestanding` |
| 57 | | * Support for all popular operating systems and architectures is planned. |
| 48 | * Standard library supports OS abstractions for: |
| 49 | * `x86_64` `linux` |
| 50 | * Support for all popular operating systems and architectures is planned. |
| 51 | * For Operating System development, Zig supports all architectures that LLVM |
| 52 | does. All the standard library that does not depend on an OS is available |
| 53 | to you in freestanding mode. |
| 58 | 54 | |
| 59 | 55 | ## Community |
| 60 | 56 | |