.github/FUNDING.yml | 2 + CMakeLists.txt | 8 + CONTRIBUTING.md | 91 +++ README.md | 93 +-- ci/azure/linux_script | 2 +- ci/azure/macos_script | 6 +- ci/azure/pipelines.yml | 2 +- ci/azure/update_download_page | 2 +- ci/azure/windows_upload | 2 +- ci/srht/freebsd_script | 2 +- doc/docgen.zig | 2 +- doc/langref.html.in | 73 ++- libc/include/wasm32-freestanding-musl/bits/alltypes.h | 385 ++++++++++++ libc/include/wasm32-freestanding-musl/errno.h | 24 + src-self-hosted/c.zig | 2 +- src-self-hosted/clang.zig | 422 +++++++------ src-self-hosted/dep_tokenizer.zig | 1055 ++++++++++++++++++++++++++++++++ src-self-hosted/link.zig | 2 +- src-self-hosted/stage1.zig | 62 ++ src-self-hosted/translate_c.zig | 2 +- src/all_types.hpp | 27 +- src/analyze.cpp | 137 +++-- src/analyze.hpp | 2 + src/ast_render.cpp | 2 +- src/cache_hash.cpp | 102 ++- src/codegen.cpp | 256 +++++--- src/codegen.hpp | 2 + src/ir.cpp | 274 +++++---- src/ir_print.cpp | 7 + src/link.cpp | 63 +- src/main.cpp | 24 +- src/parser.cpp | 2 +- src/target.cpp | 4 + src/target.hpp | 7 +- src/tokenizer.cpp | 5 +- src/tokenizer.hpp | 2 +- src/userland.cpp | 15 + src/userland.h | 33 + src/zig_llvm.cpp | 24 +- src/zig_llvm.h | 33 + std/build.zig | 20 +- std/c.zig | 4 +- std/c/darwin.zig | 4 +- std/c/freebsd.zig | 4 + std/c/linux.zig | 6 +- std/c/netbsd.zig | 4 + std/dynamic_library.zig | 13 +- std/event/loop.zig | 2 +- std/fmt.zig | 28 +- std/hash_map.zig | 24 +- std/io.zig | 2 +- std/io/test.zig | 1 + std/math.zig | 79 ++- std/math/big.zig | 4 +- std/meta.zig | 44 +- std/meta/trait.zig | 48 +- std/os.zig | 108 +++- std/os/bits.zig | 2 +- std/os/bits/darwin.zig | 12 + std/os/bits/freebsd.zig | 23 + std/os/bits/linux.zig | 39 +- std/os/bits/linux/arm64.zig | 10 +- std/os/bits/netbsd.zig | 19 + std/os/bits/windows.zig | 9 +- std/os/darwin.zig | 2 +- std/os/freebsd.zig | 2 +- std/os/linux.zig | 54 +- std/os/linux/test.zig | 39 -- std/os/linux/x86_64.zig | 2 +- std/os/netbsd.zig | 2 +- std/os/test.zig | 61 ++ std/os/uefi.zig | 4 + std/os/wasi.zig | 2 +- std/os/windows.zig | 16 +- std/os/windows/advapi32.zig | 2 +- std/os/windows/bits.zig | 14 + std/os/windows/kernel32.zig | 4 +- std/os/windows/lang.zig | 140 +++++ std/os/windows/ntdll.zig | 2 +- std/os/windows/ole32.zig | 2 +- std/os/windows/shell32.zig | 2 +- std/os/windows/sublang.zig | 244 ++++++++ std/os/zen.zig | 2 +- std/special/c.zig | 66 +- std/thread.zig | 32 +- std/zig/parse.zig | 6 +- std/zig/parser_test.zig | 68 +- std/zig/render.zig | 35 +- std/zig/tokenizer.zig | 5 +- test/build_examples.zig | 4 +- test/compile_errors.zig | 53 +- test/gen_h.zig | 16 +- test/stage1/behavior.zig | 1 + test/stage1/behavior/alignof.zig | 1 - test/stage1/behavior/bugs/1076.zig | 1 - test/stage1/behavior/bugs/1486.zig | 1 - test/stage1/behavior/bugs/2578.zig | 12 + test/stage1/behavior/bugs/421.zig | 1 - test/stage1/behavior/bugs/529.zig | 1 - test/stage1/behavior/bugs/726.zig | 1 - test/stage1/behavior/eval.zig | 18 +- test/stage1/behavior/fn.zig | 1 - test/stage1/behavior/import.zig | 2 +- test/stage1/behavior/popcount.zig | 1 - test/stage1/behavior/reflection.zig | 1 - test/stage1/behavior/struct.zig | 29 + test/stage1/behavior/this.zig | 1 - test/stage1/behavior/type_info.zig | 16 +- test/stage1/behavior/undefined.zig | 1 - test/stage1/behavior/union.zig | 2 +- test/stage1/behavior/widening.zig | 1 - test/standalone/load_dynamic_library/main.zig | 6 +- test/standalone/use_alias/c.zig | 2 +- test/tests.zig | 6 +- 114 files changed, 3742 insertions(+), 1014 deletions(-)