doc/langref.html.in | 65 +-
doc/langref/build.zig | 6 +-
doc/langref/build_c.zig | 12 +-
doc/langref/build_object.zig | 12 +-
doc/langref/test_coerce_slices_arrays_and_pointers.zig | 7 +
lib/compiler/build_runner.zig | 8 +-
lib/compiler_rt.zig | 2 +-
lib/std/Build.zig | 227 +-
lib/std/Build/Step/Compile.zig | 46 +-
lib/std/Build/Step/Run.zig | 10 +
lib/std/Io.zig | 3 +-
lib/std/Io/DeprecatedReader.zig | 1 +
lib/std/Io/Reader.zig | 497 ++--
lib/std/Io/Writer.zig | 171 +-
lib/std/Io/test.zig | 45 -
lib/std/Progress.zig | 71 +-
lib/std/builtin.zig | 9 +-
lib/std/c.zig | 59 +-
lib/std/c/openbsd.zig | 5 -
lib/std/compress/flate.zig | 540 +---
lib/std/compress/flate/BlockWriter.zig | 270 +-
lib/std/compress/flate/Compress.zig | 1149 +-------
lib/std/compress/flate/Decompress.zig | 1015 ++++---
lib/std/compress/flate/HuffmanEncoder.zig | 463 +++
lib/std/compress/flate/Lookup.zig | 15 +-
lib/std/compress/flate/Token.zig | 20 +-
lib/std/compress/flate/testdata/block_writer.zig | 606 ----
lib/std/compress/flate/testdata/block_writer/huffman-null-max.dyn.expect | Bin 78 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-null-max.dyn.expect-noinput | Bin 78 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-null-max.huff.expect | Bin 8204 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-null-max.input | Bin 65535 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-null-max.wb.expect | Bin 78 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-null-max.wb.expect-noinput | Bin 78 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-pi.dyn.expect | Bin 1696 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-pi.dyn.expect-noinput | Bin 1696 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-pi.huff.expect | Bin 1606 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-pi.input | 1 -
lib/std/compress/flate/testdata/block_writer/huffman-pi.wb.expect | Bin 1696 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-pi.wb.expect-noinput | Bin 1696 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-1k.dyn.expect | Bin 1005 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-1k.dyn.expect-noinput | Bin 1054 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-1k.huff.expect | Bin 1005 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-1k.input | Bin 1000 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-1k.wb.expect | Bin 1005 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-1k.wb.expect-noinput | Bin 1054 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-limit.dyn.expect | Bin 229 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-limit.dyn.expect-noinput | Bin 229 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-limit.huff.expect | Bin 252 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-limit.input | 4 -
lib/std/compress/flate/testdata/block_writer/huffman-rand-limit.wb.expect | Bin 186 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-limit.wb.expect-noinput | Bin 186 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-max.huff.expect | Bin 65540 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-rand-max.input | Bin 65535 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-shifts.dyn.expect | Bin 32 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-shifts.dyn.expect-noinput | Bin 32 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-shifts.huff.expect | Bin 1812 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-shifts.input | 2 -
lib/std/compress/flate/testdata/block_writer/huffman-shifts.wb.expect | Bin 32 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-shifts.wb.expect-noinput | Bin 32 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text-shift.dyn.expect | Bin 231 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text-shift.dyn.expect-noinput | Bin 231 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text-shift.huff.expect | Bin 231 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text-shift.input | 14 -
lib/std/compress/flate/testdata/block_writer/huffman-text-shift.wb.expect | Bin 231 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text-shift.wb.expect-noinput | Bin 231 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text.dyn.expect | Bin 217 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text.dyn.expect-noinput | Bin 217 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text.huff.expect | Bin 219 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text.input | 14 -
lib/std/compress/flate/testdata/block_writer/huffman-text.wb.expect | Bin 217 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-text.wb.expect-noinput | Bin 217 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-zero.dyn.expect | Bin 17 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-zero.dyn.expect-noinput | Bin 17 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-zero.huff.expect | Bin 51 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-zero.input | 1 -
lib/std/compress/flate/testdata/block_writer/huffman-zero.wb.expect | Bin 6 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/huffman-zero.wb.expect-noinput | Bin 6 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/null-long-match.dyn.expect-noinput | Bin 206 -> 0 bytes
lib/std/compress/flate/testdata/block_writer/null-long-match.wb.expect-noinput | Bin 206 -> 0 bytes
lib/std/compress/xz.zig | 16 +-
lib/std/compress/zstd/Decompress.zig | 74 +-
lib/std/debug/Dwarf.zig | 28 +-
lib/std/enums.zig | 54 +-
lib/std/fmt.zig | 2 +
lib/std/fs/File.zig | 88 +-
lib/std/hash.zig | 5 +-
lib/std/hash/Adler32.zig | 117 +
lib/std/hash/adler.zig | 134 -
lib/std/hash/verify.zig | 2 +-
lib/std/heap.zig | 2 +-
lib/std/math.zig | 10 +-
lib/std/math/gamma.zig | 32 +-
lib/std/math/modf.zig | 2 +-
lib/std/math/pow.zig | 4 +-
lib/std/net.zig | 53 +-
lib/std/posix.zig | 4 +-
lib/std/start.zig | 2 +-
lib/std/zig.zig | 39 +-
lib/std/zig/Ast.zig | 4 +-
lib/std/zip.zig | 88 +-
lib/std/zip/test.zig | 515 ----
lib/std/zon/parse.zig | 6 +-
src/Compilation.zig | 10 +-
src/Package/Fetch.zig | 101 +-
src/Package/Fetch/git.zig | 473 +++-
src/Package/Module.zig | 2 +-
src/Sema.zig | 826 ++----
src/Zcu.zig | 7 +-
src/arch/x86_64/CodeGen.zig | 57 +-
src/arch/x86_64/Emit.zig | 11 +-
src/codegen/aarch64.zig | 59 +-
src/codegen/aarch64/Assemble.zig | 32 +-
src/codegen/aarch64/Mir.zig | 139 +-
src/codegen/aarch64/Select.zig | 2578 +++++++++++++----
src/codegen/aarch64/encoding.zig | 4796 +++++++++++++++++++++++++++-----
src/codegen/aarch64/instructions.zon | 190 ++
src/codegen/llvm.zig | 4 +-
src/link/Dwarf.zig | 39 +-
src/link/Elf/Object.zig | 13 +-
src/main.zig | 9 +-
src/print_env.zig | 44 +-
src/target.zig | 18 +-
test/behavior/array.zig | 16 +-
test/behavior/atomics.zig | 16 +-
test/behavior/bit_shifting.zig | 2 -
test/behavior/cast_int.zig | 1 +
test/behavior/decl_literals.zig | 2 -
test/behavior/defer.zig | 2 -
test/behavior/enum.zig | 1 -
test/behavior/error.zig | 16 -
test/behavior/field_parent_ptr.zig | 11 +-
test/behavior/inline_switch.zig | 2 -
test/behavior/math.zig | 5 +-
test/behavior/optional.zig | 3 -
test/behavior/packed-struct.zig | 1 +
test/behavior/pointers.zig | 1 -
test/behavior/ptrcast.zig | 10 +
test/behavior/return_address.zig | 1 -
test/behavior/slice.zig | 4 -
test/behavior/struct.zig | 6 -
test/behavior/struct_contains_slice_of_itself.zig | 2 -
test/behavior/switch.zig | 19 +-
test/behavior/switch_on_captured_error.zig | 1 -
test/behavior/switch_prong_err_enum.zig | 1 -
test/behavior/try.zig | 1 -
test/behavior/union.zig | 39 -
test/behavior/union_with_members.zig | 1 -
test/behavior/var_args.zig | 4 -
test/behavior/while.zig | 3 -
test/behavior/x86_64/binary.zig | 2 -
test/cases/array_in_anon_struct.zig | 2 +-
test/cases/compile_errors/atomics_with_invalid_type.zig | 17 +-
test/cases/compile_errors/callconv_interrupt_on_unsupported_platform.zig | 4 +-
test/cases/compile_errors/comptime_try_non_error.zig | 1 +
test/cases/compile_errors/error_set_membership.zig | 2 +-
test/cases/compile_errors/function_ptr_alignment.zig | 2 +-
test/cases/compile_errors/int_to_float_coercion_loses_precision.zig | 9 +
test/cases/compile_errors/issue_15572_break_on_inline_while.zig | 2 +-
test/cases/compile_errors/minmax_nonnumeric_operand.zig | 41 +
test/cases/compile_errors/redundant_try.zig | 6 +
test/cases/compile_errors/reify_type_for_tagged_extern_union.zig | 34 +
test/cases/compile_errors/reify_type_for_tagged_packed_union.zig | 34 +
test/cases/compile_errors/runtime_value_in_comptime_array.zig | 14 +
test/cases/compile_errors/runtime_value_in_comptime_struct.zig | 14 +
test/cases/compile_errors/slice_of_many-item_pointer_preserves_sentinel.zig | 18 +
test/cases/compile_errors/switch_on_non_err_union.zig | 2 +-
test/cases/pic_freestanding.zig | 2 +-
test/cases/safety/@alignCast misaligned.zig | 2 +-
test/cases/safety/@enumFromInt - no matching tag value.zig | 2 +-
test/cases/safety/@enumFromInt truncated bits - exhaustive.zig | 2 +-
test/cases/safety/@enumFromInt truncated bits - nonexhaustive.zig | 2 +-
test/cases/safety/@errorCast error not present in destination.zig | 2 +-
test/cases/safety/@errorCast error union casted to disjoint set.zig | 2 +-
test/cases/safety/@intCast to u0.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - i0 max.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - i0 min.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - signed max.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - signed min.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - u0 max.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - u0 min.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - unsigned max.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - unsigned min.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - vector max.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - boundary case - vector min.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - negative out of range.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - negative to unsigned.zig | 2 +-
test/cases/safety/@intFromFloat cannot fit - positive out of range.zig | 2 +-
test/cases/safety/@ptrFromInt address zero to non-optional byte-aligned pointer.zig | 2 +-
test/cases/safety/@ptrFromInt address zero to non-optional pointer.zig | 2 +-
test/cases/safety/@ptrFromInt with misaligned address.zig | 2 +-
test/cases/safety/@tagName on corrupted enum value.zig | 2 +-
test/cases/safety/@tagName on corrupted union value.zig | 2 +-
test/cases/safety/array slice sentinel mismatch vector.zig | 2 +-
test/cases/safety/array slice sentinel mismatch.zig | 2 +-
test/cases/safety/bad union field access.zig | 2 +-
test/cases/safety/calling panic.zig | 2 +-
test/cases/safety/cast []u8 to bigger slice of wrong size.zig | 2 +-
test/cases/safety/cast integer to global error and no code matches.zig | 2 +-
test/cases/safety/empty slice with sentinel out of bounds.zig | 2 +-
test/cases/safety/exact division failure - vectors.zig | 2 +-
test/cases/safety/exact division failure.zig | 2 +-
test/cases/safety/for_len_mismatch.zig | 2 +-
test/cases/safety/for_len_mismatch_three.zig | 2 +-
test/cases/safety/ignored expression integer overflow.zig | 2 +-
test/cases/safety/integer addition overflow.zig | 2 +-
test/cases/safety/integer division by zero - vectors.zig | 2 +-
test/cases/safety/integer division by zero.zig | 2 +-
test/cases/safety/integer multiplication overflow.zig | 2 +-
test/cases/safety/integer negation overflow.zig | 2 +-
test/cases/safety/integer subtraction overflow.zig | 2 +-
test/cases/safety/memcpy_alias.zig | 2 +-
test/cases/safety/memcpy_len_mismatch.zig | 2 +-
test/cases/safety/memmove_len_mismatch.zig | 2 +-
test/cases/safety/memset_array_undefined_bytes.zig | 2 +-
test/cases/safety/memset_array_undefined_large.zig | 2 +-
test/cases/safety/memset_slice_undefined_bytes.zig | 2 +-
test/cases/safety/memset_slice_undefined_large.zig | 2 +-
test/cases/safety/modrem by zero.zig | 2 +-
test/cases/safety/modulus by zero.zig | 2 +-
test/cases/safety/noreturn returned.zig | 2 +-
test/cases/safety/optional unwrap operator on C pointer.zig | 2 +-
test/cases/safety/optional unwrap operator on null pointer.zig | 2 +-
test/cases/safety/optional_empty_error_set.zig | 2 +-
test/cases/safety/out of bounds array slice by length.zig | 2 +-
test/cases/safety/out of bounds slice access.zig | 2 +-
test/cases/safety/pointer casting null to non-optional pointer.zig | 2 +-
test/cases/safety/pointer casting to null function pointer.zig | 2 +-
test/cases/safety/pointer slice sentinel mismatch.zig | 2 +-
test/cases/safety/remainder division by zero.zig | 2 +-
test/cases/safety/shift left by huge amount.zig | 2 +-
test/cases/safety/shift right by huge amount.zig | 2 +-
test/cases/safety/signed integer division overflow - vectors.zig | 2 +-
test/cases/safety/signed integer division overflow.zig | 2 +-
test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig | 2 +-
test/cases/safety/signed integer not fitting in cast to unsigned integer.zig | 2 +-
test/cases/safety/signed shift left overflow.zig | 2 +-
test/cases/safety/signed shift right overflow.zig | 2 +-
test/cases/safety/signed-unsigned vector cast.zig | 2 +-
test/cases/safety/slice by length sentinel mismatch on lhs.zig | 2 +-
test/cases/safety/slice by length sentinel mismatch on rhs.zig | 2 +-
test/cases/safety/slice sentinel mismatch - floats.zig | 2 +-
test/cases/safety/slice sentinel mismatch - optional pointers.zig | 2 +-
test/cases/safety/slice slice sentinel mismatch.zig | 2 +-
test/cases/safety/slice start index greater than end index.zig | 2 +-
test/cases/safety/slice with sentinel out of bounds - runtime len.zig | 2 +-
test/cases/safety/slice with sentinel out of bounds.zig | 2 +-
test/cases/safety/slice_cast_change_len_0.zig | 2 +-
test/cases/safety/slice_cast_change_len_1.zig | 2 +-
test/cases/safety/slice_cast_change_len_2.zig | 2 +-
test/cases/safety/slicing null C pointer - runtime len.zig | 2 +-
test/cases/safety/slicing null C pointer.zig | 2 +-
test/cases/safety/switch else on corrupt enum value - one prong.zig | 2 +-
test/cases/safety/switch else on corrupt enum value - union.zig | 2 +-
test/cases/safety/switch else on corrupt enum value.zig | 2 +-
test/cases/safety/switch on corrupted enum value.zig | 2 +-
test/cases/safety/switch on corrupted union value.zig | 2 +-
test/cases/safety/truncating vector cast.zig | 2 +-
test/cases/safety/unreachable.zig | 2 +-
test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig | 2 +-
test/cases/safety/unsigned shift left overflow.zig | 2 +-
test/cases/safety/unsigned shift right overflow.zig | 2 +-
test/cases/safety/unsigned-signed vector cast.zig | 2 +-
test/cases/safety/unwrap error switch.zig | 2 +-
test/cases/safety/unwrap error.zig | 2 +-
test/cases/safety/value does not fit in shortening cast - u0.zig | 2 +-
test/cases/safety/value does not fit in shortening cast.zig | 2 +-
test/cases/safety/vector integer addition overflow.zig | 2 +-
test/cases/safety/vector integer multiplication overflow.zig | 2 +-
test/cases/safety/vector integer negation overflow.zig | 2 +-
test/cases/safety/vector integer subtraction overflow.zig | 2 +-
test/cases/safety/zero casted to error.zig | 2 +-
test/cases/taking_pointer_of_global_tagged_union.zig | 2 +-
test/incremental/change_panic_handler | 1 -
test/incremental/change_panic_handler_explicit | 1 -
test/incremental/type_becomes_comptime_only | 1 -
test/link/build.zig.zon | 3 +-
test/link/elf.zig | 738 ++---
test/link/link.zig | 6 +-
test/link/macho.zig | 246 +-
test/link/wasm/extern/build.zig | 2 +-
test/src/Cases.zig | 8 +-
test/src/RunTranslatedC.zig | 2 +-
test/standalone/build.zig.zon | 5 +-
test/standalone/c_embed_path/build.zig | 6 +-
test/standalone/dependencyFromBuildZig/build.zig.zon | 3 +-
test/standalone/dependencyFromBuildZig/other/build.zig.zon | 3 +-
test/standalone/dependency_options/build.zig | 148 +
test/standalone/dependency_options/build.zig.zon | 11 +
test/standalone/dependency_options/other/build.zig | 59 +
test/standalone/dependency_options/other/build.zig.zon | 7 +
test/standalone/extern/build.zig | 4 +-
test/standalone/issue_794/build.zig | 2 +-
test/standalone/stack_iterator/build.zig | 2 +-
test/tests.zig | 4 +-
294 files changed, 11080 insertions(+), 6828 deletions(-)