build.zig | 2 +- doc/docgen.zig | 83 +- doc/langref.html.in | 30 +- lib/std/build.zig | 247 +++-- lib/std/build/run.zig | 2 +- lib/std/build/translate_c.zig | 14 +- lib/std/builtin.zig | 59 +- lib/std/c.zig | 27 +- lib/std/c/linux.zig | 2 +- lib/std/child_process.zig | 26 +- lib/std/crypto/benchmark.zig | 2 +- lib/std/cstr.zig | 6 +- lib/std/debug.zig | 1861 +++++++++++--------------------- lib/std/dwarf.zig | 1573 +++++++++++++++------------ lib/std/dwarf_bits.zig | 682 ++++++++++++ lib/std/dynamic_library.zig | 8 +- lib/std/elf.zig | 39 +- lib/std/event/channel.zig | 2 +- lib/std/event/future.zig | 2 +- lib/std/event/lock.zig | 2 +- lib/std/event/loop.zig | 26 +- lib/std/fmt.zig | 12 +- lib/std/fs.zig | 57 +- lib/std/fs/file.zig | 19 +- lib/std/fs/get_app_data_dir.zig | 2 +- lib/std/fs/path.zig | 38 +- lib/std/fs/watch.zig | 8 +- lib/std/hash/auto_hash.zig | 8 +- lib/std/hash/benchmark.zig | 2 +- lib/std/hash/cityhash.zig | 8 +- lib/std/hash/murmur.zig | 16 +- lib/std/hash_map.zig | 2 +- lib/std/heap.zig | 14 +- lib/std/io.zig | 34 +- lib/std/io/seekable_stream.zig | 4 +- lib/std/macho.zig | 11 + lib/std/math/pow.zig | 2 +- lib/std/math/powi.zig | 2 +- lib/std/mem.zig | 234 +++- lib/std/meta.zig | 26 + lib/std/mutex.zig | 4 +- lib/std/net.zig | 4 +- lib/std/net/test.zig | 4 +- lib/std/os.zig | 171 +-- lib/std/os/bits.zig | 4 +- lib/std/os/linux.zig | 2 +- lib/std/os/linux/vdso.zig | 10 +- lib/std/os/test.zig | 16 +- lib/std/os/windows/bits.zig | 217 +++- lib/std/os/windows/ntdll.zig | 10 +- lib/std/packed_int_array.zig | 4 +- lib/std/process.zig | 26 +- lib/std/reset_event.zig | 6 +- lib/std/special/c.zig | 10 +- lib/std/special/compiler_rt.zig | 18 +- lib/std/special/compiler_rt/ashlti3.zig | 2 +- lib/std/special/compiler_rt/ashrti3.zig | 2 +- lib/std/special/compiler_rt/extendXfYf2_test.zig | 2 +- lib/std/special/compiler_rt/lshrti3.zig | 2 +- lib/std/special/compiler_rt/multi3.zig | 2 +- lib/std/special/compiler_rt/truncXfYf2.zig | 12 +- lib/std/special/compiler_rt/udivmod.zig | 4 +- lib/std/special/init-exe/build.zig | 10 + lib/std/special/init-exe/src/main.zig | 2 +- lib/std/spinlock.zig | 2 +- lib/std/start.zig | 16 +- lib/std/target.zig | 1223 +++++++++++---------- lib/std/target/arm.zig | 2 +- lib/std/testing.zig | 10 +- lib/std/thread.zig | 33 +- lib/std/time.zig | 18 +- lib/std/valgrind.zig | 4 +- lib/std/zig.zig | 9 +- lib/std/zig/cross_target.zig | 839 ++++++++++++++ lib/std/zig/system.zig | 696 +++++++++++- src-self-hosted/c_int.zig | 2 +- src-self-hosted/clang.zig | 2 +- src-self-hosted/introspect.zig | 10 +- src-self-hosted/ir.zig | 2 +- src-self-hosted/libc_installation.zig | 126 +-- src-self-hosted/link.zig | 4 +- src-self-hosted/main.zig | 20 +- src-self-hosted/print_targets.zig | 12 +- src-self-hosted/stage2.zig | 403 ++++--- src-self-hosted/translate_c.zig | 2 +- src-self-hosted/util.zig | 22 - src/all_types.hpp | 4 - src/analyze.cpp | 149 ++- src/codegen.cpp | 147 +-- src/codegen.hpp | 2 - src/compiler.cpp | 25 - src/compiler.hpp | 1 - src/error.cpp | 2 + src/glibc.cpp | 63 +- src/glibc.hpp | 5 +- src/ir.cpp | 106 +- src/link.cpp | 131 +-- src/main.cpp | 66 +- src/os.cpp | 4 +- src/stage2.cpp | 115 +- src/stage2.h | 22 +- src/target.cpp | 108 +- src/target.hpp | 5 +- test/assemble_and_link.zig | 4 +- test/cli.zig | 5 +- test/compare_output.zig | 9 +- test/compile_errors.zig | 62 +- test/runtime_safety.zig | 13 + test/src/translate_c.zig | 5 +- test/stack_traces.zig | 52 +- test/stage1/behavior.zig | 1 + test/stage1/behavior/asm.zig | 7 +- test/stage1/behavior/bugs/4560.zig | 32 + test/stage1/behavior/byteswap.zig | 5 +- test/stage1/behavior/cast.zig | 11 + test/stage1/behavior/enum.zig | 23 +- test/stage1/behavior/eval.zig | 25 + test/stage1/behavior/fn.zig | 14 +- test/stage1/behavior/math.zig | 6 +- test/stage1/behavior/misc.zig | 2 +- test/stage1/behavior/namespace_depends_on_compile_var.zig | 8 +- test/stage1/behavior/pointers.zig | 12 + test/stage1/behavior/sizeof_and_typeof.zig | 56 +- test/stage1/behavior/slice.zig | 29 + test/stage1/behavior/vector.zig | 3 +- test/standalone.zig | 4 +- test/standalone/global_linkage/build.zig | 23 + test/standalone/global_linkage/main.zig | 9 + test/standalone/global_linkage/obj1.zig | 7 + test/standalone/global_linkage/obj2.zig | 7 + test/tests.zig | 223 ++-- test/translate_c.zig | 24 +- 132 files changed, 6563 insertions(+), 4268 deletions(-)