CMakeLists.txt | 142 +- build.zig | 71 +- ci/azure/build.zig | 976 ----- ci/azure/macos_arm64_script | 132 - ci/azure/macos_script | 49 +- ci/azure/pipelines.yml | 97 +- ci/drone/drone.yml | 42 +- ci/drone/linux_script_base | 22 - ci/drone/linux_script_build | 27 +- ci/drone/linux_script_finalize | 24 +- ci/drone/linux_script_test | 51 - ci/drone/test_linux_behavior | 13 + ci/drone/test_linux_cases | 11 + ci/drone/test_linux_misc | 16 + ci/drone/test_linux_std_Debug | 10 + ci/drone/test_linux_std_ReleaseFast | 10 + ci/drone/test_linux_std_ReleaseSafe | 10 + ci/drone/test_linux_std_ReleaseSmall | 16 + ci/srht/freebsd_script | 55 +- ci/srht/update_download_page | 29 +- ci/zinc/build_aarch64_macos | 20 + ci/zinc/configure_git | 10 + ci/zinc/drone.yml | 63 +- ci/zinc/linux_base.sh | 27 - ci/zinc/linux_package | 45 + ci/zinc/linux_package.sh | 48 - ci/zinc/linux_test.sh | 93 - ci/zinc/linux_test_stage3_debug | 61 + ci/zinc/linux_test_stage3_release | 58 + ci/zinc/macos_package | 49 + ci/zinc/notify_lavahut | 9 + cmake/install.cmake | 37 - doc/docgen.zig | 31 + doc/langref.html.in | 213 +- lib/compiler_rt/addf3.zig | 4 +- lib/compiler_rt/common.zig | 2 +- lib/compiler_rt/divxf3.zig | 2 + lib/compiler_rt/extendf.zig | 8 +- lib/compiler_rt/extendxftf2.zig | 2 +- lib/compiler_rt/int.zig | 2 +- lib/compiler_rt/int_to_float.zig | 4 +- lib/compiler_rt/mulf3.zig | 2 +- lib/compiler_rt/udivmod.zig | 10 +- lib/docs/index.html | 163 +- lib/docs/main.js | 6144 +++++++++++++++++--------------- lib/libc/glibc/abilists | Bin 205284 -> 210531 bytes lib/std/Thread/Futex.zig | 4 +- lib/std/Thread/Mutex.zig | 2 +- lib/std/Thread/RwLock.zig | 4 +- lib/std/array_list.zig | 63 + lib/std/bit_set.zig | 26 +- lib/std/bounded_array.zig | 16 +- lib/std/build.zig | 15 +- lib/std/build/OptionsStep.zig | 3 + lib/std/build/RunStep.zig | 2 +- lib/std/build/TranslateCStep.zig | 14 + lib/std/builtin.zig | 7 +- lib/std/c.zig | 8 +- lib/std/c/darwin.zig | 8 +- lib/std/c/dragonfly.zig | 6 +- lib/std/c/freebsd.zig | 6 +- lib/std/c/haiku.zig | 4 +- lib/std/c/netbsd.zig | 6 +- lib/std/c/openbsd.zig | 27 +- lib/std/c/solaris.zig | 8 +- lib/std/coff.zig | 1221 +++++-- lib/std/compress/deflate/bits_utils.zig | 2 +- lib/std/crypto/25519/ed25519.zig | 4 +- lib/std/crypto/aes_ocb.zig | 10 +- lib/std/crypto/ghash.zig | 32 +- lib/std/debug.zig | 314 +- lib/std/dwarf.zig | 539 ++- lib/std/elf.zig | 24 +- lib/std/enums.zig | 2 +- lib/std/event/channel.zig | 2 +- lib/std/fmt.zig | 4 +- lib/std/fmt/parse_float/convert_eisel_lemire.zig | 2 +- lib/std/fs.zig | 6 +- lib/std/fs/path.zig | 2 +- lib/std/fs/test.zig | 3 + lib/std/hash/auto_hash.zig | 39 +- lib/std/hash/cityhash.zig | 10 +- lib/std/hash/murmur.zig | 22 +- lib/std/heap.zig | 4 +- lib/std/io/bit_reader.zig | 2 +- lib/std/io/bit_writer.zig | 2 +- lib/std/io/reader.zig | 21 + lib/std/leb128.zig | 2 +- lib/std/math.zig | 6 +- lib/std/math/big/int.zig | 14 +- lib/std/math/float.zig | 2 +- lib/std/mem.zig | 41 +- lib/std/meta.zig | 77 +- lib/std/multi_array_list.zig | 2 +- lib/std/os.zig | 22 +- lib/std/os/linux.zig | 20 +- lib/std/os/linux/bpf.zig | 2 +- lib/std/os/linux/syscalls.zig | 1 + lib/std/os/plan9.zig | 2 +- lib/std/os/test.zig | 2 +- lib/std/os/uefi.zig | 6 +- lib/std/os/windows.zig | 6 +- lib/std/packed_int_array.zig | 6 +- lib/std/pdb.zig | 9 +- lib/std/priority_dequeue.zig | 2 +- lib/std/rand.zig | 46 +- lib/std/rand/test.zig | 26 + lib/std/start.zig | 4 +- lib/std/target.zig | 50 +- lib/std/valgrind/callgrind.zig | 2 +- lib/std/zig.zig | 12 +- lib/std/zig/Ast.zig | 2 +- lib/std/zig/CrossTarget.zig | 13 +- lib/std/zig/c_builtins.zig | 12 +- lib/std/zig/c_translation.zig | 2 +- lib/std/zig/parse.zig | 12 +- lib/std/zig/parser_test.zig | 23 +- lib/std/zig/system/NativePaths.zig | 2 + lib/std/zig/system/NativeTargetInfo.zig | 110 +- lib/std/zig/tokenizer.zig | 96 +- src/Air.zig | 10 + src/AstGen.zig | 333 +- src/Autodoc.zig | 417 ++- src/BuiltinFn.zig | 10 +- src/Compilation.zig | 265 +- src/Liveness.zig | 4 + src/Module.zig | 200 +- src/Sema.zig | 2587 +++++++++----- src/Zir.zig | 82 +- src/arch/aarch64/CodeGen.zig | 864 ++++- src/arch/aarch64/Emit.zig | 123 +- src/arch/aarch64/Mir.zig | 27 + src/arch/aarch64/bits.zig | 8 + src/arch/arm/CodeGen.zig | 199 +- src/arch/arm/Emit.zig | 57 +- src/arch/riscv64/CodeGen.zig | 5 +- src/arch/sparc64/CodeGen.zig | 5 +- src/arch/wasm/CodeGen.zig | 752 ++-- src/arch/wasm/Emit.zig | 2 +- src/arch/x86_64/CodeGen.zig | 57 +- src/autodoc/render_source.zig | 424 +++ src/clang_options_data.zig | 58 +- src/codegen.zig | 2 +- src/codegen/c.zig | 8 +- src/codegen/llvm.zig | 436 ++- src/codegen/llvm/bindings.zig | 15 + src/config.zig.in | 3 +- src/glibc.zig | 53 +- src/libcxx.zig | 2 + src/libtsan.zig | 1 + src/libunwind.zig | 1 + src/link.zig | 34 +- src/link/C.zig | 2 +- src/link/Coff.zig | 39 +- src/link/Dwarf.zig | 19 +- src/link/Elf.zig | 15 +- src/link/MachO.zig | 49 +- src/link/MachO/Atom.zig | 2 +- src/link/MachO/DebugSymbols.zig | 16 +- src/link/MachO/Object.zig | 45 +- src/link/NvPtx.zig | 2 +- src/link/Plan9.zig | 2 +- src/link/SpirV.zig | 2 +- src/link/Wasm.zig | 121 +- src/link/Wasm/Archive.zig | 121 +- src/link/Wasm/Object.zig | 23 +- src/main.zig | 77 +- src/mingw.zig | 6 - src/musl.zig | 1 + src/print_air.zig | 2 + src/print_zir.zig | 105 +- src/stage1.zig | 4 +- src/stage1/all_types.hpp | 1 + src/stage1/analyze.cpp | 6 + src/stage1/astgen.cpp | 6 +- src/stage1/codegen.cpp | 12 +- src/stage1/ir.cpp | 40 +- src/stage1/parser.cpp | 11 +- src/target.zig | 9 + src/test.zig | 65 +- src/translate_c.zig | 51 +- src/type.zig | 312 +- src/value.zig | 141 +- test/behavior.zig | 7 +- test/behavior/align.zig | 57 +- test/behavior/basic.zig | 21 + test/behavior/bitreverse.zig | 94 +- test/behavior/bugs/10147.zig | 5 +- test/behavior/bugs/1111.zig | 11 - test/behavior/bugs/12430.zig | 11 + test/behavior/bugs/12486.zig | 49 + test/behavior/bugs/2114.zig | 2 +- test/behavior/byteswap.zig | 15 +- test/behavior/call.zig | 15 + test/behavior/cast.zig | 7 +- test/behavior/comptime_memory.zig | 2 +- test/behavior/empty_union.zig | 54 + test/behavior/enum.zig | 47 + test/behavior/error.zig | 80 +- test/behavior/eval.zig | 54 + test/behavior/floatop.zig | 8 +- test/behavior/fn.zig | 23 +- test/behavior/generics.zig | 34 + test/behavior/math.zig | 43 +- test/behavior/muladd.zig | 2 + test/behavior/optional.zig | 59 + test/behavior/packed-struct.zig | 145 + test/behavior/packed_struct_explicit_backing_int.zig | 53 + test/behavior/popcount.zig | 29 +- test/behavior/struct.zig | 4 +- test/behavior/switch.zig | 1 + test/behavior/tuple.zig | 38 + test/behavior/type.zig | 5 + test/behavior/type_info.zig | 4 +- test/behavior/typename.zig | 11 + test/behavior/union.zig | 80 +- test/behavior/vector.zig | 40 + test/behavior/void.zig | 6 + test/cases/compile_errors/AstGen_comptime_known_struct_is_resolved_before_error.zig | 19 + test/cases/compile_errors/access_inactive_union_field_comptime.zig | 23 + test/cases/compile_errors/ambiguous_coercion_of_division_operands.zig | 23 + test/cases/compile_errors/bogus_method_call_on_slice.zig | 8 + test/cases/compile_errors/calling_function_with_naked_calling_convention.zig | 11 + test/cases/compile_errors/compile_time_null_ptr_cast.zig | 11 + test/cases/compile_errors/compile_time_undef_ptr_cast.zig | 11 + test/cases/compile_errors/comptime_parameter_not_declared_as_such.zig | 24 + test/cases/compile_errors/decl_shadows_local.zig | 22 + test/cases/compile_errors/duplicate_field_in_discarded_anon_init.zig | 10 + test/cases/compile_errors/enum_with_0_fields.zig | 7 - test/cases/compile_errors/error_in_typeof_param.zig | 14 + test/cases/compile_errors/errors_in_for_loop_bodies_are_propagated.zig | 4 +- test/cases/compile_errors/exact division failure.zig | 10 + test/cases/compile_errors/explain_why_fn_is_called_at_comptime.zig | 23 + test/cases/compile_errors/explain_why_generic_fn_is_called_at_comptime.zig | 22 + test/cases/compile_errors/export_function_with_comptime_parameter.zig | 2 +- test/cases/compile_errors/extern_function_with_comptime_parameter.zig | 9 +- test/cases/compile_errors/float exact division failure.zig | 10 + test/cases/compile_errors/function_type_named.zig | 7 + test/cases/compile_errors/int_literal_passed_as_variadic_arg.zig | 11 + test/cases/compile_errors/invalid_error_union_payload_type.zig | 13 + test/cases/compile_errors/invalid_optional_payload_type.zig | 13 + test/cases/compile_errors/invalid_underscore_placement_in_int_literal-1.zig | 4 +- test/cases/compile_errors/leading_zero_in_integer.zig | 27 + test/cases/compile_errors/member_function_arg_mismatch.zig | 15 + test/cases/compile_errors/non_comptime_param_in_comptime_function.zig | 36 + test/cases/compile_errors/non_constant_expression_in_array_size.zig | 2 +- test/cases/compile_errors/noreturn_struct_field.zig | 12 + test/cases/compile_errors/not_an_enum_type.zig | 2 +- test/cases/compile_errors/packed_struct_backing_int_wrong.zig | 55 + test/cases/compile_errors/popCount-non-integer.zig | 4 +- test/cases/compile_errors/reify_type_for_exhaustive_enum_with_zero_fields.zig | 18 - test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig | 2 +- test/cases/compile_errors/reify_type_for_union_with_zero_fields.zig | 17 - test/cases/compile_errors/runtime_cast_to_union_which_has_non-void_fields.zig | 2 - test/cases/compile_errors/self_referential_struct_requires_comptime.zig | 18 + test/cases/compile_errors/self_referential_union_requires_comptime.zig | 17 + test/cases/compile_errors/shlExact_shifts_out_1_bits.zig | 10 + test/cases/compile_errors/shrExact_shifts_out_1_bits.zig | 10 + test/cases/compile_errors/signed_integer_division.zig | 9 + test/cases/compile_errors/slice_of_non_array_type.zig | 9 + test/cases/compile_errors/stage1/obj/calling_function_with_naked_calling_convention.zig | 11 - test/cases/compile_errors/stage1/obj/shlExact_shifts_out_1_bits.zig | 10 - test/cases/compile_errors/stage1/obj/shrExact_shifts_out_1_bits.zig | 10 - test/cases/compile_errors/stage1/obj/signed_integer_division.zig | 9 - test/cases/compile_errors/stage1/obj/wrong_number_of_arguments_for_method_fn_call.zig | 14 - test/cases/compile_errors/struct_init_passed_to_type_param.zig | 14 + test/cases/compile_errors/switch_on_slice.zig | 13 + test/cases/compile_errors/tagName_on_invalid_value_of_non-exhaustive_enum.zig | 2 +- test/cases/compile_errors/union_fields_with_value_assignments.zig | 7 - test/cases/compile_errors/union_noreturn_field_initialized.zig | 43 + test/cases/compile_errors/union_with_0_fields.zig | 7 - test/cases/compile_errors/using_invalid_types_in_function_call_raises_an_error.zig | 11 - test/cases/compile_errors/wrong_number_of_arguments.zig | 3 +- test/cases/compile_errors/wrong_number_of_arguments_for_method_fn_call.zig | 15 + test/cases/error_in_nested_declaration.zig | 31 + test/cases/riscv64-linux/hello_world_with_updates.0.zig | 21 - test/cases/riscv64-linux/hello_world_with_updates.1.zig | 27 - test/cases/safety/@intToEnum - no matching tag value.zig | 9 +- test/cases/safety/@tagName on corrupted enum value.zig | 3 +- test/cases/safety/@tagName on corrupted union value.zig | 3 +- test/cases/safety/cast []u8 to bigger slice of wrong size.zig | 10 +- test/cases/safety/empty slice with sentinel out of bounds.zig | 4 +- test/cases/safety/modrem by zero.zig | 20 + test/cases/safety/modulus by zero.zig | 20 + test/cases/safety/out of bounds slice access.zig | 6 +- test/cases/safety/pointer casting null to non-optional pointer.zig | 10 +- test/cases/safety/pointer slice sentinel mismatch.zig | 6 +- test/cases/safety/remainder division by negative number.zig | 20 - test/cases/safety/remainder division by zero.zig | 20 + 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 | 10 +- test/cases/safety/signed integer division overflow.zig | 10 +- test/cases/safety/slice sentinel mismatch - floats.zig | 6 +- test/cases/safety/slice sentinel mismatch - optional pointers.zig | 6 +- test/cases/safety/slice slice sentinel mismatch.zig | 6 +- test/cases/safety/slice with sentinel out of bounds - runtime len.zig | 22 + test/cases/safety/slice with sentinel out of bounds.zig | 4 +- test/cases/safety/slicing null C pointer - runtime len.zig | 20 + test/cases/safety/slicing null C pointer.zig | 10 +- test/cases/safety/switch on corrupted enum value.zig | 7 +- test/cases/safety/switch on corrupted union value.zig | 7 +- test/cases/safety/zero casted to error.zig | 19 + test/compile_errors.zig | 20 +- test/link.zig | 54 +- test/link/macho/dead_strip/build.zig | 8 +- test/link/macho/pagezero/build.zig | 5 +- test/link/macho/search_strategy/build.zig | 8 +- test/link/macho/stack_size/build.zig | 3 +- test/link/macho/tls/a.c | 5 + test/link/macho/tls/build.zig | 22 + test/link/macho/tls/main.zig | 15 + test/link/tls/a.c | 5 - test/link/tls/build.zig | 18 - test/link/tls/main.zig | 15 - test/link/wasm/archive/build.zig | 27 + test/link/wasm/archive/main.zig | 6 + test/stack_traces.zig | 9 +- test/stage2/cbe.zig | 9 - test/standalone.zig | 8 +- test/standalone/issue_12471/main.zig | 12 + test/tests.zig | 19 +- test/translate_c.zig | 42 +- tools/gen_spirv_spec.zig | 4 +- tools/gen_stubs.zig | 2 +- tools/update_clang_options.zig | 40 +- 326 files changed, 14312 insertions(+), 8637 deletions(-)