CMakeLists.txt | 16 +- lib/std/array_list.zig | 14 +- lib/std/ascii.zig | 5 +- lib/std/c/tokenizer.zig | 16 +- lib/std/cstr.zig | 5 +- lib/std/fmt.zig | 56 +- lib/std/fs/get_app_data_dir.zig | 6 +- lib/std/fs/path.zig | 10 +- lib/std/heap.zig | 2 +- lib/std/http/headers.zig | 48 +- lib/std/io.zig | 12 +- lib/std/io/test.zig | 13 +- lib/std/json.zig | 42 +- lib/std/json/test.zig | 31 +- lib/std/json/write_stream.zig | 6 +- lib/std/math/big/int.zig | 765 ++++++++++++++-------- lib/std/math/big/rational.zig | 151 +++-- lib/std/mem.zig | 44 +- lib/std/meta.zig | 123 ++-- lib/std/meta/trait.zig | 107 ++- lib/std/net/test.zig | 4 +- lib/std/os/test.zig | 24 +- lib/std/process.zig | 6 +- lib/std/sort.zig | 8 +- lib/std/special/compiler_rt.zig | 2 +- lib/std/target/riscv.zig | 2 - lib/std/testing.zig | 19 +- lib/std/unicode.zig | 10 +- lib/std/zig/parser_test.zig | 3 +- src-self-hosted/translate_c.zig | 33 +- src/all_types.hpp | 4 +- src/analyze.cpp | 193 +++--- src/analyze.hpp | 21 +- src/bigint.cpp | 32 +- src/buffer.hpp | 9 +- src/codegen.cpp | 75 ++- src/errmsg.cpp | 4 +- src/glibc.cpp | 8 +- src/hash_map.hpp | 6 +- src/heap.cpp | 377 +++++++++++ src/heap.hpp | 101 +++ src/ir.cpp | 1117 ++++++++++++++++---------------- src/ir.hpp | 2 - src/link.cpp | 45 +- src/list.hpp | 6 +- src/main.cpp | 48 +- src/mem.cpp | 37 ++ src/mem.hpp | 149 +++++ src/mem_hash_map.hpp | 244 +++++++ src/mem_list.hpp | 101 +++ src/mem_profile.cpp | 181 ++++++ src/mem_profile.hpp | 71 ++ src/mem_type_info.hpp | 136 ++++ src/memory_profiling.cpp | 150 ----- src/memory_profiling.hpp | 31 - src/os.cpp | 14 +- src/parser.cpp | 6 +- src/target.cpp | 2 +- src/tokenizer.cpp | 4 +- src/userland.cpp | 4 +- src/util.hpp | 132 +--- src/util_base.hpp | 67 ++ test/compile_errors.zig | 16 + test/stage1/behavior/atomics.zig | 8 +- test/stage1/behavior/bugs/1851.zig | 5 +- test/stage1/behavior/cast.zig | 27 + test/stage1/behavior/vector.zig | 27 + test/translate_c.zig | 12 + 68 files changed, 3303 insertions(+), 1752 deletions(-)