CMakeLists.txt | 41 +++-- CONTRIBUTING.md | 35 ++-- cmake/install.cmake | 37 ++++ doc/langref.html.in | 56 +++++- lib/std/build.zig | 4 +- lib/std/builtin.zig | 2 + lib/std/c.zig | 6 +- lib/std/c/darwin.zig | 61 ++++--- lib/std/c/freebsd.zig | 60 ++++--- lib/std/c/linux.zig | 40 +++-- lib/std/dynamic_library.zig | 2 +- lib/std/fmt.zig | 17 +- lib/std/hash/benchmark.zig | 4 +- lib/std/hash/crc.zig | 27 +-- lib/std/net.zig | 24 +-- lib/std/os/bits/linux.zig | 2 +- lib/std/special/compiler_rt.zig | 126 ++++++-------- lib/std/special/compiler_rt/arm.zig | 19 +-- 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/start.zig | 13 +- lib/std/target.zig | 38 +++++ src-self-hosted/translate_c.zig | 93 +++++----- src/all_types.hpp | 6 + src/analyze.cpp | 42 ++++- src/codegen.cpp | 8 +- src/ir.cpp | 187 ++++++++++++++------ src/ir_print.cpp | 5 +- test/compile_errors.zig | 69 +++++--- test/stage1/behavior/cast.zig | 1 - test/stage1/behavior/enum.zig | 80 ++++++++- test/stage1/behavior/sizeof_and_typeof.zig | 11 ++ test/stage1/behavior/type_info.zig | 5 +- test/stage1/behavior/union.zig | 9 + test/translate_c.zig | 31 ++-- 43 files changed, 1432 insertions(+), 937 deletions(-)