Find a file
Andrew Kelley c711c788f0 stage2: fixes for error unions, optionals, errors
* `?E` where E is an error set with only one field now lowers the same
   as `bool`.
 * Fix implementation of errUnionErrOffset and errUnionPayloadOffset to
   properly compute the offset of each field. Also name them the same
   as the corresponding LLVM functions and have the same function
   signature, to avoid confusion. This fixes a bug where wasm was
   passing the error union type instead of the payload type.
 * Fix C backend handling of optionals with zero-bit payload types.
 * C backend: separate out airOptionalPayload and airOptionalPayloadPtr
   which reduces branching and cleans up control flow.
 * Make Type.isNoReturn return true for error sets with no fields.
 * Make `?error{}` have only one possible value (null).
2022-05-24 15:34:52 -07:00
.builds ci: update tarballs for LLVM 13 2021-10-01 16:07:42 -07:00
.github github issue templates enhancements 2022-05-03 14:04:15 -07:00
ci Set macOS/iPhoneOS/tvOS/watchOS ABI to none (unspecified) by default 2022-05-22 17:45:02 +02:00
cmake cmake: add /usr/lib/llvm13 to searched paths 2022-05-05 02:51:48 -04:00
deps Do not detect byte-order using _BIG/_LITTLE_ENDIAN 2022-04-12 11:14:33 -07:00
doc target: Rename sparcv9 -> sparc64 2022-05-13 16:43:59 -04:00
lib stage2: fixes for error union semantics 2022-05-24 15:34:52 -07:00
src stage2: fixes for error unions, optionals, errors 2022-05-24 15:34:52 -07:00
test stage2: fixes for error unions, optionals, errors 2022-05-24 15:34:52 -07:00
tools Generate linux syscalls via. the linux source tree 2022-05-16 23:55:11 -04:00
.gitattributes mark tsan as linguist-vendored 2021-06-25 12:46:23 +03:00
.gitignore
build.zig build.zig: rename a local variable 2022-05-13 14:30:43 -07:00
CMakeLists.txt target: Rename sparcv9 -> sparc64 2022-05-13 16:43:59 -04:00
LICENSE Y++ 2021-12-31 19:58:21 -05:00
README.md move some files to the .github directory 2022-03-24 12:22:23 -07:00

ZIG

A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

Resources

Installation

License

The ultimate goal of the Zig project is to serve users. As a first-order effect, this means users of the compiler, helping programmers to write better software. Even more important, however, are the end-users.

Zig is intended to be used to help end-users accomplish their goals. Zig should be used to empower end-users, never to exploit them financially, or to limit their freedom to interact with hardware or software in any way.

However, such problems are best solved with social norms, not with software licenses. Any attempt to complicate the software license of Zig would risk compromising the value Zig provides.

Therefore, Zig is available under the MIT (Expat) License, and comes with a humble request: use it to make software better serve the needs of end-users.

This project redistributes code from other projects, some of which have other licenses besides MIT. Such licenses are generally similar to the MIT license for practical purposes. See the subdirectories and files inside lib/ for more details.