CMakeLists.txt | 19 +- build.zig | 222 +-- ci/aarch64-linux-debug.sh | 8 +- ci/aarch64-linux-release.sh | 8 +- ci/x86_64-linux-debug.sh | 8 +- ci/x86_64-linux-release.sh | 8 +- doc/docgen.zig | 89 +- doc/langref.html.in | 40 +- lib/build_runner.zig | 755 +++++++- lib/compiler_rt/udivmodei4.zig | 12 +- lib/docs/main.js | 4 - lib/std/Build.zig | 488 +++-- lib/std/Build/Cache.zig | 135 +- lib/std/Build/CheckFileStep.zig | 87 +- lib/std/Build/CheckObjectStep.zig | 186 +- lib/std/Build/CompileStep.zig | 821 ++++---- lib/std/Build/ConfigHeaderStep.zig | 155 +- lib/std/Build/EmulatableRunStep.zig | 213 --- lib/std/Build/FmtStep.zig | 85 +- lib/std/Build/InstallArtifactStep.zig | 104 +- lib/std/Build/InstallDirStep.zig | 69 +- lib/std/Build/InstallFileStep.zig | 51 +- lib/std/Build/LogStep.zig | 23 - lib/std/Build/ObjCopyStep.zig | 46 +- lib/std/Build/OptionsStep.zig | 41 +- lib/std/Build/RemoveDirStep.zig | 35 +- lib/std/Build/RunStep.zig | 1246 ++++++++++--- lib/std/Build/Step.zig | 492 ++++- lib/std/Build/TranslateCStep.zig | 52 +- lib/std/Build/WriteFileStep.zig | 212 ++- lib/std/Progress.zig | 98 +- lib/std/Thread.zig | 5 + lib/std/Thread/Pool.zig | 159 ++ lib/std/Thread/WaitGroup.zig | 46 + lib/std/Uri.zig | 109 +- lib/std/array_list.zig | 33 +- lib/std/c.zig | 3 +- lib/std/c/darwin.zig | 477 +++++ lib/std/c/darwin/cssm.zig | 47 + lib/std/child_process.zig | 175 +- lib/std/crypto.zig | 30 + lib/std/crypto/25519/field.zig | 9 +- lib/std/crypto/aes/armcrypto.zig | 24 +- lib/std/crypto/aes/soft.zig | 365 +++- lib/std/crypto/argon2.zig | 59 +- lib/std/crypto/benchmark.zig | 89 + lib/std/crypto/blake3.zig | 2 +- lib/std/crypto/gimli.zig | 2 +- lib/std/crypto/keccak_p.zig | 6 +- lib/std/crypto/kyber_d00.zig | 1780 ++++++++++++++++++ lib/std/crypto/sha3.zig | 47 +- lib/std/crypto/tls/Client.zig | 50 +- lib/std/debug.zig | 33 + lib/std/fifo.zig | 27 + lib/std/fmt.zig | 22 + lib/std/fmt/parse_float.zig | 1 + lib/std/fmt/parse_float/parse.zig | 2 + lib/std/fs/file.zig | 38 +- lib/std/fs/test.zig | 30 +- lib/std/heap.zig | 1 + lib/std/heap/ThreadSafeAllocator.zig | 45 + lib/std/http.zig | 15 + lib/std/http/Client.zig | 1036 +++------- lib/std/http/Client/Request.zig | 482 +++++ lib/std/http/Client/Response.zig | 509 +++++ lib/std/math/big/int.zig | 1 + lib/std/mem.zig | 13 +- lib/std/multi_array_list.zig | 15 +- lib/std/net.zig | 34 +- lib/std/os.zig | 123 +- lib/std/os/darwin.zig | 540 ------ lib/std/os/darwin/cssm.zig | 47 - lib/std/os/linux.zig | 84 +- lib/std/os/linux/io_uring.zig | 170 +- lib/std/os/linux/test.zig | 33 +- lib/std/os/posix_spawn.zig | 290 --- lib/std/os/ptrace.zig | 28 - lib/std/os/windows.zig | 82 +- lib/std/os/windows/advapi32.zig | 2 + lib/std/os/windows/kernel32.zig | 3 + lib/std/process.zig | 66 +- lib/std/std.zig | 10 + lib/std/target.zig | 12 +- lib/std/zig.zig | 3 + lib/std/zig/Ast.zig | 9 +- lib/std/zig/Client.zig | 39 + lib/std/zig/ErrorBundle.zig | 515 +++++ lib/std/zig/Server.zig | 305 +++ lib/std/zig/system/NativeTargetInfo.zig | 5 + lib/test_runner.zig | 168 +- lib/zig.h | 1311 ++++++++++--- src/Air.zig | 10 +- src/AstGen.zig | 243 ++- src/Autodoc.zig | 1 - src/BuiltinFn.zig | 8 + src/Compilation.zig | 1032 +++++----- src/Liveness.zig | 2 + src/Module.zig | 197 +- src/Package.zig | 129 +- src/Sema.zig | 202 +- src/ThreadPool.zig | 152 -- src/WaitGroup.zig | 46 - src/Zir.zig | 30 +- src/arch/aarch64/CodeGen.zig | 230 +-- src/arch/arm/CodeGen.zig | 205 +- src/arch/arm/Emit.zig | 9 +- src/arch/arm/Mir.zig | 2 + src/arch/arm/bits.zig | 11 + src/arch/riscv64/CodeGen.zig | 177 +- src/arch/riscv64/Emit.zig | 2 + src/arch/riscv64/Mir.zig | 1 + src/arch/riscv64/bits.zig | 1 + src/arch/sparc64/CodeGen.zig | 190 +- src/arch/wasm/CodeGen.zig | 11 +- src/arch/x86_64/CodeGen.zig | 2451 ++++++++++-------------- src/arch/x86_64/Emit.zig | 3215 ++++---------------------------- src/arch/x86_64/Encoding.zig | 587 ++++++ src/arch/x86_64/Mir.zig | 809 ++++---- src/arch/x86_64/bits.zig | 1146 +++--------- src/arch/x86_64/encoder.zig | 2275 ++++++++++++++++++++++ src/arch/x86_64/encodings.zig | 621 ++++++ src/codegen.zig | 306 ++- src/codegen/c.zig | 1427 +++++++++----- src/codegen/c/type.zig | 481 ++++- src/codegen/llvm.zig | 11 +- src/glibc.zig | 19 +- src/libcxx.zig | 8 +- src/libtsan.zig | 4 +- src/libunwind.zig | 4 +- src/link.zig | 45 +- src/link/C.zig | 22 +- src/link/Coff.zig | 2 +- src/link/Elf.zig | 68 +- src/link/MachO.zig | 2 +- src/link/MachO/CodeSignature.zig | 4 +- src/link/Plan9.zig | 2 +- src/link/Wasm.zig | 125 +- src/link/Wasm/Atom.zig | 24 +- src/link/Wasm/Object.zig | 2 + src/link/Wasm/Symbol.zig | 3 + src/main.zig | 843 +++++---- src/mingw.zig | 14 +- src/musl.zig | 16 +- src/objcopy.zig | 50 +- src/print_air.zig | 1 + src/print_zir.zig | 3 +- src/register_manager.zig | 3 + src/test.zig | 1984 -------------------- src/translate_c.zig | 16 +- src/translate_c/ast.zig | 28 + src/value.zig | 67 +- src/wasi_libc.zig | 16 +- stage1/wasi.c | 2 - stage1/zig.h | 2819 +++++++++++++++++++--------- stage1/zig1.wasm | Bin 2408069 -> 2412111 bytes test/behavior.zig | 1 + test/behavior/align.zig | 1 - test/behavior/array.zig | 29 +- test/behavior/bit_shifting.zig | 1 - test/behavior/bitcast.zig | 3 - test/behavior/bitreverse.zig | 4 - test/behavior/bugs/10147.zig | 1 - test/behavior/bugs/1076.zig | 1 - test/behavior/bugs/11046.zig | 1 - test/behavior/bugs/11787.zig | 1 - test/behavior/bugs/12000.zig | 1 - test/behavior/bugs/12119.zig | 1 - test/behavior/bugs/12169.zig | 1 - test/behavior/bugs/12890.zig | 1 - test/behavior/bugs/13113.zig | 1 - test/behavior/bugs/1421.zig | 1 - test/behavior/bugs/14854.zig | 13 + test/behavior/bugs/1607.zig | 1 - test/behavior/bugs/2622.zig | 1 - test/behavior/bugs/2727.zig | 1 - test/behavior/bugs/3742.zig | 1 - test/behavior/bugs/394.zig | 1 - test/behavior/bugs/421.zig | 1 - test/behavior/bugs/5398.zig | 1 - test/behavior/bugs/5487.zig | 1 - test/behavior/bugs/656.zig | 1 - test/behavior/bugs/6947.zig | 1 - test/behavior/builtin_functions_returning_void_or_noreturn.zig | 32 + test/behavior/byteswap.zig | 4 - test/behavior/byval_arg_var.zig | 1 - test/behavior/call.zig | 2 - test/behavior/cast.zig | 10 - test/behavior/comptime_memory.zig | 8 + test/behavior/defer.zig | 1 - test/behavior/enum.zig | 2 - test/behavior/error.zig | 10 - test/behavior/eval.zig | 2 - test/behavior/field_parent_ptr.zig | 5 + test/behavior/floatop.zig | 19 - test/behavior/fn.zig | 2 - test/behavior/for.zig | 8 - test/behavior/generics.zig | 3 - test/behavior/if.zig | 1 - test/behavior/inline_switch.zig | 1 - test/behavior/int_div.zig | 19 + test/behavior/math.zig | 9 +- test/behavior/maximum_minimum.zig | 2 - test/behavior/member_func.zig | 2 - test/behavior/muladd.zig | 12 +- test/behavior/null.zig | 3 - test/behavior/optional.zig | 1 - test/behavior/pointers.zig | 2 - test/behavior/popcount.zig | 1 - test/behavior/ptrcast.zig | 3 +- test/behavior/ref_var_in_if_after_if_2nd_switch_prong.zig | 1 - test/behavior/reflection.zig | 1 - test/behavior/select.zig | 2 - test/behavior/shuffle.zig | 5 +- test/behavior/sizeof_and_typeof.zig | 3 - test/behavior/slice.zig | 30 +- test/behavior/struct.zig | 5 - test/behavior/struct_contains_null_ptr_itself.zig | 1 - test/behavior/switch.zig | 2 - test/behavior/threadlocal.zig | 2 - test/behavior/translate_c_macros.zig | 1 - test/behavior/truncate.zig | 1 - test/behavior/tuple.zig | 20 +- test/behavior/type.zig | 4 - test/behavior/type_info.zig | 2 - test/behavior/union.zig | 11 - test/behavior/union_with_members.zig | 1 - test/behavior/vector.zig | 54 +- test/behavior/void.zig | 1 - test/behavior/while.zig | 8 - test/behavior/widening.zig | 1 - test/cases.zig | 10 +- test/cases/compile_errors/access_inactive_union_field_comptime.zig | 1 + test/cases/compile_errors/attempted_implicit_cast_from_T_to_long_array_ptr.zig | 18 + test/cases/compile_errors/bad_import.zig | 2 +- test/cases/compile_errors/break_void_result_location.zig | 32 + test/cases/compile_errors/compileLog_of_tagged_enum_doesnt_crash_the_compiler.zig | 4 + test/cases/compile_errors/compile_log.zig | 9 + test/cases/compile_errors/compile_log_a_pointer_to_an_opaque_value.zig | 5 +- test/cases/compile_errors/compile_log_statement_inside_function_which_must_be_comptime_evaluated.zig | 3 + test/cases/compile_errors/compile_log_statement_warning_deduplication_in_generic_fn.zig | 5 + test/cases/compile_errors/comptime_try_non_error.zig | 18 + test/cases/compile_errors/condition_comptime_reason_explained.zig | 2 + test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig | 1 + test/cases/compile_errors/exporting_primitive_values.zig | 29 + test/cases/compile_errors/extern_function_with_comptime_parameter.zig | 2 +- test/cases/compile_errors/function_parameter_is_opaque.zig | 1 + test/cases/compile_errors/helpful_return_type_error_message.zig | 2 +- test/cases/compile_errors/implicit_semicolon-block_expr.zig | 2 + test/cases/compile_errors/implicit_semicolon-block_statement.zig | 2 + test/cases/compile_errors/implicit_semicolon-comptime_expression.zig | 2 + test/cases/compile_errors/implicit_semicolon-comptime_statement.zig | 2 + test/cases/compile_errors/implicit_semicolon-defer.zig | 2 + test/cases/compile_errors/implicit_semicolon-for_expression.zig | 3 + test/cases/compile_errors/implicit_semicolon-for_statement.zig | 3 + test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig | 2 + test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig | 2 + test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig | 2 + test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig | 2 + test/cases/compile_errors/implicit_semicolon-if-else_expression.zig | 2 + test/cases/compile_errors/implicit_semicolon-if-else_statement.zig | 2 + test/cases/compile_errors/implicit_semicolon-if_expression.zig | 2 + test/cases/compile_errors/implicit_semicolon-if_statement.zig | 2 + test/cases/compile_errors/implicit_semicolon-test_expression.zig | 3 + test/cases/compile_errors/implicit_semicolon-test_statement.zig | 3 + test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig | 2 + test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig | 2 + test/cases/compile_errors/implicit_semicolon-while_expression.zig | 2 + test/cases/compile_errors/implicit_semicolon-while_statement.zig | 2 + test/cases/compile_errors/invalid_member_of_builtin_enum.zig | 2 +- test/cases/compile_errors/invalid_store_to_comptime_field.zig | 2 +- test/cases/compile_errors/invalid_struct_field.zig | 1 + test/cases/compile_errors/method_call_with_first_arg_type_primitive.zig | 3 +- test/cases/compile_errors/method_call_with_first_arg_type_wrong_container.zig | 1 + test/cases/compile_errors/missing_main_fn_in_executable.zig | 6 +- test/cases/compile_errors/private_main_fn.zig | 6 +- test/cases/compile_errors/reify_type_with_undefined.zig | 13 + test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig | 5 +- test/cases/compile_errors/struct_type_mismatch_in_arg.zig | 2 +- test/cases/compile_errors/undefined_as_field_type_is_rejected.zig | 12 +- test/cases/compile_errors/union_init_with_none_or_multiple_fields.zig | 3 +- test/cases/compile_log.0.zig | 5 + test/cases/compile_log.1.zig | 4 + test/cases/f32_passed_to_variadic_fn.zig | 3 +- test/cases/fn_typeinfo_passed_to_comptime_fn.zig | 1 + test/cases/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig | 2 +- test/cases/llvm/address_spaces_pointer_access_chaining_array_pointer.zig | 2 +- test/cases/llvm/address_spaces_pointer_access_chaining_complex.zig | 2 +- test/cases/llvm/address_spaces_pointer_access_chaining_struct_pointer.zig | 2 +- test/cases/llvm/dereferencing_though_multiple_pointers_with_address_spaces.zig | 2 +- test/cases/llvm/hello_world.zig | 1 + test/cases/llvm/pointer_keeps_address_space.zig | 2 +- test/cases/llvm/pointer_keeps_address_space_when_taking_address_of_dereference.zig | 2 +- test/cases/llvm/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig | 2 +- test/cbe.zig | 950 ++++++++++ test/cli.zig | 195 -- test/compile_errors.zig | 224 +-- test/link.zig | 385 ++-- test/link/bss/build.zig | 6 +- test/link/bss/main.zig | 2 +- test/link/common_symbols/build.zig | 13 +- test/link/common_symbols_alignment/build.zig | 17 +- test/link/interdependent_static_c_libs/build.zig | 19 +- test/link/macho/bugs/13056/build.zig | 16 +- test/link/macho/bugs/13457/build.zig | 20 +- test/link/macho/dead_strip/build.zig | 17 +- test/link/macho/dead_strip_dylibs/build.zig | 32 +- test/link/macho/dylib/build.zig | 31 +- test/link/macho/empty/build.zig | 19 +- test/link/macho/entry/build.zig | 15 +- test/link/macho/headerpad/build.zig | 38 +- test/link/macho/linksection/build.zig | 18 +- test/link/macho/needed_framework/build.zig | 16 +- test/link/macho/needed_library/build.zig | 24 +- test/link/macho/objc/build.zig | 17 +- test/link/macho/objcpp/build.zig | 13 +- test/link/macho/pagezero/build.zig | 14 +- test/link/macho/search_strategy/build.zig | 46 +- test/link/macho/stack_size/build.zig | 19 +- test/link/macho/strict_validation/build.zig | 18 +- test/link/macho/tls/build.zig | 19 +- test/link/macho/unwind_info/build.zig | 27 +- test/link/macho/uuid/build.zig | 85 +- test/link/macho/weak_framework/build.zig | 16 +- test/link/macho/weak_library/build.zig | 22 +- test/link/static_lib_as_system_lib/a.c | 4 - test/link/static_lib_as_system_lib/a.h | 2 - test/link/static_lib_as_system_lib/build.zig | 29 - test/link/static_lib_as_system_lib/main.zig | 8 - test/link/wasm/archive/build.zig | 17 +- test/link/wasm/basic-features/build.zig | 7 +- test/link/wasm/bss/build.zig | 9 +- test/link/wasm/export-data/build.zig | 9 +- test/link/wasm/export/build.zig | 19 +- test/link/wasm/extern-mangle/build.zig | 16 +- test/link/wasm/extern/build.zig | 18 +- test/link/wasm/function-table/build.zig | 25 +- test/link/wasm/infer-features/build.zig | 11 +- test/link/wasm/producers/build.zig | 21 +- test/link/wasm/segments/build.zig | 17 +- test/link/wasm/stack_pointer/build.zig | 17 +- test/link/wasm/type/build.zig | 17 +- test/nvptx.zig | 106 ++ test/src/Cases.zig | 1587 ++++++++++++++++ test/src/CompareOutput.zig | 174 ++ test/src/StackTrace.zig | 107 ++ test/src/check-stack-trace.zig | 79 + test/src/compare_output.zig | 177 -- test/stage2/cbe.zig | 1015 ---------- test/stage2/nvptx.zig | 107 -- test/standalone.zig | 314 ++-- test/standalone/brace_expansion.zig | 292 +++ test/standalone/brace_expansion/build.zig | 11 - test/standalone/brace_expansion/main.zig | 292 --- test/standalone/c_compiler/build.zig | 39 +- test/standalone/dep_diamond/build.zig | 6 +- test/standalone/dep_mutually_recursive/build.zig | 6 +- test/standalone/dep_recursive/build.zig | 6 +- test/standalone/dep_shared_builtin/build.zig | 6 +- test/standalone/dep_triangle/build.zig | 6 +- test/standalone/embed_generated_file/build.zig | 8 +- test/standalone/emit_asm_and_bin/build.zig | 6 +- test/standalone/empty_env/build.zig | 16 +- test/standalone/extern/build.zig | 20 + test/standalone/extern/exports.zig | 12 + test/standalone/extern/main.zig | 21 + test/standalone/global_linkage/build.zig | 13 +- test/standalone/install_raw_hex/build.zig | 6 +- test/standalone/issue_11595/build.zig | 31 +- test/standalone/issue_12588/build.zig | 8 +- test/standalone/issue_12706/build.zig | 30 +- test/standalone/issue_13030/build.zig | 15 +- test/standalone/issue_13970/build.zig | 10 +- test/standalone/issue_339/build.zig | 11 +- test/standalone/issue_5825/build.zig | 6 +- test/standalone/issue_7030.zig | 21 + test/standalone/issue_7030/build.zig | 17 - test/standalone/issue_7030/main.zig | 21 - test/standalone/issue_794/build.zig | 6 +- test/standalone/issue_8550/build.zig | 7 +- test/standalone/issue_9812/build.zig | 7 +- test/standalone/load_dynamic_library/build.zig | 20 +- test/standalone/load_dynamic_library/main.zig | 6 +- test/standalone/main_pkg_path/build.zig | 6 +- test/standalone/mix_c_files/build.zig | 32 +- test/standalone/mix_o_files/build.zig | 10 +- test/standalone/options/build.zig | 2 +- test/standalone/pie/build.zig | 18 +- test/standalone/pkg_import/build.zig | 6 +- test/standalone/shared_library/build.zig | 10 +- test/standalone/sigpipe/build.zig | 19 +- test/standalone/static_c_lib/build.zig | 8 +- test/standalone/test_runner_module_imports/build.zig | 2 +- test/standalone/test_runner_path/build.zig | 7 +- test/standalone/test_runner_path/test_runner.zig | 40 +- test/standalone/use_alias/build.zig | 10 +- test/standalone/windows_spawn/build.zig | 16 +- test/tests.zig | 1194 +++++------- test/translate_c.zig | 8 + tools/lldb_pretty_printers.py | 43 +- 399 files changed, 27595 insertions(+), 19646 deletions(-)