CMakeLists.txt | 14 +- build.zig | 36 +- ci/appveyor/build_script.bat | 2 +- ci/travis_linux_script | 4 +- ci/travis_osx_script | 4 +- doc/docgen.zig | 257 +++++- doc/langref.html.in | 1551 +++++++++++++++----------------- src-self-hosted/main.zig | 2 +- src-self-hosted/type.zig | 12 - src/all_types.hpp | 325 +++---- src/analyze.cpp | 508 ++++++----- src/analyze.hpp | 9 +- src/ast_render.cpp | 7 - src/blake2.h | 196 ++++ src/blake2b.c | 539 +++++++++++ src/buffer.hpp | 4 + src/cache_hash.cpp | 469 ++++++++++ src/cache_hash.hpp | 71 ++ src/codegen.cpp | 530 ++++++++--- src/codegen.hpp | 6 +- src/compiler.cpp | 66 ++ src/compiler.hpp | 17 + src/error.cpp | 5 + src/error.hpp | 5 + src/ir.cpp | 585 +++++++----- src/link.cpp | 79 +- src/link.hpp | 17 - src/main.cpp | 145 +-- src/os.cpp | 599 +++++++++--- src/os.hpp | 99 +- src/parser.cpp | 9 +- src/target.cpp | 16 + src/target.hpp | 1 + src/tokenizer.cpp | 2 - src/tokenizer.hpp | 1 - src/util.cpp | 49 + src/util.hpp | 13 + src/zig_llvm.cpp | 9 +- src/zig_llvm.h | 3 +- std/array_list.zig | 2 +- std/atomic/int.zig | 2 +- std/atomic/queue.zig | 4 +- std/atomic/stack.zig | 2 +- std/build.zig | 28 +- std/coff.zig | 52 +- std/crypto/blake2.zig | 4 +- std/crypto/hmac.zig | 2 +- std/crypto/md5.zig | 2 +- std/crypto/poly1305.zig | 2 +- std/crypto/sha1.zig | 2 +- std/crypto/sha2.zig | 4 +- std/crypto/sha3.zig | 2 +- std/crypto/x25519.zig | 2 +- std/debug/index.zig | 29 +- std/event/channel.zig | 2 +- std/event/fs.zig | 88 +- std/event/future.zig | 2 +- std/event/group.zig | 2 +- std/event/locked.zig | 2 +- std/event/loop.zig | 44 +- std/event/rwlocked.zig | 2 +- std/event/tcp.zig | 3 +- std/fmt/index.zig | 2 +- std/hash/crc.zig | 4 +- std/hash/fnv.zig | 2 +- std/hash/siphash.zig | 2 +- std/hash_map.zig | 4 +- std/heap.zig | 2 +- std/io.zig | 12 +- std/lazy_init.zig | 2 +- std/linked_list.zig | 2 +- std/math/complex/cosh.zig | 4 +- std/math/complex/exp.zig | 9 +- std/math/complex/index.zig | 2 +- std/math/complex/sinh.zig | 4 +- std/mem.zig | 2 +- std/net.zig | 2 +- std/os/child_process.zig | 12 +- std/os/index.zig | 38 +- std/os/windows/kernel32.zig | 1 - std/os/windows/util.zig | 7 +- std/pdb.zig | 161 ++-- std/segmented_list.zig | 2 +- std/zig/ast.zig | 4 +- std/zig/bench.zig | 2 +- std/zig/parser_test.zig | 2 +- std/zig/render.zig | 2 +- test/behavior.zig | 3 + test/cases/align.zig | 7 + test/cases/bugs/1322.zig | 19 + test/cases/bugs/1381.zig | 21 + test/cases/bugs/1442.zig | 11 + test/cases/cast.zig | 15 +- test/cases/eval.zig | 4 +- test/cases/misc.zig | 3 - test/cases/reflection.zig | 2 +- test/cases/struct.zig | 4 +- test/cases/this.zig | 13 +- test/cases/type_info.zig | 4 +- test/cases/union.zig | 39 + test/compile_errors.zig | 47 +- test/standalone/brace_expansion/main.zig | 2 +- 102 files changed, 4814 insertions(+), 2216 deletions(-)