lib/std/child_process.zig | 2 +- lib/std/crypto/x25519.zig | 12 +- lib/std/cstr.zig | 4 +- lib/std/fmt.zig | 112 ++++---- lib/std/fs.zig | 6 +- lib/std/fs/file.zig | 2 +- lib/std/fs/path.zig | 2 +- lib/std/hash/siphash.zig | 256 +++++++++--------- lib/std/io/test.zig | 4 +- lib/std/mem.zig | 18 +- lib/std/meta.zig | 13 +- lib/std/meta/trait.zig | 2 - lib/std/net.zig | 16 +- lib/std/os.zig | 4 +- lib/std/os/linux.zig | 2 +- lib/std/os/linux/test.zig | 4 +- lib/std/process.zig | 16 +- lib/std/special/c.zig | 10 +- lib/std/thread.zig | 2 +- lib/std/valgrind/memcheck.zig | 2 +- src-self-hosted/codegen.zig | 6 +- src-self-hosted/compilation.zig | 4 +- src-self-hosted/ir.zig | 12 +- src-self-hosted/link.zig | 126 ++++----- src-self-hosted/stage1.zig | 2 +- src-self-hosted/value.zig | 2 +- src/all_types.hpp | 9 +- src/analyze.cpp | 141 ++++++---- src/analyze.hpp | 9 +- src/ast_render.cpp | 3 - src/codegen.cpp | 61 +++-- src/ir.cpp | 448 +++++++++++++++++++++++--------- src/parser.cpp | 1 - src/tokenizer.cpp | 53 +--- src/tokenizer.hpp | 1 - src/translate_c.cpp | 18 +- test/compare_output.zig | 72 ++--- test/compile_errors.zig | 10 +- test/stage1/behavior/array.zig | 39 ++- test/stage1/behavior/bugs/1076.zig | 16 +- test/stage1/behavior/cast.zig | 110 ++++++-- test/stage1/behavior/const_slice_child.zig | 9 +- test/stage1/behavior/eval.zig | 2 +- test/stage1/behavior/misc.zig | 17 +- test/stage1/behavior/pointers.zig | 2 +- test/stage1/behavior/ptrcast.zig | 2 +- test/stage1/behavior/slice.zig | 2 +- test/stage1/behavior/struct.zig | 2 +- test/stage2/compare_output.zig | 4 +- test/standalone/hello_world/hello_libc.zig | 2 +- test/translate_c.zig | 28 +- 51 files changed, 986 insertions(+), 716 deletions(-)