CMakeLists.txt | 7 + build.zig | 25 +- ci/azure/linux_script | 2 +- doc/langref.html.in | 44 +- lib/std/array_list.zig | 1 + lib/std/atomic/queue.zig | 2 +- lib/std/builtin.zig | 27 + lib/std/c/linux.zig | 4 + lib/std/cache_hash.zig | 30 +- lib/std/crypto.zig | 28 +- lib/std/crypto/25519/curve25519.zig | 144 +++++ lib/std/crypto/25519/ed25519.zig | 134 +++++ lib/std/crypto/25519/edwards25519.zig | 214 ++++++++ lib/std/crypto/25519/field.zig | 318 +++++++++++ lib/std/crypto/25519/ristretto255.zig | 183 ++++++ lib/std/crypto/25519/scalar.zig | 177 ++++++ lib/std/crypto/25519/x25519.zig | 146 +++++ lib/std/crypto/benchmark.zig | 32 +- lib/std/crypto/chacha20.zig | 282 ++++++++-- lib/std/crypto/gimli.zig | 2 +- lib/std/crypto/x25519.zig | 675 ----------------------- lib/std/debug.zig | 7 +- lib/std/dwarf.zig | 2 +- lib/std/dwarf_bits.zig | 8 +- lib/std/fmt.zig | 32 +- lib/std/fs.zig | 119 +++- lib/std/fs/file.zig | 9 +- lib/std/fs/test.zig | 84 ++- lib/std/hash/auto_hash.zig | 2 +- lib/std/heap.zig | 140 +++-- lib/std/heap/arena_allocator.zig | 4 +- lib/std/heap/general_purpose_allocator.zig | 946 ++++++++++++++++++++++++++++++++ lib/std/heap/logging_allocator.zig | 25 +- lib/std/json.zig | 2 +- lib/std/log.zig | 230 +++++--- lib/std/math.zig | 5 + lib/std/mem.zig | 419 ++------------ lib/std/mem/Allocator.zig | 486 ++++++++++++++++ lib/std/meta/trait.zig | 4 +- lib/std/mutex.zig | 270 +++++---- lib/std/net.zig | 19 +- lib/std/once.zig | 2 +- lib/std/os.zig | 152 ++++- lib/std/os/bits/linux.zig | 1 + lib/std/os/bits/linux/bpf.zig | 606 ++++++++++++++++++++ lib/std/os/bits/windows.zig | 2 +- lib/std/os/linux.zig | 20 +- lib/std/os/test.zig | 11 +- lib/std/os/windows.zig | 162 +++++- lib/std/os/windows/bits.zig | 18 + lib/std/special/c.zig | 6 +- lib/std/special/compiler_rt/floatditf.zig | 2 +- lib/std/special/test_runner.zig | 38 +- lib/std/std.zig | 3 +- lib/std/target.zig | 28 + lib/std/target/powerpc.zig | 56 +- lib/std/testing.zig | 30 +- lib/std/testing/failing_allocator.zig | 21 +- lib/std/testing/leak_count_allocator.zig | 51 -- lib/std/zig/ast.zig | 108 +++- lib/std/zig/parse.zig | 66 ++- lib/std/zig/render.zig | 41 +- src-self-hosted/Module.zig | 303 +++++++--- src-self-hosted/astgen.zig | 628 +++++++++++++++++---- src-self-hosted/cbe.h | 15 +- src-self-hosted/clang.zig | 1 + src-self-hosted/codegen.zig | 388 ++++++++----- src-self-hosted/codegen/c.zig | 247 ++++++--- src-self-hosted/codegen/riscv64.zig | 425 ++++++++++++-- src-self-hosted/codegen/wasm.zig | 119 ++++ src-self-hosted/codegen/x86.zig | 79 +++ src-self-hosted/codegen/x86_64.zig | 109 ++++ src-self-hosted/introspect.zig | 68 ++- src-self-hosted/ir.zig | 52 +- src-self-hosted/link.zig | 941 ++++++++++++++++++++++--------- src-self-hosted/link/MachO.zig | 93 ++++ src-self-hosted/link/Wasm.zig | 453 +++++++++++++++ src-self-hosted/liveness.zig | 127 +++-- src-self-hosted/main.zig | 60 +- src-self-hosted/print_env.zig | 47 ++ src-self-hosted/print_targets.zig | 2 +- src-self-hosted/stage2.zig | 32 +- src-self-hosted/test.zig | 9 +- src-self-hosted/translate_c.zig | 593 ++++++++++---------- src-self-hosted/type.zig | 345 ++++++++++-- src-self-hosted/value.zig | 77 ++- src-self-hosted/zir.zig | 414 +++++++++++--- src-self-hosted/zir_sema.zig | 197 ++++++- src/all_types.hpp | 3 + src/analyze.cpp | 11 +- src/codegen.cpp | 37 +- src/config.zig.in | 3 + src/ir.cpp | 151 ++++- src/main.cpp | 3 + src/stage2.cpp | 5 + src/stage2.h | 3 + src/tokenizer.cpp | 1 + src/zig_clang.cpp | 13 + src/zig_clang.h | 1 + test/compile_errors.zig | 145 +++-- test/run_translated_c.zig | 1 - test/stage1/behavior/enum.zig | 37 ++ test/stage1/behavior/union.zig | 23 + test/stage2/cbe.zig | 103 +++- test/stage2/compare_output.zig | 154 +++++- test/stage2/zir.zig | 18 +- test/translate_c.zig | 129 +++-- tools/process_headers.zig | 21 +- 108 files changed, 10262 insertions(+), 3138 deletions(-)