CMakeLists.txt | 15 +- build.zig | 3 +- doc/langref.html.in | 94 +- src-self-hosted/dep_tokenizer.zig | 2 +- src/all_types.hpp | 409 ++- src/analyze.cpp | 47 +- src/analyze.hpp | 1 - src/ast_render.cpp | 6 +- src/codegen.cpp | 724 ++--- src/ir.cpp | 5232 ++++++++++++++++++++++---------- src/ir.hpp | 1 + src/ir_print.cpp | 373 ++- src/main.cpp | 16 +- src/parser.cpp | 6 +- src/target.cpp | 10 +- std/event/fs.zig | 3 +- std/event/lock.zig | 3 +- std/event/net.zig | 4 +- std/event/rwlock.zig | 4 +- std/fmt.zig | 750 ++--- std/heap.zig | 6 +- std/heap/logging_allocator.zig | 53 + std/http.zig | 5 + std/http/headers.zig | 614 ++++ std/io.zig | 20 +- std/io/test.zig | 5 +- std/json.zig | 3 +- std/math/big/int.zig | 1 + std/mem.zig | 6 + std/net.zig | 1 - std/os/windows.zig | 2 + std/special/bootstrap.zig | 13 +- std/special/build_runner.zig | 4 +- std/special/c.zig | 39 +- std/special/compiler_rt.zig | 45 +- std/special/compiler_rt/comparetf2.zig | 15 +- std/special/panic.zig | 7 +- std/std.zig | 2 + std/zig/parse.zig | 4 +- std/zig/parser_test.zig | 16 +- std/zig/render.zig | 6 +- test/compare_output.zig | 2 +- test/compile_errors.zig | 126 +- test/stage1/behavior.zig | 2 + test/stage1/behavior/array.zig | 10 +- test/stage1/behavior/bitcast.zig | 13 + test/stage1/behavior/cast.zig | 37 + test/stage1/behavior/defer.zig | 17 + test/stage1/behavior/error.zig | 40 + test/stage1/behavior/eval.zig | 14 +- test/stage1/behavior/floatop.zig | 243 ++ test/stage1/behavior/fn.zig | 23 + test/stage1/behavior/for.zig | 32 + test/stage1/behavior/if.zig | 11 + test/stage1/behavior/misc.zig | 8 + test/stage1/behavior/muladd.zig | 34 + test/stage1/behavior/optional.zig | 25 +- test/stage1/behavior/struct.zig | 21 + test/stage1/behavior/switch.zig | 31 + test/stage1/behavior/union.zig | 20 + test/stage1/behavior/vector.zig | 13 + test/stage1/behavior/while.zig | 45 + test/tests.zig | 28 +- 63 files changed, 6649 insertions(+), 2716 deletions(-)