CMakeLists.txt | 7 +- build.zig | 9 +- ci/appveyor/build_script.bat | 16 +- doc/docgen.zig | 35 +- doc/langref.html.in | 138 ++- example/cat/main.zig | 10 +- example/guess_number/main.zig | 2 +- example/hello_world/hello.zig | 2 +- example/mix_o_files/base64.zig | 3 + example/mix_o_files/build.zig | 2 +- example/mix_o_files/test.c | 4 + example/shared_library/build.zig | 2 +- src-self-hosted/ast.zig | 271 ------ src-self-hosted/main.zig | 100 +- src-self-hosted/module.zig | 22 +- src-self-hosted/parser.zig | 1166 ---------------------- src-self-hosted/tokenizer.zig | 659 ------------- src/all_types.hpp | 68 +- src/analyze.cpp | 370 ++++--- src/analyze.hpp | 8 +- src/ast_render.cpp | 33 +- src/codegen.cpp | 281 ++++-- src/codegen.hpp | 1 + src/ir.cpp | 1666 +++++++++++++++++++++++++++----- src/ir_print.cpp | 12 +- src/main.cpp | 41 +- src/parser.cpp | 116 ++- src/tokenizer.cpp | 29 +- src/tokenizer.hpp | 2 + src/util.hpp | 19 +- src/zig_llvm.cpp | 4 + src/zig_llvm.h | 1 + std/array_list.zig | 49 +- std/base64.zig | 27 +- std/buf_map.zig | 4 +- std/buf_set.zig | 4 +- std/buffer.zig | 18 +- std/build.zig | 74 +- std/c/index.zig | 2 +- std/crypto/throughput_test.zig | 2 +- std/cstr.zig | 14 +- std/debug/failing_allocator.zig | 4 +- std/debug/index.zig | 110 +-- std/elf.zig | 15 +- std/fmt/index.zig | 108 ++- std/hash_map.zig | 4 +- std/heap.zig | 12 +- std/index.zig | 2 + std/io.zig | 686 +++++-------- std/io_test.zig | 8 +- std/linked_list.zig | 4 +- std/math/index.zig | 44 +- std/mem.zig | 30 +- std/net.zig | 34 +- std/os/child_process.zig | 129 +-- std/os/file.zig | 311 ++++++ std/os/get_user_id.zig | 7 +- std/os/index.zig | 522 ++++++---- std/os/linux/index.zig | 2 +- std/os/path.zig | 31 +- std/os/windows/util.zig | 95 +- std/special/bootstrap.zig | 4 +- std/special/build_file_template.zig | 2 +- std/special/build_runner.zig | 30 +- std/special/test_runner.zig | 2 +- std/unicode.zig | 20 +- std/zig/ast.zig | 271 ++++++ std/zig/index.zig | 11 + std/zig/parser.zig | 1158 ++++++++++++++++++++++ std/zig/tokenizer.zig | 655 +++++++++++++ test/cases/cast.zig | 34 +- test/cases/defer.zig | 4 +- test/cases/enum_with_members.zig | 2 +- test/cases/error.zig | 128 ++- test/cases/ir_block_deps.zig | 6 +- test/cases/misc.zig | 8 +- test/cases/reflection.zig | 2 +- test/cases/switch.zig | 2 +- test/cases/switch_prong_err_enum.zig | 6 +- test/cases/switch_prong_implicit_cast.zig | 4 +- test/cases/try.zig | 7 +- test/cases/union.zig | 2 +- test/cases/while.zig | 10 +- test/compare_output.zig | 41 +- test/compile_errors.zig | 249 ++++- test/runtime_safety.zig | 74 +- test/standalone/brace_expansion/build.zig | 2 +- test/standalone/brace_expansion/main.zig | 22 +- test/standalone/issue_339/build.zig | 2 +- test/standalone/issue_339/test.zig | 2 +- test/standalone/pkg_import/build.zig | 2 +- test/standalone/pkg_import/test.zig | 2 +- test/standalone/use_alias/build.zig | 2 +- test/tests.zig | 15 +- 94 files changed, 6078 insertions(+), 4154 deletions(-)