CMakeLists.txt | 28 +- README.md | 30 +- build.zig | 32 +- doc/langref.html.in | 9 + src-self-hosted/c.zig | 7 +- src-self-hosted/ir.zig | 112 ++++ src-self-hosted/main.zig | 7 +- src-self-hosted/module.zig | 7 + src-self-hosted/parser.zig | 30 +- src-self-hosted/scope.zig | 16 + src-self-hosted/tokenizer.zig | 221 ++++++- src/all_types.hpp | 2 +- src/analyze.cpp | 2 +- src/codegen.cpp | 28 +- src/config.h.in | 4 + src/link.cpp | 14 +- src/main.cpp | 5 + src/os.hpp | 2 +- src/target.hpp | 2 +- src/util.hpp | 2 - src/zig_llvm.cpp | 94 ++- src/zig_llvm.h | 398 ++++++++++++ src/zig_llvm.hpp | 387 ------------ std/array_list.zig | 5 +- std/base64.zig | 5 +- std/buffer.zig | 9 +- std/build.zig | 7 + std/cstr.zig | 59 +- std/debug.zig | 1050 -------------------------------- std/debug/failing_allocator.zig | 64 ++ std/debug/index.zig | 996 ++++++++++++++++++++++++++++++ std/fmt/errol/index.zig | 7 +- std/fmt/index.zig | 7 +- std/hash_map.zig | 7 +- std/heap.zig | 9 +- std/index.zig | 4 +- std/linked_list.zig | 5 +- std/math/acos.zig | 5 +- std/math/acosh.zig | 5 +- std/math/asin.zig | 5 +- std/math/asinh.zig | 5 +- std/math/atan.zig | 5 +- std/math/atan2.zig | 5 +- std/math/atanh.zig | 5 +- std/math/cbrt.zig | 5 +- std/math/ceil.zig | 5 +- std/math/copysign.zig | 5 +- std/math/cos.zig | 5 +- std/math/cosh.zig | 5 +- std/math/exp.zig | 5 +- std/math/exp2.zig | 5 +- std/math/expm1.zig | 5 +- std/math/fabs.zig | 5 +- std/math/floor.zig | 5 +- std/math/fma.zig | 5 +- std/math/frexp.zig | 5 +- std/math/hypot.zig | 5 +- std/math/ilogb.zig | 5 +- std/math/index.zig | 3 +- std/math/inf.zig | 5 +- std/math/isfinite.zig | 5 +- std/math/isinf.zig | 5 +- std/math/isnan.zig | 5 +- std/math/isnormal.zig | 5 +- std/math/ln.zig | 5 +- std/math/log.zig | 5 +- std/math/log10.zig | 5 +- std/math/log1p.zig | 5 +- std/math/log2.zig | 5 +- std/math/modf.zig | 5 +- std/math/pow.zig | 5 +- std/math/round.zig | 5 +- std/math/scalbn.zig | 5 +- std/math/signbit.zig | 5 +- std/math/sin.zig | 5 +- std/math/sinh.zig | 5 +- std/math/sqrt.zig | 5 +- std/math/tan.zig | 5 +- std/math/tanh.zig | 5 +- std/math/trunc.zig | 5 +- std/mem.zig | 5 +- std/net.zig | 7 +- std/os/darwin.zig | 5 +- std/os/index.zig | 21 +- std/os/linux.zig | 3 +- std/os/path.zig | 14 +- std/rand.zig | 7 +- std/special/compiler_rt/fixunsdfdi_test.zig | 2 +- std/special/compiler_rt/fixunsdfsi_test.zig | 2 +- std/special/compiler_rt/fixunsdfti_test.zig | 2 +- std/special/compiler_rt/fixunssfdi_test.zig | 2 +- std/special/compiler_rt/fixunssfsi_test.zig | 2 +- std/special/compiler_rt/fixunssfti_test.zig | 2 +- std/special/compiler_rt/fixunstfdi_test.zig | 2 +- std/special/compiler_rt/fixunstfsi_test.zig | 2 +- std/special/compiler_rt/fixunstfti_test.zig | 2 +- std/special/compiler_rt/index.zig | 2 +- test/cases/union.zig | 15 + 98 files changed, 2293 insertions(+), 1690 deletions(-)