.gitignore | 1 + CMakeLists.txt | 30 +- doc/langref.html.in | 665 ++++++++++++-- src-self-hosted/arg.zig | 4 +- src-self-hosted/errmsg.zig | 2 +- src-self-hosted/main.zig | 577 ++++-------- src-self-hosted/module.zig | 172 ++-- src/all_types.hpp | 54 +- src/analyze.cpp | 64 +- src/analyze.hpp | 2 +- src/bigfloat.cpp | 8 + src/bigfloat.hpp | 2 + src/bigint.cpp | 13 +- src/codegen.cpp | 147 ++-- src/ir.cpp | 1514 ++++++++++++++++++++------------ src/ir_print.cpp | 45 + src/link.cpp | 11 +- src/main.cpp | 2 + src/os.cpp | 5 + src/tokenizer.cpp | 11 +- src/util.hpp | 19 + std/atomic/index.zig | 8 +- std/atomic/queue.zig | 137 --- std/atomic/queue_mpmc.zig | 214 +++++ std/atomic/queue_mpsc.zig | 143 +++ std/atomic/stack.zig | 6 +- std/build.zig | 55 +- std/cstr.zig | 2 +- std/debug/index.zig | 15 +- std/event.zig | 338 ++++++- std/fmt/index.zig | 5 +- std/heap.zig | 6 +- std/io.zig | 8 +- std/json.zig | 2 +- std/linked_list.zig | 2 +- std/macho.zig | 2 +- std/math/copysign.zig | 18 + std/math/expm1.zig | 8 + std/math/fabs.zig | 19 + std/math/floor.zig | 50 ++ std/math/index.zig | 44 +- std/math/inf.zig | 2 +- std/math/isfinite.zig | 8 + std/math/isinf.zig | 22 + std/math/isnan.zig | 6 + std/math/isnormal.zig | 9 + std/math/nan.zig | 2 + std/math/signbit.zig | 12 + std/math/sqrt.zig | 23 + std/mem.zig | 26 +- std/net.zig | 2 +- std/os/child_process.zig | 13 +- std/os/index.zig | 18 +- std/os/windows/util.zig | 2 +- std/rand/index.zig | 4 +- std/rand/ziggurat.zig | 8 +- std/special/builtin.zig | 4 +- std/special/compiler_rt/extendXfYf2.zig | 89 ++ std/special/compiler_rt/extendXfYf2_test.zig | 155 ++++ std/special/compiler_rt/floattidf.zig | 69 ++ std/special/compiler_rt/floattidf_test.zig | 84 ++ std/special/compiler_rt/floattisf.zig | 69 ++ std/special/compiler_rt/floattisf_test.zig | 60 ++ std/special/compiler_rt/floattitf.zig | 69 ++ std/special/compiler_rt/floattitf_test.zig | 96 ++ std/special/compiler_rt/floatunditf.zig | 28 + std/special/compiler_rt/floatunditf_test.zig | 33 + std/special/compiler_rt/floatunsitf.zig | 29 + std/special/compiler_rt/floatunsitf_test.zig | 29 + std/special/compiler_rt/floatuntidf.zig | 60 ++ std/special/compiler_rt/floatuntidf_test.zig | 81 ++ std/special/compiler_rt/floatuntisf.zig | 59 ++ std/special/compiler_rt/floatuntisf_test.zig | 72 ++ std/special/compiler_rt/floatuntitf.zig | 60 ++ std/special/compiler_rt/floatuntitf_test.zig | 99 +++ std/special/compiler_rt/index.zig | 21 + std/special/compiler_rt/truncXfYf2.zig | 117 +++ std/special/compiler_rt/truncXfYf2_test.zig | 134 +++ std/zig/ast.zig | 1 + std/zig/parse.zig | 150 ++-- std/zig/parser_test.zig | 9 + test/behavior.zig | 3 + test/cases/align.zig | 2 +- test/cases/array.zig | 8 + test/cases/bugs/1111.zig | 12 + test/cases/cast.zig | 76 +- test/cases/coroutines.zig | 41 +- test/cases/enum.zig | 16 +- test/cases/error.zig | 14 +- test/cases/eval.zig | 19 + test/cases/math.zig | 34 + test/cases/misc.zig | 10 +- test/cases/null.zig | 2 +- test/cases/optional.zig | 9 + test/cases/struct.zig | 4 +- test/cases/type_info.zig | 18 +- test/cases/union.zig | 4 +- test/cases/widening.zig | 27 + test/compile_errors.zig | 554 ++++++++++-- test/runtime_safety.zig | 71 +- test/tests.zig | 82 +- 101 files changed, 5531 insertions(+), 1739 deletions(-)