CMakeLists.txt | 98 +- build.zig | 29 +- ci/srht/freebsd_script | 31 +- cmake/install.cmake | 12 +- doc/langref.html.in | 176 +--- lib/std/array_list.zig | 25 + lib/std/buffer.zig | 12 + lib/std/build.zig | 193 +--- lib/std/builtin.zig | 7 +- lib/std/c.zig | 3 + lib/std/c/tokenizer.zig | 2 + lib/std/child_process.zig | 56 +- lib/std/crypto.zig | 31 + lib/std/crypto/blake2.zig | 4 +- lib/std/crypto/gimli.zig | 4 +- lib/std/crypto/md5.zig | 2 +- lib/std/crypto/sha1.zig | 2 +- lib/std/crypto/sha2.zig | 4 +- lib/std/cstr.zig | 2 +- lib/std/debug/leb128.zig | 12 +- lib/std/event.zig | 2 + lib/std/event/batch.zig | 139 +++ lib/std/event/group.zig | 5 + lib/std/event/loop.zig | 25 +- lib/std/fifo.zig | 8 +- lib/std/fmt.zig | 24 +- lib/std/fmt/parse_float.zig | 2 +- lib/std/fs.zig | 59 +- lib/std/fs/file.zig | 25 - lib/std/fs/watch.zig | 2 +- lib/std/hash/auto_hash.zig | 2 +- lib/std/hash/wyhash.zig | 2 +- lib/std/heap.zig | 8 +- lib/std/io.zig | 313 ++----- lib/std/io/in_stream.zig | 2 +- lib/std/io/test.zig | 24 +- lib/std/json.zig | 825 ++++++++++++++++- lib/std/math.zig | 54 +- lib/std/math/big/int.zig | 17 +- lib/std/math/big/rational.zig | 15 +- lib/std/math/cos.zig | 2 +- lib/std/math/ln.zig | 12 +- lib/std/math/log.zig | 14 +- lib/std/math/log10.zig | 12 +- lib/std/math/log2.zig | 12 +- lib/std/math/pow.zig | 2 +- lib/std/math/sin.zig | 2 +- lib/std/math/sqrt.zig | 6 +- lib/std/math/tan.zig | 2 +- lib/std/mem.zig | 305 ++++++- lib/std/meta.zig | 20 +- lib/std/meta/trait.zig | 28 +- lib/std/net.zig | 6 +- lib/std/os.zig | 288 +++++- lib/std/os/bits/linux.zig | 2 +- lib/std/os/linux/tls.zig | 2 +- lib/std/os/test.zig | 33 +- lib/std/os/windows/bits.zig | 2 +- lib/std/os/windows/ntdll.zig | 6 + lib/std/packed_int_array.zig | 12 +- lib/std/process.zig | 134 ++- lib/std/rand.zig | 20 +- lib/std/special/build_runner.zig | 25 +- lib/std/special/c.zig | 2 +- lib/std/special/compiler_rt/addXf3.zig | 14 +- lib/std/special/compiler_rt/compareXf2.zig | 6 +- lib/std/special/compiler_rt/divdf3.zig | 8 +- lib/std/special/compiler_rt/divsf3.zig | 6 +- lib/std/special/compiler_rt/extendXfYf2.zig | 6 +- lib/std/special/compiler_rt/fixint.zig | 2 +- lib/std/special/compiler_rt/fixuint.zig | 2 +- lib/std/special/compiler_rt/floatsiXf.zig | 4 +- lib/std/special/compiler_rt/mulXf3.zig | 6 +- lib/std/special/compiler_rt/negXf2.zig | 2 +- lib/std/special/compiler_rt/truncXfYf2.zig | 4 +- lib/std/special/compiler_rt/udivmod.zig | 4 +- lib/std/start.zig | 10 +- lib/std/target.zig | 1413 +++++++++++++++-------------- lib/std/target/aarch64.zig | 574 +++++------- lib/std/target/amdgpu.zig | 89 +- lib/std/target/arm.zig | 1527 +++++++++++++++----------------- lib/std/target/avr.zig | 525 +++++------ lib/std/target/bpf.zig | 21 +- lib/std/target/hexagon.zig | 25 +- lib/std/target/mips.zig | 49 +- lib/std/target/msp430.zig | 17 +- lib/std/target/nvptx.zig | 41 +- lib/std/target/powerpc.zig | 87 +- lib/std/target/riscv.zig | 19 +- lib/std/target/sparc.zig | 91 +- lib/std/target/systemz.zig | 37 +- lib/std/target/wasm.zig | 17 +- lib/std/target/x86.zig | 169 ++-- lib/std/thread.zig | 6 +- lib/std/time.zig | 23 +- lib/std/unicode.zig | 12 +- lib/std/zig.zig | 1 + lib/std/zig/ast.zig | 36 +- lib/std/zig/parse.zig | 16 +- lib/std/zig/parser_test.zig | 13 +- lib/std/zig/render.zig | 12 +- lib/std/zig/system.zig | 163 ++++ lib/std/zig/tokenizer.zig | 8 +- src-self-hosted/c.zig | 1 - src-self-hosted/introspect.zig | 8 + src-self-hosted/ir.zig | 39 +- src-self-hosted/libc_installation.zig | 792 +++++++++++------ src-self-hosted/print_targets.zig | 84 +- src-self-hosted/stage1.zig | 832 ----------------- src-self-hosted/stage2.zig | 1064 ++++++++++++++++++++++ src-self-hosted/translate_c.zig | 10 +- src-self-hosted/type.zig | 2 +- src-self-hosted/util.zig | 138 --- src-self-hosted/windows_sdk.zig | 22 + src/all_types.hpp | 105 +-- src/analyze.cpp | 14 +- src/cache_hash.cpp | 2 +- src/codegen.cpp | 454 ++++------ src/codegen.hpp | 8 +- src/compiler.cpp | 34 - src/compiler.hpp | 1 - src/error.cpp | 19 +- src/error.hpp | 2 +- src/glibc.cpp | 6 +- src/ir.cpp | 832 ++++------------- src/ir_print.cpp | 102 --- src/libc_installation.cpp | 498 ----------- src/libc_installation.hpp | 35 - src/link.cpp | 52 +- src/main.cpp | 239 +++-- src/mem_list.hpp | 15 +- src/mem_profile.cpp | 4 +- src/os.cpp | 317 ++++--- src/os.hpp | 16 +- src/parser.cpp | 7 + src/stage2.cpp | 208 +++++ src/stage2.h | 319 +++++++ src/target.cpp | 542 +----------- src/target.hpp | 86 +- src/userland.cpp | 146 --- src/userland.h | 208 ----- src/util.cpp | 2 +- src/windows_sdk.h | 4 + src/zig_clang.h | 2 +- src/zig_llvm.cpp | 198 ++--- src/zig_llvm.h | 53 +- test/compile_errors.zig | 179 +--- test/runtime_safety.zig | 16 +- test/stage1/behavior.zig | 2 +- test/stage1/behavior/align.zig | 14 - test/stage1/behavior/async_fn.zig | 54 +- test/stage1/behavior/bit_shifting.zig | 4 +- test/stage1/behavior/bugs/1851.zig | 2 +- test/stage1/behavior/bugs/3586.zig | 11 + test/stage1/behavior/bugs/3742.zig | 2 +- test/stage1/behavior/cast.zig | 20 - test/stage1/behavior/enum.zig | 4 +- test/stage1/behavior/error.zig | 7 +- test/stage1/behavior/eval.zig | 14 +- test/stage1/behavior/for.zig | 28 + test/stage1/behavior/if.zig | 19 +- test/stage1/behavior/math.zig | 2 +- test/stage1/behavior/misc.zig | 85 -- test/stage1/behavior/reflection.zig | 36 +- test/stage1/behavior/slicetobytes.zig | 29 - test/stage1/behavior/struct.zig | 4 +- test/stage1/behavior/switch.zig | 22 + test/stage1/behavior/type_info.zig | 11 + test/stage1/behavior/union.zig | 2 +- test/stage1/behavior/while.zig | 18 +- test/standalone/guess_number/main.zig | 14 +- test/tests.zig | 89 +- test/translate_c.zig | 42 +- 173 files changed, 8079 insertions(+), 8445 deletions(-)