.builds/freebsd.yml | 16 +- CMakeLists.txt | 42 +- build.zig | 4 +- doc/langref.html.in | 50 +- src-self-hosted/compilation.zig | 4 +- src-self-hosted/introspect.zig | 2 +- src-self-hosted/type.zig | 12 - src/all_types.hpp | 100 +- src/analyze.cpp | 529 ++--- src/analyze.hpp | 32 +- src/buffer.hpp | 6 +- src/codegen.cpp | 212 +- src/codegen.hpp | 7 +- src/compiler.cpp | 6 +- src/ir.cpp | 292 +-- src/link.cpp | 6 +- src/main.cpp | 34 +- src/os.cpp | 2 +- src/os.hpp | 2 +- src/parser.cpp | 18 +- src/parser.hpp | 2 +- src/target.cpp | 6 +- src/translate_c.cpp | 9 +- src/translate_c.hpp | 4 +- src/util.hpp | 12 - std/array_list.zig | 4 +- std/atomic.zig | 9 + std/atomic/index.zig | 9 - std/atomic/queue.zig | 2 +- std/atomic/stack.zig | 2 +- std/base64.zig | 2 +- std/buf_map.zig | 2 +- std/buf_set.zig | 2 +- std/buffer.zig | 2 +- std/build.zig | 15 +- std/build/fmt.zig | 2 +- std/c.zig | 68 + std/c/darwin.zig | 2 +- std/c/index.zig | 68 - std/coff.zig | 2 +- std/crypto.zig | 45 + std/crypto/blake2.zig | 8 +- std/crypto/chacha20.zig | 2 +- std/crypto/hmac.zig | 2 +- std/crypto/index.zig | 45 - std/crypto/md5.zig | 10 +- std/crypto/poly1305.zig | 2 +- std/crypto/sha1.zig | 8 +- std/crypto/sha2.zig | 8 +- std/crypto/sha3.zig | 8 +- std/crypto/test.zig | 2 +- std/crypto/throughput_test.zig | 2 +- std/crypto/x25519.zig | 2 +- std/cstr.zig | 2 +- std/debug.zig | 2205 ++++++++++++++++++++ std/debug/failing_allocator.zig | 2 +- std/debug/index.zig | 2205 -------------------- std/dynamic_library.zig | 2 +- std/elf.zig | 2 +- std/event/channel.zig | 2 +- std/event/fs.zig | 13 +- std/event/future.zig | 2 +- std/event/group.zig | 2 +- std/event/io.zig | 2 +- std/event/lock.zig | 2 +- std/event/locked.zig | 2 +- std/event/loop.zig | 2 +- std/event/net.zig | 2 +- std/event/rwlock.zig | 2 +- std/event/rwlocked.zig | 2 +- std/fmt.zig | 1441 ++++++++++++++ std/fmt/errol.zig | 704 +++++++ std/fmt/errol/index.zig | 704 ------- std/fmt/index.zig | 1441 -------------- std/fmt/parse_float.zig | 2 +- std/hash.zig | 22 + std/hash/adler.zig | 2 +- std/hash/crc.zig | 2 +- std/hash/fnv.zig | 2 +- std/hash/index.zig | 22 - std/hash/siphash.zig | 2 +- std/hash_map.zig | 4 +- std/heap.zig | 2 +- std/index.zig | 95 - std/io.zig | 2 +- std/io/seekable_stream.zig | 2 +- std/io_test.zig | 2 +- std/json.zig | 2 +- std/json_test.zig | 2 +- std/lazy_init.zig | 2 +- std/linked_list.zig | 2 +- std/math.zig | 797 ++++++++ std/math/acos.zig | 2 +- std/math/acosh.zig | 2 +- std/math/asin.zig | 2 +- std/math/asinh.zig | 2 +- std/math/atan.zig | 2 +- std/math/atan2.zig | 2 +- std/math/atanh.zig | 2 +- std/math/big.zig | 5 + std/math/big/index.zig | 5 - std/math/big/int.zig | 2 +- std/math/cbrt.zig | 2 +- std/math/ceil.zig | 2 +- std/math/complex.zig | 171 ++ std/math/complex/abs.zig | 2 +- std/math/complex/acos.zig | 2 +- std/math/complex/acosh.zig | 2 +- std/math/complex/arg.zig | 2 +- std/math/complex/asin.zig | 2 +- std/math/complex/asinh.zig | 2 +- std/math/complex/atan.zig | 2 +- std/math/complex/atanh.zig | 2 +- std/math/complex/conj.zig | 2 +- std/math/complex/cos.zig | 2 +- std/math/complex/cosh.zig | 2 +- std/math/complex/exp.zig | 2 +- std/math/complex/index.zig | 171 -- std/math/complex/ldexp.zig | 2 +- std/math/complex/log.zig | 2 +- std/math/complex/pow.zig | 2 +- std/math/complex/proj.zig | 2 +- std/math/complex/sin.zig | 2 +- std/math/complex/sinh.zig | 2 +- std/math/complex/sqrt.zig | 2 +- std/math/complex/tan.zig | 2 +- std/math/complex/tanh.zig | 2 +- std/math/copysign.zig | 2 +- std/math/cos.zig | 2 +- std/math/cosh.zig | 2 +- std/math/exp.zig | 2 +- std/math/exp2.zig | 2 +- std/math/expm1.zig | 2 +- std/math/expo2.zig | 2 +- std/math/fabs.zig | 2 +- std/math/floor.zig | 2 +- std/math/fma.zig | 2 +- std/math/frexp.zig | 2 +- std/math/hypot.zig | 2 +- std/math/ilogb.zig | 2 +- std/math/index.zig | 797 -------- std/math/inf.zig | 2 +- std/math/isfinite.zig | 2 +- std/math/isinf.zig | 2 +- std/math/isnan.zig | 2 +- std/math/isnormal.zig | 2 +- std/math/ln.zig | 2 +- std/math/log.zig | 2 +- std/math/log10.zig | 2 +- std/math/log1p.zig | 2 +- std/math/log2.zig | 2 +- std/math/modf.zig | 2 +- std/math/nan.zig | 2 +- std/math/pow.zig | 2 +- std/math/powi.zig | 2 +- std/math/round.zig | 2 +- std/math/scalbn.zig | 2 +- std/math/signbit.zig | 2 +- std/math/sin.zig | 2 +- std/math/sinh.zig | 2 +- std/math/sqrt.zig | 2 +- std/math/tan.zig | 2 +- std/math/tanh.zig | 2 +- std/math/trunc.zig | 2 +- std/mem.zig | 2 +- std/meta.zig | 569 ++++++ std/meta/index.zig | 569 ------ std/meta/trait.zig | 4 +- std/mutex.zig | 2 +- std/net.zig | 2 +- std/os.zig | 3432 ++++++++++++++++++++++++++++++++ std/os/child_process.zig | 2 +- std/os/darwin.zig | 2 +- std/os/file.zig | 2 +- std/os/freebsd.zig | 845 ++++++++ std/os/freebsd/index.zig | 846 -------- std/os/get_app_data_dir.zig | 2 +- std/os/get_user_id.zig | 2 +- std/os/index.zig | 3408 ------------------------------- std/os/linux.zig | 1541 ++++++++++++++ std/os/linux/arm64.zig | 2 +- std/os/linux/index.zig | 1537 -------------- std/os/linux/test.zig | 2 +- std/os/linux/vdso.zig | 2 +- std/os/linux/x86_64.zig | 2 +- std/os/netbsd.zig | 724 +++++++ std/os/netbsd/index.zig | 725 ------- std/os/path.zig | 2 +- std/os/test.zig | 2 +- std/os/time.zig | 2 +- std/os/windows.zig | 399 ++++ std/os/windows/advapi32.zig | 2 +- std/os/windows/index.zig | 399 ---- std/os/windows/kernel32.zig | 8 +- std/os/windows/ntdll.zig | 2 +- std/os/windows/ole32.zig | 2 +- std/os/windows/shell32.zig | 2 +- std/os/windows/tls.zig | 36 - std/os/windows/util.zig | 2 +- std/os/zen.zig | 2 +- std/pdb.zig | 6 +- std/priority_queue.zig | 2 +- std/rand.zig | 1005 ++++++++++ std/rand/index.zig | 1005 ---------- std/rand/ziggurat.zig | 2 +- std/rb.zig | 2 +- std/segmented_list.zig | 2 +- std/sort.zig | 2 +- std/special/bootstrap.zig | 2 +- std/special/bootstrap_windows_tls.zig | 36 + std/special/builtin.zig | 2 +- std/special/compiler_rt.zig | 1038 ++++++++++ std/special/compiler_rt/addXf3.zig | 2 +- std/special/compiler_rt/divti3.zig | 2 +- std/special/compiler_rt/index.zig | 1050 ---------- std/special/compiler_rt/muloti4.zig | 2 +- std/special/compiler_rt/multi3.zig | 2 +- std/special/compiler_rt/udivmodti4.zig | 2 +- std/special/compiler_rt/umodti3.zig | 2 +- std/special/panic.zig | 2 +- std/spinlock.zig | 2 +- std/statically_initialized_mutex.zig | 13 +- std/std.zig | 95 + std/testing.zig | 3 +- std/unicode.zig | 2 +- std/zig.zig | 16 + std/zig/ast.zig | 14 +- std/zig/bench.zig | 2 +- std/zig/index.zig | 16 - std/zig/parse.zig | 2 +- std/zig/parse_string_literal.zig | 2 +- std/zig/render.zig | 2 +- std/zig/tokenizer.zig | 2 +- test/build_examples.zig | 2 + test/compile_errors.zig | 1391 ++++++------- test/stage1/behavior.zig | 7 +- test/stage1/behavior/asm.zig | 10 +- test/stage1/behavior/bugs/1500.zig | 10 + test/stage1/behavior/bugs/679.zig | 17 + test/stage1/behavior/misc.zig | 5 +- test/stage1/behavior/namespace_depends_on_compile_var.zig | 14 + test/stage1/behavior/namespace_depends_on_compile_var/index.zig | 14 - test/stage1/behavior/pointers.zig | 6 + test/stage1/behavior/pub_enum.zig | 13 + test/stage1/behavior/pub_enum/index.zig | 13 - test/stage1/behavior/slice.zig | 13 +- test/stage1/behavior/type_info.zig | 2 +- test/stage1/behavior/typename.zig | 7 + test/standalone/main_pkg_path/a/test.zig | 5 + test/standalone/main_pkg_path/b.zig | 1 + test/standalone/main_pkg_path/build.zig | 9 + test/standalone/static_c_lib/build.zig | 18 + test/standalone/static_c_lib/foo.c | 4 + test/standalone/static_c_lib/foo.h | 2 + test/standalone/static_c_lib/foo.zig | 8 + test/tests.zig | 7 +- 256 files changed, 16974 insertions(+), 16761 deletions(-)