CMakeLists.txt | 30 +- CONTRIBUTING.md | 35 +- cmake/install.cmake | 37 + doc/langref.html.in | 41 + lib/std/buffer.zig | 6 +- lib/std/build.zig | 45 +- lib/std/builtin.zig | 10 + lib/std/c.zig | 6 +- lib/std/c/darwin.zig | 64 +- lib/std/c/freebsd.zig | 60 +- lib/std/c/linux.zig | 40 +- lib/std/debug.zig | 1071 ++- lib/std/dynamic_library.zig | 2 +- lib/std/fmt.zig | 22 +- lib/std/fmt/parse_float.zig | 4 + lib/std/hash/benchmark.zig | 4 +- lib/std/hash/crc.zig | 27 +- lib/std/http/headers.zig | 2 +- lib/std/io/out_stream.zig | 12 +- lib/std/io/test.zig | 4 + lib/std/math/fabs.zig | 4 + lib/std/math/isinf.zig | 12 + lib/std/math/isnan.zig | 4 + lib/std/mem.zig | 3 + lib/std/meta.zig | 18 + lib/std/net.zig | 24 +- lib/std/os/bits/linux.zig | 2 +- lib/std/os/linux/tls.zig | 2 +- lib/std/special/compiler_rt.zig | 125 +- lib/std/special/compiler_rt/addXf3_test.zig | 8 + lib/std/special/compiler_rt/arm/aeabi_dcmp.zig | 95 - lib/std/special/compiler_rt/arm/aeabi_fcmp.zig | 95 - lib/std/special/compiler_rt/clzsi2.zig | 116 + lib/std/special/compiler_rt/clzsi2_test.zig | 292 + lib/std/special/compiler_rt/compareXf2.zig | 253 + lib/std/special/compiler_rt/comparedf2.zig | 127 - lib/std/special/compiler_rt/comparedf2_test.zig | 2 +- lib/std/special/compiler_rt/comparesf2.zig | 127 - lib/std/special/compiler_rt/comparesf2_test.zig | 2 +- lib/std/special/compiler_rt/comparetf2.zig | 99 - lib/std/special/compiler_rt/fixtfdi_test.zig | 4 + lib/std/special/compiler_rt/fixtfsi_test.zig | 4 + lib/std/special/compiler_rt/fixtfti_test.zig | 4 + lib/std/special/compiler_rt/fixunstfdi_test.zig | 4 + lib/std/special/compiler_rt/fixunstfsi_test.zig | 4 + lib/std/special/compiler_rt/fixunstfti_test.zig | 4 + lib/std/special/compiler_rt/floattitf_test.zig | 4 + lib/std/special/compiler_rt/floatuntitf_test.zig | 4 + lib/std/special/compiler_rt/int.zig | 60 + lib/std/special/compiler_rt/mulXf3_test.zig | 4 + lib/std/special/compiler_rt/truncXfYf2_test.zig | 8 + lib/std/start.zig | 13 +- lib/std/target.zig | 414 +- lib/std/target/aarch64.zig | 1450 ++++ lib/std/target/amdgpu.zig | 1315 +++ lib/std/target/arm.zig | 2333 ++++++ lib/std/target/avr.zig | 2380 ++++++ lib/std/target/bpf.zig | 76 + lib/std/target/hexagon.zig | 312 + lib/std/target/mips.zig | 518 ++ lib/std/target/msp430.zig | 72 + lib/std/target/nvptx.zig | 309 + lib/std/target/powerpc.zig | 938 +++ lib/std/target/riscv.zig | 122 + lib/std/target/sparc.zig | 495 ++ lib/std/target/systemz.zig | 510 ++ lib/std/target/wasm.zig | 114 + lib/std/target/x86.zig | 2859 +++++++ src-self-hosted/clang.zig | 2 + src-self-hosted/main.zig | 46 +- src-self-hosted/print_targets.zig | 251 + src-self-hosted/stage1.zig | 305 +- src-self-hosted/translate_c.zig | 122 +- src/all_types.hpp | 2291 +++--- src/analyze.cpp | 199 +- src/analyze.hpp | 5 +- src/codegen.cpp | 984 ++- src/error.cpp | 6 + src/ir.cpp | 13749 +++++++++++++++++--------------- src/ir.hpp | 20 +- src/ir_print.cpp | 3279 +++++--- src/ir_print.hpp | 13 +- src/main.cpp | 121 +- src/parser.cpp | 2 +- src/target.cpp | 15 +- src/target.hpp | 1 + src/userland.cpp | 58 +- src/userland.h | 31 + src/zig_clang.cpp | 9 + src/zig_clang.h | 3 + src/zig_llvm.cpp | 4 +- test/compile_errors.zig | 86 +- test/stack_traces.zig | 98 + test/stage1/behavior/bitcast.zig | 16 +- test/stage1/behavior/cast.zig | 1 - test/stage1/behavior/enum.zig | 80 +- test/stage1/behavior/math.zig | 8 + test/stage1/behavior/union.zig | 9 + test/tests.zig | 419 +- test/translate_c.zig | 90 +- 100 files changed, 28526 insertions(+), 11063 deletions(-)