authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-05-07 14:11:01-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-05-07 14:12:38-04:00
logb7579f5f7d4f3295187f7901d97361a63a484d77
treed8ca0158ebcce1cc0adc371b2bb2247825e337ad
parent7261cd19b78367d78f758f7ade370efbc3e25237

update README


1 files changed, 13 insertions(+), 17 deletions(-)

README.md+13-17
...@@ -1,19 +1,23 @@...@@ -1,19 +1,23 @@
1![ZIG](http://ziglang.org/zig-logo.svg)1![ZIG](http://ziglang.org/zig-logo.svg)
22
3A system programming language which prioritizes optimality, safety, and3A programming language which prioritizes optimality, robustness, and
4readability.4clarity.
5
6Zig is a small, simple language, yet powerful. Zig fits into the same niche
7as C, except does everything better.
8
9Zig ships with a build system that obviates the need for a configure script
10or a makefile. In fact, existing C and C++ projects may choose to depend on
11Zig instead of e.g. cmake.
125
13[ziglang.org](http://ziglang.org)6[ziglang.org](http://ziglang.org)
147
15## Feature Highlights8## Feature Highlights
169
10 * Small, simple language. Focus on debugging your application rather than
11 debugging your knowledge of your programming language.
12 * Ships with a build system that obviates the need for a configure script
13 or a makefile. In fact, existing C and C++ projects may choose to depend on
14 Zig instead of e.g. cmake.
15 * A fresh take on error handling which makes writing correct code easier than
16 writing buggy code.
17 * Debug mode optimizes for fast compilation time and crashing with a stack trace
18 when undefined behavior *would* happen.
19 * Release mode produces heavily optimized code. What other projects call
20 "Link Time Optimization" Zig does automatically.
17 * Compatible with C libraries with no wrapper necessary. Directly include21 * Compatible with C libraries with no wrapper necessary. Directly include
18 C .h files and get access to the functions and symbols therein.22 C .h files and get access to the functions and symbols therein.
19 * Provides standard library which competes with the C standard library and is23 * Provides standard library which competes with the C standard library and is
...@@ -23,9 +27,6 @@ Zig instead of e.g. cmake....@@ -23,9 +27,6 @@ Zig instead of e.g. cmake.
23 * Tagged union type instead of raw unions.27 * Tagged union type instead of raw unions.
24 * Generics so that one can write efficient data structures that work for any28 * Generics so that one can write efficient data structures that work for any
25 data type.29 data type.
26 * Provides an error type with several syntatic constructs which makes writing
27 robust code convenient and straightforward. Writing correct code is easier
28 than writing buggy code.
29 * No header files required. Top level declarations are entirely30 * No header files required. Top level declarations are entirely
30 order-independent.31 order-independent.
31 * Compile-time code execution. Compile-time reflection.32 * Compile-time code execution. Compile-time reflection.
...@@ -33,16 +34,11 @@ Zig instead of e.g. cmake....@@ -33,16 +34,11 @@ Zig instead of e.g. cmake.
33 a preprocessor or macros.34 a preprocessor or macros.
34 * The binaries produced by Zig have complete debugging information so you can,35 * The binaries produced by Zig have complete debugging information so you can,
35 for example, use GDB to debug your software.36 for example, use GDB to debug your software.
36 * Debug mode optimizes for fast compilation time and crashing with a stack trace
37 when undefined behavior *would* happen.
38 * Release mode produces heavily optimized code. What other projects call
39 "Link Time Optimization" Zig does automatically.
40 * Mark functions as tests and automatically run them with `zig test`.37 * Mark functions as tests and automatically run them with `zig test`.
41 * Friendly toward package maintainers. Reproducible build, bootstrapping38 * Friendly toward package maintainers. Reproducible build, bootstrapping
42 process carefully documented. Issues filed by package maintainers are39 process carefully documented. Issues filed by package maintainers are
43 considered especially important.40 considered especially important.
44 * Cross-compiling is a primary use case.41 * Cross-compiling is a primary use case.
45 * Zig Build System competes with make, cmake, autotools, SCons, etc.
46 * In addition to creating executables, creating a C library is a primary use42 * In addition to creating executables, creating a C library is a primary use
47 case. You can export an auto-generated .h file.43 case. You can export an auto-generated .h file.
48 * Standard library supports Operating System abstractions for:44 * Standard library supports Operating System abstractions for: