README.md | 2 +- build.zig | 12 +- doc/langref.html.in | 8 + example/mix_o_files/build.zig | 2 +- example/shared_library/build.zig | 2 +- src-self-hosted/parser.zig | 6 - src/all_types.hpp | 13 ++ src/analyze.cpp | 60 ++++++-- src/analyze.hpp | 5 + src/codegen.cpp | 247 +++++++++++++++++++++++++++++-- src/ir.cpp | 61 ++++++-- src/ir_print.cpp | 7 + std/build.zig | 10 +- std/crypto/sha2.zig | 40 ----- std/debug/index.zig | 212 ++++++++++++++++++-------- std/io.zig | 2 +- std/io_test.zig | 5 - std/math/acosh.zig | 5 - std/math/cos.zig | 5 - std/math/cosh.zig | 5 - std/math/index.zig | 15 -- std/math/ln.zig | 5 - std/math/log.zig | 5 - std/math/log10.zig | 5 - std/math/log2.zig | 5 - std/math/pow.zig | 6 - std/math/round.zig | 5 - std/math/sin.zig | 5 - std/math/sinh.zig | 5 - std/math/tan.zig | 5 - std/math/tanh.zig | 5 - std/os/index.zig | 11 +- std/rand.zig | 20 --- std/sort.zig | 20 --- std/special/bootstrap.zig | 45 ++++-- std/special/build_runner.zig | 8 +- std/special/builtin.zig | 2 +- std/special/compiler_rt/index.zig | 2 +- std/special/panic.zig | 6 +- std/special/test_runner.zig | 5 +- test/build_examples.zig | 1 + test/compile_errors.zig | 18 +-- test/debug_safety.zig | 40 ++--- test/standalone/brace_expansion/build.zig | 9 ++ test/standalone/brace_expansion/main.zig | 254 ++++++++++++++++++++++++++++++++ test/standalone/issue_339/build.zig | 2 +- test/standalone/issue_339/test.zig | 3 +- test/standalone/pkg_import/build.zig | 2 +- test/standalone/use_alias/build.zig | 2 +- test/tests.zig | 9 +- 50 files changed, 873 insertions(+), 361 deletions(-)