CMakeLists.txt | 3 + README.md | 24 +- build.zig | 9 +- doc/codegen.md | 8 +- doc/docgen.zig | 39 +- doc/langref.html.in | 1120 ++++++++++-------- example/cat/main.zig | 2 +- src-self-hosted/arg.zig | 10 +- src-self-hosted/introspect.zig | 2 +- src-self-hosted/llvm.zig | 2 +- src-self-hosted/main.zig | 26 +- src-self-hosted/module.zig | 8 +- src/all_types.hpp | 72 +- src/analyze.cpp | 376 +++--- src/analyze.hpp | 2 + src/ast_render.cpp | 14 +- src/codegen.cpp | 444 ++++--- src/codegen.hpp | 2 + src/ir.cpp | 1056 ++++++++++------- src/ir_print.cpp | 27 +- src/link.cpp | 15 +- src/main.cpp | 15 + src/parser.cpp | 24 +- src/target.cpp | 7 +- src/tokenizer.cpp | 35 +- src/tokenizer.hpp | 7 +- src/translate_c.cpp | 59 +- src/zig_llvm.cpp | 2 +- std/array_list.zig | 110 +- std/atomic/queue.zig | 25 +- std/atomic/stack.zig | 25 +- std/buf_map.zig | 12 +- std/buf_set.zig | 4 +- std/buffer.zig | 7 +- std/build.zig | 40 +- std/c/index.zig | 20 +- std/debug/index.zig | 30 +- std/event.zig | 4 +- std/fmt/index.zig | 64 +- std/hash_map.zig | 8 +- std/heap.zig | 20 +- std/json.zig | 265 +++-- std/json_test.zig | 10 + std/linked_list.zig | 12 +- std/macho.zig | 2 +- std/math/big/index.zig | 5 + std/math/big/int.zig | 2023 ++++++++++++++++++++++++++++++++ std/math/index.zig | 13 +- std/mem.zig | 22 +- std/os/child_process.zig | 18 +- std/os/darwin.zig | 8 +- std/os/file.zig | 19 +- std/os/index.zig | 306 +++-- std/os/linux/vdso.zig | 10 +- std/os/path.zig | 74 +- std/os/test.zig | 9 - std/os/time.zig | 6 +- std/os/windows/index.zig | 66 +- std/os/windows/util.zig | 43 +- std/segmented_list.zig | 8 +- std/special/bootstrap.zig | 8 +- std/special/build_runner.zig | 10 +- std/special/builtin.zig | 8 +- std/special/compiler_rt/divti3.zig | 26 + std/special/compiler_rt/divti3_test.zig | 21 + std/special/compiler_rt/index.zig | 4 + std/special/compiler_rt/muloti4.zig | 55 + std/special/compiler_rt/muloti4_test.zig | 76 ++ std/unicode.zig | 26 +- std/zig/ast.zig | 48 +- std/zig/parse.zig | 78 +- std/zig/parser_test.zig | 7 +- std/zig/render.zig | 33 +- std/zig/tokenizer.zig | 27 +- test/behavior.zig | 1 + test/cases/array.zig | 10 +- test/cases/bugs/656.zig | 2 +- test/cases/cast.zig | 80 +- test/cases/enum.zig | 9 + test/cases/error.zig | 2 +- test/cases/eval.zig | 15 +- test/cases/generics.zig | 2 +- test/cases/merge_error_sets.zig | 21 + test/cases/misc.zig | 10 +- test/cases/null.zig | 51 +- test/cases/reflection.zig | 2 +- test/cases/struct.zig | 17 + test/cases/type_info.zig | 47 +- test/cases/while.zig | 12 +- test/compare_output.zig | 4 +- test/compile_errors.zig | 71 +- test/tests.zig | 12 +- test/translate_c.zig | 40 +- 93 files changed, 5383 insertions(+), 2150 deletions(-)