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