@zigc/lib 0.17.0-dev.56 → 0.17.0-dev.633
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/c/fcntl.zig +5 -0
- package/c/inttypes.zig +0 -10
- package/c/math.zig +25 -96
- package/c/pthread.zig +57 -0
- package/c/search.zig +1 -27
- package/c/stdlib/drand48.zig +0 -57
- package/c/stdlib.zig +31 -121
- package/c/string.zig +20 -7
- package/c/strings.zig +0 -38
- package/c/unistd.zig +28 -26
- package/c/wchar.zig +10 -0
- package/c.zig +2 -2
- package/{std/Build → compiler/Maker}/Fuzz.zig +177 -89
- package/compiler/Maker/Graph.zig +85 -0
- package/compiler/Maker/PkgConfig.zig +121 -0
- package/compiler/Maker/ScannedConfig.zig +370 -0
- package/compiler/Maker/Step/CheckFile.zig +63 -0
- package/compiler/Maker/Step/Compile.zig +1390 -0
- package/compiler/Maker/Step/ConfigHeader.zig +610 -0
- package/compiler/Maker/Step/FindProgram.zig +120 -0
- package/compiler/Maker/Step/Fmt.zig +65 -0
- package/compiler/Maker/Step/InstallArtifact.zig +141 -0
- package/compiler/Maker/Step/InstallDir.zig +99 -0
- package/compiler/Maker/Step/InstallFile.zig +26 -0
- package/compiler/Maker/Step/ObjCopy.zig +173 -0
- package/compiler/Maker/Step/Options.zig +104 -0
- package/compiler/Maker/Step/Run.zig +2375 -0
- package/compiler/Maker/Step/TranslateC.zig +152 -0
- package/compiler/Maker/Step/UpdateSourceFiles.zig +89 -0
- package/compiler/Maker/Step/WriteFile.zig +294 -0
- package/compiler/Maker/Step.zig +894 -0
- package/{std/Build → compiler/Maker}/Watch/FsEvents.zig +33 -24
- package/{std/Build → compiler/Maker}/Watch.zig +89 -68
- package/{std/Build → compiler/Maker}/WebServer.zig +145 -118
- package/compiler/Maker.zig +2061 -0
- package/compiler/aro/aro/CodeGen.zig +7 -8
- package/compiler/aro/aro/Compilation.zig +17 -17
- package/compiler/aro/aro/Driver.zig +18 -16
- package/compiler/aro/aro/Parser.zig +20 -15
- package/compiler/aro/aro/Pragma.zig +3 -2
- package/compiler/aro/aro/Preprocessor.zig +11 -8
- package/compiler/aro/aro/pragmas/message.zig +3 -2
- package/compiler/aro/aro/text_literal.zig +3 -2
- package/compiler/aro/assembly_backend/x86_64.zig +4 -4
- package/compiler/aro/backend/Ir/x86/Renderer.zig +3 -3
- package/compiler/configurer.zig +1402 -0
- package/compiler/reduce/Walk.zig +8 -13
- package/compiler/resinator/compile.zig +1 -1
- package/compiler/resinator/cvtres.zig +4 -4
- package/compiler/resinator/errors.zig +7 -7
- package/compiler/resinator/ico.zig +4 -4
- package/compiler/resinator/parse.zig +2 -2
- package/compiler/resinator/res.zig +1 -1
- package/compiler/std-docs.zig +17 -38
- package/compiler/test_runner.zig +25 -15
- package/compiler/translate-c/MacroTranslator.zig +1 -1
- package/compiler/translate-c/Translator.zig +2 -2
- package/compiler/translate-c/ast.zig +16 -23
- package/compiler/translate-c/main.zig +1 -1
- package/compiler_rt/addf3.zig +1 -1
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/atomics.zig +1 -1
- package/compiler_rt/comparef.zig +3 -3
- package/compiler_rt/cos.zig +1 -1
- package/compiler_rt/count0bits.zig +1 -1
- package/compiler_rt/divdf3.zig +2 -2
- package/compiler_rt/divsf3.zig +1 -1
- package/compiler_rt/divtf3.zig +1 -1
- package/compiler_rt/divxf3.zig +1 -1
- package/compiler_rt/extendf.zig +5 -5
- package/compiler_rt/fabs.zig +1 -1
- package/compiler_rt/float_from_int.zig +4 -5
- package/compiler_rt/fmax.zig +1 -1
- package/compiler_rt/fmin.zig +1 -1
- package/compiler_rt/fmod.zig +2 -2
- package/compiler_rt/int_from_float.zig +1 -1
- package/compiler_rt/limb64.zig +3 -2
- package/compiler_rt/mulf3.zig +2 -2
- package/compiler_rt/rem_pio2l.zig +1 -1
- package/compiler_rt/sin.zig +1 -1
- package/compiler_rt/sincos.zig +1 -1
- package/compiler_rt/ssp.zig +2 -2
- package/compiler_rt/tan.zig +1 -1
- package/compiler_rt/truncf.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +5 -26
- package/docs/main.js +8 -8
- package/docs/wasm/Walk.zig +1 -3
- package/docs/wasm/html_render.zig +1 -2
- package/docs/wasm/markdown/Parser.zig +16 -20
- package/fuzzer.zig +5 -3
- package/include/__clang_spirv_builtins.h +12 -12
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/amo.h +131 -0
- package/include/amxavx512intrin.h +215 -1
- package/include/amxintrin.h +0 -2
- package/include/arm_acle.h +37 -27
- package/include/arm_neon.h +218 -82
- package/include/arm_sme.h +8 -8
- package/include/arm_sve.h +4162 -3782
- package/include/avx10_2_512bf16intrin.h +19 -12
- package/include/avx10_2_512convertintrin.h +1 -1
- package/include/avx10_2_512niintrin.h +31 -31
- package/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/include/avx10_2bf16intrin.h +54 -45
- package/include/avx10_2convertintrin.h +2 -2
- package/include/avx10_2copyintrin.h +1 -1
- package/include/avx10_2niintrin.h +14 -14
- package/include/avx10_2satcvtdsintrin.h +2 -2
- package/include/avx2intrin.h +275 -377
- package/include/avx512bf16intrin.h +25 -16
- package/include/avx512bitalgintrin.h +19 -30
- package/include/avx512bwintrin.h +386 -505
- package/include/avx512cdintrin.h +42 -55
- package/include/avx512dqintrin.h +132 -161
- package/include/avx512fintrin.h +1015 -1424
- package/include/avx512fp16intrin.h +112 -110
- package/include/avx512ifmaintrin.h +32 -34
- package/include/avx512ifmavlintrin.h +73 -46
- package/include/avx512vbmi2intrin.h +43 -32
- package/include/avx512vbmiintrin.h +19 -27
- package/include/avx512vbmivlintrin.h +35 -49
- package/include/avx512vlbf16intrin.h +32 -22
- package/include/avx512vlbitalgintrin.h +37 -53
- package/include/avx512vlbwintrin.h +470 -573
- package/include/avx512vlcdintrin.h +74 -102
- package/include/avx512vldqintrin.h +110 -127
- package/include/avx512vlfp16intrin.h +130 -111
- package/include/avx512vlintrin.h +945 -1299
- package/include/avx512vlvbmi2intrin.h +78 -63
- package/include/avx512vlvnniintrin.h +21 -18
- package/include/avx512vlvp2intersectintrin.h +2 -2
- package/include/avx512vnniintrin.h +10 -10
- package/include/avx512vp2intersectintrin.h +1 -2
- package/include/avx512vpopcntdqintrin.h +8 -10
- package/include/avx512vpopcntdqvlintrin.h +17 -15
- package/include/avxifmaintrin.h +16 -0
- package/include/avxintrin.h +165 -241
- package/include/avxvnniint16intrin.h +118 -99
- package/include/avxvnniint8intrin.h +56 -32
- package/include/avxvnniintrin.h +16 -8
- package/include/cpuid.h +101 -4
- package/include/emmintrin.h +168 -168
- package/include/f16cintrin.h +23 -9
- package/include/float.h +16 -155
- package/include/fma4intrin.h +98 -96
- package/include/fmaintrin.h +96 -66
- package/include/gfniintrin.h +21 -16
- package/include/hexagon_types.h +23 -20
- package/include/hvx_hexagon_protos.h +649 -860
- package/include/immintrin.h +0 -12
- package/include/intrin.h +4 -0
- package/include/lasxintrin.h +113 -0
- package/include/llvm_libc_wrappers/assert.h +3 -5
- package/include/llvm_libc_wrappers/ctype.h +3 -115
- package/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/include/llvm_libc_wrappers/stdio.h +10 -38
- package/include/llvm_libc_wrappers/stdlib.h +3 -24
- package/include/llvm_libc_wrappers/string.h +2 -70
- package/include/llvm_libc_wrappers/time.h +4 -10
- package/include/mmintrin.h +188 -257
- package/include/module.modulemap +23 -4
- package/include/movrs_avx10_2_512intrin.h +2 -2
- package/include/movrs_avx10_2intrin.h +4 -4
- package/include/pmmintrin.h +12 -24
- package/include/ptrauth.h +16 -2
- package/include/riscv_mips.h +34 -0
- package/include/riscv_nds.h +89 -0
- package/include/sifive_vector.h +58 -2
- package/include/sm4evexintrin.h +2 -2
- package/include/smmintrin.h +77 -59
- package/include/spirvintrin.h +194 -0
- package/include/stddefer.h +19 -0
- package/include/tmmintrin.h +116 -147
- package/include/vaesintrin.h +1 -2
- package/include/xmmintrin.h +44 -70
- package/include/xopintrin.h +20 -10
- package/init/build.zig +1 -3
- package/libc/darwin/SDKSettings.json +1 -1
- package/libc/darwin/libSystem.tbd +88 -87
- package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
- package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/aarch64-netbsd-none/aarch64/armreg.h +259 -22
- package/libc/include/aarch64-netbsd-none/aarch64/byte_swap.h +3 -2
- package/libc/include/aarch64-netbsd-none/aarch64/cpu.h +26 -1
- package/libc/include/aarch64-netbsd-none/aarch64/lwp_private.h +3 -0
- package/libc/include/aarch64-netbsd-none/aarch64/pmap.h +7 -33
- package/libc/include/aarch64-netbsd-none/aarch64/sljit_machdep.h +1 -1
- package/libc/include/aarch64-netbsd-none/aarch64/vmparam.h +4 -4
- package/libc/include/aarch64-netbsd-none/machine/armreg.h +259 -22
- package/libc/include/aarch64-netbsd-none/machine/byte_swap.h +3 -2
- package/libc/include/aarch64-netbsd-none/machine/cpu.h +26 -1
- package/libc/include/aarch64-netbsd-none/machine/lwp_private.h +3 -0
- package/libc/include/aarch64-netbsd-none/machine/pmap.h +7 -33
- package/libc/include/aarch64-netbsd-none/machine/sljit_machdep.h +1 -1
- package/libc/include/aarch64-netbsd-none/machine/vmparam.h +4 -4
- package/libc/include/aarch64-openbsd-none/arm64/cpu.h +7 -1
- package/libc/include/aarch64-openbsd-none/arm64/intr.h +9 -1
- package/libc/include/aarch64-openbsd-none/machine/cpu.h +7 -1
- package/libc/include/aarch64-openbsd-none/machine/intr.h +9 -1
- package/libc/include/any-darwin-any/AvailabilityInternal.h +10 -10
- package/libc/include/any-darwin-any/AvailabilityVersions.h +8 -0
- package/libc/include/any-darwin-any/mach/host_info.h +3 -1
- package/libc/include/any-darwin-any/mach/mach_voucher_types.h +2 -0
- package/libc/include/any-darwin-any/mach/vm_statistics.h +33 -2
- package/libc/include/any-darwin-any/spawn.h +3 -1
- package/libc/include/any-darwin-any/sys/_symbol_aliasing.h +12 -0
- package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
- package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
- package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
- package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
- package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
- package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
- package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
- package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
- package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
- package/libc/include/any-linux-any/linux/android/binder.h +1 -1
- package/libc/include/any-linux-any/linux/bpf.h +28 -0
- package/libc/include/any-linux-any/linux/btrfs.h +1 -0
- package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
- package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
- package/libc/include/any-linux-any/linux/dpll.h +1 -0
- package/libc/include/any-linux-any/linux/elf.h +2 -0
- package/libc/include/any-linux-any/linux/ethtool.h +21 -5
- package/libc/include/any-linux-any/linux/fs.h +1 -0
- package/libc/include/any-linux-any/linux/hyperv.h +1 -1
- package/libc/include/any-linux-any/linux/idxd.h +134 -134
- package/libc/include/any-linux-any/linux/if_alg.h +1 -1
- package/libc/include/any-linux-any/linux/if_link.h +1 -0
- package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
- package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
- package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
- package/libc/include/any-linux-any/linux/io_uring.h +33 -2
- package/libc/include/any-linux-any/linux/iommufd.h +39 -0
- package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
- package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
- package/libc/include/any-linux-any/linux/kvm.h +30 -6
- package/libc/include/any-linux-any/linux/landlock.h +22 -8
- package/libc/include/any-linux-any/linux/magic.h +1 -0
- package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
- package/libc/include/any-linux-any/linux/mount.h +11 -2
- package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
- package/libc/include/any-linux-any/linux/mshv.h +2 -0
- package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
- package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
- package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
- package/libc/include/any-linux-any/linux/nfs.h +1 -1
- package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
- package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
- package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
- package/libc/include/any-linux-any/linux/nl80211.h +104 -3
- package/libc/include/any-linux-any/linux/pci.h +7 -0
- package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
- package/libc/include/any-linux-any/linux/pcitest.h +1 -0
- package/libc/include/any-linux-any/linux/perf_event.h +24 -3
- package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
- package/libc/include/any-linux-any/linux/prctl.h +30 -0
- package/libc/include/any-linux-any/linux/rseq.h +62 -5
- package/libc/include/any-linux-any/linux/shm.h +0 -1
- package/libc/include/any-linux-any/linux/stddef.h +4 -0
- package/libc/include/any-linux-any/linux/sysctl.h +1 -2
- package/libc/include/any-linux-any/linux/taskstats.h +12 -1
- package/libc/include/any-linux-any/linux/tcp.h +23 -3
- package/libc/include/any-linux-any/linux/typelimits.h +8 -0
- package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
- package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
- package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
- package/libc/include/any-linux-any/linux/vduse.h +80 -5
- package/libc/include/any-linux-any/linux/version.h +3 -3
- package/libc/include/any-linux-any/linux/vfio.h +4 -0
- package/libc/include/any-linux-any/linux/videodev2.h +3 -0
- package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
- package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
- package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
- package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
- package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
- package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
- package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
- package/libc/include/arc-linux-any/asm/swab.h +0 -63
- package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
- package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
- package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
- package/libc/include/arm-netbsd-eabi/float.h +2 -1
- package/libc/include/arm-netbsd-eabi/machine/asm.h +48 -19
- package/libc/include/arm-netbsd-eabi/machine/byte_swap.h +121 -0
- package/libc/include/arm-netbsd-eabi/machine/cpu.h +1 -3
- package/libc/include/arm-netbsd-eabi/machine/float.h +2 -1
- package/libc/include/arm-netbsd-eabi/machine/lwp_private.h +81 -0
- package/libc/include/arm-netbsd-eabi/machine/mcontext.h +5 -51
- package/libc/include/arm-netbsd-eabi/machine/mutex.h +1 -1
- package/libc/include/arm-netbsd-eabi/machine/proc.h +2 -2
- package/libc/include/arm-netbsd-eabi/machine/profile.h +28 -96
- package/libc/include/arm-netbsd-eabi/machine/setjmp.h +7 -6
- package/libc/include/arm-netbsd-eabi/machine/sysarch.h +85 -0
- package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/generic-netbsd/altq/altq.h +2 -2
- package/libc/include/generic-netbsd/altq/altq_afmap.h +2 -1
- package/libc/include/generic-netbsd/altq/altq_classq.h +8 -6
- package/libc/include/generic-netbsd/altq/altq_jobs.h +37 -37
- package/libc/include/generic-netbsd/altq/altq_rmclass.h +8 -8
- package/libc/include/generic-netbsd/altq/altq_var.h +2 -2
- package/libc/include/generic-netbsd/arm/arm32/pmap.h +8 -32
- package/libc/include/generic-netbsd/arm/arm32/vmparam.h +5 -5
- package/libc/include/generic-netbsd/arm/asm.h +48 -19
- package/libc/include/generic-netbsd/arm/byte_swap.h +2 -2
- package/libc/include/generic-netbsd/arm/cpu.h +1 -3
- package/libc/include/generic-netbsd/arm/cputypes.h +12 -1
- package/libc/include/generic-netbsd/arm/float.h +2 -1
- package/libc/include/generic-netbsd/arm/lwp_private.h +81 -0
- package/libc/include/generic-netbsd/arm/mcontext.h +5 -51
- package/libc/include/generic-netbsd/arm/mutex.h +1 -1
- package/libc/include/generic-netbsd/arm/proc.h +2 -2
- package/libc/include/generic-netbsd/arm/profile.h +28 -96
- package/libc/include/generic-netbsd/arm/setjmp.h +7 -6
- package/libc/include/generic-netbsd/arpa/nameser.h +3 -3
- package/libc/include/generic-netbsd/arpa/nameser_compat.h +3 -3
- package/libc/include/generic-netbsd/assert.h +12 -22
- package/libc/include/generic-netbsd/bitstring.h +5 -5
- package/libc/include/generic-netbsd/cdbw.h +2 -2
- package/libc/include/generic-netbsd/crypto/cryptodev.h +99 -92
- package/libc/include/generic-netbsd/dev/i2c/emcfaninfo.h +234 -0
- package/libc/include/generic-netbsd/dev/i2c/emcfanreg.h +127 -0
- package/libc/include/generic-netbsd/dev/i2o/i2o.h +3 -366
- package/libc/include/generic-netbsd/dev/ic/hd44780var.h +3 -1
- package/libc/include/generic-netbsd/dev/ic/scmdreg.h +2 -2
- package/libc/include/generic-netbsd/dev/ic/stireg.h +777 -0
- package/libc/include/generic-netbsd/dev/ic/summitreg.h +214 -0
- package/libc/include/generic-netbsd/dev/iscsi/iscsi.h +1 -1
- package/libc/include/generic-netbsd/dev/pci/amrreg.h +2 -2
- package/libc/include/generic-netbsd/dev/pci/mlyreg.h +2 -2
- package/libc/include/generic-netbsd/dev/pci/pcidevs.h +177 -22
- package/libc/include/generic-netbsd/dev/pci/pcidevs_data.h +14971 -14588
- package/libc/include/generic-netbsd/dev/pci/pcireg.h +14 -14
- package/libc/include/generic-netbsd/dev/pckbc/pckbdreg.h +2 -1
- package/libc/include/generic-netbsd/dev/pcmcia/if_rayreg.h +2 -2
- package/libc/include/generic-netbsd/dev/raidframe/raidframeio.h +1 -1
- package/libc/include/generic-netbsd/dev/scsipi/scsi_disk.h +42 -7
- package/libc/include/generic-netbsd/dev/scsipi/scsi_spc.h +2 -2
- package/libc/include/generic-netbsd/dev/scsipi/scsipi_all.h +83 -2
- package/libc/include/generic-netbsd/dev/scsipi/scsipiconf.h +3 -1
- package/libc/include/generic-netbsd/dev/tc/sfbreg.h +3 -3
- package/libc/include/generic-netbsd/dev/tc/sticio.h +2 -2
- package/libc/include/generic-netbsd/dev/usb/umcpmio_hid_reports.h +499 -0
- package/libc/include/generic-netbsd/dev/usb/umcpmio_io.h +45 -0
- package/libc/include/generic-netbsd/dev/usb/usb.h +44 -6
- package/libc/include/generic-netbsd/dev/vndvar.h +2 -2
- package/libc/include/generic-netbsd/dev/wscons/wsconsio.h +19 -1
- package/libc/include/generic-netbsd/dev/wscons/wsksymdef.h +2 -2
- package/libc/include/generic-netbsd/dirent.h +1 -1
- package/libc/include/generic-netbsd/dlfcn.h +4 -2
- package/libc/include/generic-netbsd/elf.h +32 -20
- package/libc/include/generic-netbsd/elfdefinitions.h +1 -1
- package/libc/include/generic-netbsd/evbarm/intr.h +1 -1
- package/libc/include/generic-netbsd/evbmips/lwp_private.h +3 -0
- package/libc/include/generic-netbsd/execinfo.h +4 -2
- package/libc/include/generic-netbsd/fcntl.h +26 -2
- package/libc/include/generic-netbsd/float.h +58 -2
- package/libc/include/generic-netbsd/fmtmsg.h +2 -2
- package/libc/include/generic-netbsd/fs/hfs/libhfs.h +1 -1
- package/libc/include/generic-netbsd/fs/nilfs/nilfs_fs.h +2 -2
- package/libc/include/generic-netbsd/gelf.h +2 -2
- package/libc/include/generic-netbsd/i386/asm.h +12 -4
- package/libc/include/generic-netbsd/i386/byte_swap.h +2 -2
- package/libc/include/generic-netbsd/i386/cpu.h +15 -4
- package/libc/include/generic-netbsd/i386/elf_machdep.h +2 -1
- package/libc/include/generic-netbsd/i386/lwp_private.h +3 -0
- package/libc/include/generic-netbsd/i386/mcontext.h +6 -24
- package/libc/include/generic-netbsd/i386/param.h +9 -1
- package/libc/include/generic-netbsd/i386/pcb.h +6 -2
- package/libc/include/generic-netbsd/i386/ptrace.h +2 -2
- package/libc/include/generic-netbsd/i386/types.h +2 -1
- package/libc/include/generic-netbsd/i386/wchar_limits.h +1 -1
- package/libc/include/generic-netbsd/isofs/cd9660/cd9660_extern.h +6 -1
- package/libc/include/generic-netbsd/isofs/cd9660/cd9660_mount.h +7 -1
- package/libc/include/generic-netbsd/langinfo.h +2 -1
- package/libc/include/generic-netbsd/lauxlib.h +1 -1
- package/libc/include/generic-netbsd/libelf.h +6 -15
- package/libc/include/generic-netbsd/limits.h +1 -1
- package/libc/include/generic-netbsd/lua.h +1 -1
- package/libc/include/generic-netbsd/luaconf.h +1 -1
- package/libc/include/generic-netbsd/lualib.h +1 -1
- package/libc/include/generic-netbsd/lwp.h +1 -1
- package/libc/include/generic-netbsd/machine/ansi.h +2 -2
- package/libc/include/generic-netbsd/machine/aout_machdep.h +39 -2
- package/libc/include/generic-netbsd/machine/arm32/pmap.h +8 -32
- package/libc/include/generic-netbsd/machine/arm32/vmparam.h +5 -5
- package/libc/include/generic-netbsd/machine/asm.h +271 -2
- package/libc/include/generic-netbsd/machine/bswap.h +9 -1
- package/libc/include/generic-netbsd/machine/byte_swap.h +42 -64
- package/libc/include/generic-netbsd/machine/cdefs.h +7 -2
- package/libc/include/generic-netbsd/machine/cpu.h +207 -30
- package/libc/include/generic-netbsd/machine/cputypes.h +12 -1
- package/libc/include/generic-netbsd/machine/disklabel.h +41 -42
- package/libc/include/generic-netbsd/machine/elf_machdep.h +143 -2
- package/libc/include/generic-netbsd/machine/endian.h +1 -1
- package/libc/include/generic-netbsd/machine/fenv.h +35 -2
- package/libc/include/generic-netbsd/machine/float.h +58 -2
- package/libc/include/generic-netbsd/machine/frame.h +129 -2
- package/libc/include/generic-netbsd/machine/ieee.h +3 -2
- package/libc/include/generic-netbsd/machine/ieeefp.h +43 -2
- package/libc/include/generic-netbsd/machine/int_const.h +32 -2
- package/libc/include/generic-netbsd/machine/int_fmtio.h +380 -2
- package/libc/include/generic-netbsd/machine/int_limits.h +2 -2
- package/libc/include/generic-netbsd/machine/int_mwgwtypes.h +2 -2
- package/libc/include/generic-netbsd/machine/int_types.h +2 -2
- package/libc/include/generic-netbsd/machine/kcore.h +39 -2
- package/libc/include/generic-netbsd/machine/limits.h +2 -2
- package/libc/include/generic-netbsd/machine/lock.h +2 -2
- package/libc/include/generic-netbsd/machine/lwp_private.h +83 -0
- package/libc/include/generic-netbsd/machine/math.h +3 -2
- package/libc/include/generic-netbsd/machine/mcontext.h +149 -2
- package/libc/include/generic-netbsd/machine/mutex.h +127 -2
- package/libc/include/generic-netbsd/machine/param.h +90 -23
- package/libc/include/generic-netbsd/machine/pcb.h +54 -2
- package/libc/include/generic-netbsd/machine/pmap.h +262 -2
- package/libc/include/generic-netbsd/machine/proc.h +75 -2
- package/libc/include/generic-netbsd/machine/profile.h +116 -2
- package/libc/include/generic-netbsd/machine/psl.h +2 -2
- package/libc/include/generic-netbsd/machine/pte.h +346 -2
- package/libc/include/generic-netbsd/machine/ptrace.h +62 -2
- package/libc/include/generic-netbsd/machine/reg.h +124 -2
- package/libc/include/generic-netbsd/machine/reloc.h +2 -2
- package/libc/include/generic-netbsd/machine/setjmp.h +69 -2
- package/libc/include/generic-netbsd/machine/signal.h +39 -2
- package/libc/include/generic-netbsd/machine/sljit_machdep.h +1 -1
- package/libc/include/generic-netbsd/machine/sysarch.h +2 -84
- package/libc/include/generic-netbsd/machine/sysreg.h +354 -0
- package/libc/include/generic-netbsd/machine/trap.h +2 -2
- package/libc/include/generic-netbsd/machine/types.h +118 -6
- package/libc/include/generic-netbsd/machine/vmparam.h +235 -2
- package/libc/include/generic-netbsd/machine/wchar_limits.h +2 -2
- package/libc/include/generic-netbsd/math.h +19 -6
- package/libc/include/generic-netbsd/md2.h +6 -3
- package/libc/include/generic-netbsd/mips/asm.h +69 -17
- package/libc/include/generic-netbsd/mips/bswap.h +3 -1
- package/libc/include/generic-netbsd/mips/cpu.h +7 -7
- package/libc/include/generic-netbsd/mips/elf_machdep.h +2 -1
- package/libc/include/generic-netbsd/mips/fenv.h +2 -1
- package/libc/include/generic-netbsd/mips/float.h +3 -2
- package/libc/include/generic-netbsd/mips/frame.h +3 -2
- package/libc/include/generic-netbsd/mips/limits.h +4 -13
- package/libc/include/generic-netbsd/mips/lwp_private.h +87 -0
- package/libc/include/generic-netbsd/mips/mcontext.h +2 -53
- package/libc/include/generic-netbsd/mips/mips3_pte.h +2 -2
- package/libc/include/generic-netbsd/mips/mips_param.h +16 -2
- package/libc/include/generic-netbsd/mips/mutex.h +1 -1
- package/libc/include/generic-netbsd/mips/types.h +1 -1
- package/libc/include/generic-netbsd/mips/vmparam.h +1 -1
- package/libc/include/generic-netbsd/miscfs/kernfs/kernfs.h +2 -2
- package/libc/include/generic-netbsd/miscfs/procfs/procfs.h +33 -2
- package/libc/include/generic-netbsd/miscfs/specfs/specdev.h +1 -2
- package/libc/include/generic-netbsd/monetary.h +2 -1
- package/libc/include/generic-netbsd/net/agr/if_agrioctl.h +2 -2
- package/libc/include/generic-netbsd/net/bpf.h +11 -4
- package/libc/include/generic-netbsd/net/bpfdesc.h +1 -1
- package/libc/include/generic-netbsd/net/dlt.h +222 -48
- package/libc/include/generic-netbsd/net/if.h +20 -5
- package/libc/include/generic-netbsd/net/if_bridgevar.h +2 -3
- package/libc/include/generic-netbsd/net/if_ether.h +4 -3
- package/libc/include/generic-netbsd/net/if_lagg.h +2 -2
- package/libc/include/generic-netbsd/net/if_media.h +2 -2
- package/libc/include/generic-netbsd/net/if_ppp.h +1 -3
- package/libc/include/generic-netbsd/net/if_stats.h +19 -5
- package/libc/include/generic-netbsd/net/net_stats.h +13 -6
- package/libc/include/generic-netbsd/net/npf.h +33 -5
- package/libc/include/generic-netbsd/net/pfkeyv2.h +1 -1
- package/libc/include/generic-netbsd/net/route.h +4 -4
- package/libc/include/generic-netbsd/net80211/ieee80211_node.h +3 -2
- package/libc/include/generic-netbsd/net80211/ieee80211_var.h +2 -2
- package/libc/include/generic-netbsd/netbt/hci.h +3 -3
- package/libc/include/generic-netbsd/netdb.h +2 -2
- package/libc/include/generic-netbsd/netinet/icmp6.h +6 -2
- package/libc/include/generic-netbsd/netinet/in.h +17 -17
- package/libc/include/generic-netbsd/netinet/in_var.h +5 -9
- package/libc/include/generic-netbsd/netinet/ip_mroute.h +24 -28
- package/libc/include/generic-netbsd/netinet/ip_var.h +2 -2
- package/libc/include/generic-netbsd/netinet/sctp.h +4 -4
- package/libc/include/generic-netbsd/netinet/tcp_var.h +2 -2
- package/libc/include/generic-netbsd/netinet/tcp_vtw.h +2 -2
- package/libc/include/generic-netbsd/netinet6/in6_var.h +7 -33
- package/libc/include/generic-netbsd/netinet6/ip6_var.h +2 -2
- package/libc/include/generic-netbsd/nfs/krpc.h +9 -4
- package/libc/include/generic-netbsd/nfs/nfs.h +5 -3
- package/libc/include/generic-netbsd/nfs/nfsdiskless.h +37 -20
- package/libc/include/generic-netbsd/nfs/nfsm_subs.h +4 -7
- package/libc/include/generic-netbsd/nfs/nfsmount.h +3 -4
- package/libc/include/generic-netbsd/nfs/nfsnode.h +9 -6
- package/libc/include/generic-netbsd/nfs/nfsproto.h +5 -2
- package/libc/include/generic-netbsd/nfs/nfsrtt.h +8 -4
- package/libc/include/generic-netbsd/nfs/nfsrvcache.h +9 -3
- package/libc/include/generic-netbsd/nfs/rpcv2.h +5 -3
- package/libc/include/generic-netbsd/nfs/xdr_subs.h +6 -5
- package/libc/include/generic-netbsd/nl_types.h +3 -1
- package/libc/include/generic-netbsd/ntfs/ntfs_inode.h +2 -2
- package/libc/include/generic-netbsd/poll.h +8 -2
- package/libc/include/generic-netbsd/prop/prop_object.h +48 -3
- package/libc/include/generic-netbsd/protocols/talkd.h +2 -2
- package/libc/include/generic-netbsd/pthread.h +51 -12
- package/libc/include/generic-netbsd/regex.h +2 -1
- package/libc/include/generic-netbsd/riscv/ansi.h +3 -0
- package/libc/include/generic-netbsd/riscv/aout_machdep.h +40 -0
- package/libc/include/generic-netbsd/riscv/asm.h +272 -0
- package/libc/include/generic-netbsd/riscv/bswap.h +11 -0
- package/libc/include/generic-netbsd/riscv/byte_swap.h +99 -0
- package/libc/include/generic-netbsd/riscv/cdefs.h +8 -0
- package/libc/include/generic-netbsd/riscv/cpu.h +242 -0
- package/libc/include/generic-netbsd/riscv/disklabel.h +68 -0
- package/libc/include/generic-netbsd/riscv/elf_machdep.h +144 -0
- package/libc/include/generic-netbsd/riscv/endian.h +3 -0
- package/libc/include/generic-netbsd/riscv/endian_machdep.h +3 -0
- package/libc/include/generic-netbsd/riscv/fenv.h +36 -0
- package/libc/include/generic-netbsd/riscv/float.h +59 -0
- package/libc/include/generic-netbsd/riscv/ieee.h +4 -0
- package/libc/include/generic-netbsd/riscv/ieeefp.h +44 -0
- package/libc/include/generic-netbsd/riscv/int_const.h +33 -0
- package/libc/include/generic-netbsd/riscv/int_fmtio.h +381 -0
- package/libc/include/generic-netbsd/riscv/int_limits.h +3 -0
- package/libc/include/generic-netbsd/riscv/int_mwgwtypes.h +3 -0
- package/libc/include/generic-netbsd/riscv/int_types.h +3 -0
- package/libc/include/generic-netbsd/riscv/kcore.h +40 -0
- package/libc/include/generic-netbsd/riscv/limits.h +3 -0
- package/libc/include/generic-netbsd/riscv/lock.h +3 -0
- package/libc/include/generic-netbsd/riscv/lwp_private.h +83 -0
- package/libc/include/generic-netbsd/riscv/math.h +4 -0
- package/libc/include/generic-netbsd/riscv/mcontext.h +150 -0
- package/libc/include/generic-netbsd/riscv/mutex.h +128 -0
- package/libc/include/generic-netbsd/riscv/param.h +110 -0
- package/libc/include/generic-netbsd/riscv/pcb.h +55 -0
- package/libc/include/generic-netbsd/riscv/pmap.h +263 -0
- package/libc/include/generic-netbsd/riscv/proc.h +76 -0
- package/libc/include/generic-netbsd/riscv/profile.h +117 -0
- package/libc/include/generic-netbsd/riscv/pte.h +347 -0
- package/libc/include/generic-netbsd/riscv/ptrace.h +63 -0
- package/libc/include/generic-netbsd/riscv/reg.h +125 -0
- package/libc/include/generic-netbsd/riscv/rwlock.h +1 -0
- package/libc/include/generic-netbsd/riscv/setjmp.h +70 -0
- package/libc/include/generic-netbsd/riscv/signal.h +40 -0
- package/libc/include/generic-netbsd/riscv/sysarch.h +3 -0
- package/libc/include/generic-netbsd/riscv/sysreg.h +354 -0
- package/libc/include/generic-netbsd/riscv/types.h +123 -0
- package/libc/include/generic-netbsd/riscv/vmparam.h +236 -0
- package/libc/include/generic-netbsd/riscv/wchar_limits.h +13 -0
- package/libc/include/generic-netbsd/rmd160.h +3 -3
- package/libc/include/generic-netbsd/rpc/xdr.h +3 -3
- package/libc/include/generic-netbsd/rpcsvc/yp_prot.h +3 -2
- package/libc/include/generic-netbsd/rump/rump_namei.h +2 -2
- package/libc/include/generic-netbsd/rump/rump_syscalls.h +4 -4
- package/libc/include/generic-netbsd/rump/rumpuser.h +6 -1
- package/libc/include/generic-netbsd/rump/rumpvnode_if.h +2 -2
- package/libc/include/generic-netbsd/sha1.h +3 -3
- package/libc/include/generic-netbsd/sha2.h +8 -1
- package/libc/include/generic-netbsd/signal.h +4 -4
- package/libc/include/generic-netbsd/sparc/asm.h +10 -1
- package/libc/include/generic-netbsd/sparc/bswap.h +9 -1
- package/libc/include/generic-netbsd/sparc/cgtworeg.h +2 -2
- package/libc/include/generic-netbsd/sparc/cpu.h +1 -1
- package/libc/include/generic-netbsd/sparc/float.h +3 -1
- package/libc/include/generic-netbsd/sparc/limits.h +4 -6
- package/libc/include/generic-netbsd/sparc/lwp_private.h +51 -0
- package/libc/include/generic-netbsd/sparc/mcontext.h +4 -22
- package/libc/include/generic-netbsd/sparc/mutex.h +1 -1
- package/libc/include/generic-netbsd/sparc/param.h +4 -2
- package/libc/include/generic-netbsd/sparc/pmap.h +2 -2
- package/libc/include/generic-netbsd/sparc/psl.h +6 -3
- package/libc/include/generic-netbsd/sparc/types.h +2 -2
- package/libc/include/generic-netbsd/sparc64/bswap.h +9 -1
- package/libc/include/generic-netbsd/sparc64/cpu.h +2 -2
- package/libc/include/generic-netbsd/sparc64/ctlreg.h +8 -7
- package/libc/include/generic-netbsd/sparc64/intr.h +1 -1
- package/libc/include/generic-netbsd/sparc64/lwp_private.h +3 -0
- package/libc/include/generic-netbsd/sparc64/mcontext.h +4 -4
- package/libc/include/generic-netbsd/sparc64/mutex.h +1 -1
- package/libc/include/generic-netbsd/sparc64/param.h +8 -2
- package/libc/include/generic-netbsd/sparc64/psl.h +7 -2
- package/libc/include/generic-netbsd/sparc64/pte.h +2 -2
- package/libc/include/generic-netbsd/sparc64/vmparam.h +1 -1
- package/libc/include/generic-netbsd/ssp/ssp.h +16 -6
- package/libc/include/generic-netbsd/stdalign.h +3 -3
- package/libc/include/generic-netbsd/stdarg.h +2 -2
- package/libc/include/generic-netbsd/stddef.h +90 -12
- package/libc/include/generic-netbsd/stdlib.h +11 -2
- package/libc/include/generic-netbsd/stdnoreturn.h +2 -2
- package/libc/include/generic-netbsd/string.h +66 -39
- package/libc/include/generic-netbsd/strings.h +17 -3
- package/libc/include/generic-netbsd/sys/atomic.h +10 -5
- package/libc/include/generic-netbsd/sys/bitops.h +2 -2
- package/libc/include/generic-netbsd/sys/bootblock.h +13 -2
- package/libc/include/generic-netbsd/sys/bswap.h +46 -20
- package/libc/include/generic-netbsd/sys/buf.h +3 -3
- package/libc/include/generic-netbsd/sys/cdefs.h +44 -6
- package/libc/include/generic-netbsd/sys/cdefs_aout.h +8 -1
- package/libc/include/generic-netbsd/sys/cdefs_elf.h +9 -2
- package/libc/include/generic-netbsd/sys/chio.h +2 -2
- package/libc/include/generic-netbsd/sys/clock.h +5 -1
- package/libc/include/generic-netbsd/sys/common_limits.h +3 -1
- package/libc/include/generic-netbsd/sys/condvar.h +1 -1
- package/libc/include/generic-netbsd/sys/conf.h +4 -3
- package/libc/include/generic-netbsd/sys/container_of.h +75 -0
- package/libc/include/generic-netbsd/sys/device.h +20 -13
- package/libc/include/generic-netbsd/sys/disk.h +8 -1
- package/libc/include/generic-netbsd/sys/disklabel.h +2 -2
- package/libc/include/generic-netbsd/sys/disklabel_gpt.h +7 -1
- package/libc/include/generic-netbsd/sys/efiio.h +1 -1
- package/libc/include/generic-netbsd/sys/elfdefinitions.h +2368 -1591
- package/libc/include/generic-netbsd/sys/endian.h +17 -17
- package/libc/include/generic-netbsd/sys/evcnt.h +15 -2
- package/libc/include/generic-netbsd/sys/event.h +3 -2
- package/libc/include/generic-netbsd/sys/exec.h +2 -2
- package/libc/include/generic-netbsd/sys/exec_elf.h +32 -20
- package/libc/include/generic-netbsd/sys/fcntl.h +26 -2
- package/libc/include/generic-netbsd/sys/fd_set.h +3 -3
- package/libc/include/generic-netbsd/sys/featuretest.h +24 -6
- package/libc/include/generic-netbsd/sys/file.h +18 -6
- package/libc/include/generic-netbsd/sys/filedesc.h +8 -4
- package/libc/include/generic-netbsd/sys/futex.h +11 -11
- package/libc/include/generic-netbsd/sys/ieee754.h +2 -2
- package/libc/include/generic-netbsd/sys/ipc.h +2 -2
- package/libc/include/generic-netbsd/sys/ipmi.h +4 -2
- package/libc/include/generic-netbsd/sys/ksem.h +1 -1
- package/libc/include/generic-netbsd/sys/ktrace.h +6 -4
- package/libc/include/generic-netbsd/sys/lock.h +2 -2
- package/libc/include/generic-netbsd/sys/lua.h +1 -1
- package/libc/include/generic-netbsd/sys/lwp.h +25 -92
- package/libc/include/generic-netbsd/sys/mbuf.h +15 -13
- package/libc/include/generic-netbsd/sys/mman.h +11 -3
- package/libc/include/generic-netbsd/sys/mount.h +1 -2
- package/libc/include/generic-netbsd/sys/msg.h +3 -3
- package/libc/include/generic-netbsd/sys/mutex.h +1 -3
- package/libc/include/generic-netbsd/sys/namei.h +32 -17
- package/libc/include/generic-netbsd/sys/param.h +11 -8
- package/libc/include/generic-netbsd/sys/pipe.h +10 -11
- package/libc/include/generic-netbsd/sys/poll.h +8 -2
- package/libc/include/generic-netbsd/sys/proc.h +15 -15
- package/libc/include/generic-netbsd/sys/ptrace.h +24 -7
- package/libc/include/generic-netbsd/sys/ptree.h +2 -1
- package/libc/include/generic-netbsd/sys/queue.h +37 -37
- package/libc/include/generic-netbsd/sys/rbtree.h +23 -9
- package/libc/include/generic-netbsd/sys/resourcevar.h +2 -2
- package/libc/include/generic-netbsd/sys/rmd160.h +3 -3
- package/libc/include/generic-netbsd/sys/rndio.h +1 -1
- package/libc/include/generic-netbsd/sys/rwlock.h +1 -2
- package/libc/include/generic-netbsd/sys/sched.h +1 -1
- package/libc/include/generic-netbsd/sys/sdt.h +181 -111
- package/libc/include/generic-netbsd/sys/sem.h +7 -2
- package/libc/include/generic-netbsd/sys/sha1.h +3 -3
- package/libc/include/generic-netbsd/sys/sha2.h +8 -1
- package/libc/include/generic-netbsd/sys/shm.h +2 -2
- package/libc/include/generic-netbsd/sys/siginfo.h +5 -5
- package/libc/include/generic-netbsd/sys/signal.h +1 -1
- package/libc/include/generic-netbsd/sys/sigtypes.h +4 -4
- package/libc/include/generic-netbsd/sys/sleepq.h +14 -27
- package/libc/include/generic-netbsd/sys/socket.h +3 -1
- package/libc/include/generic-netbsd/sys/socketvar.h +4 -4
- package/libc/include/generic-netbsd/sys/stat.h +5 -5
- package/libc/include/generic-netbsd/sys/stdalign.h +55 -0
- package/libc/include/generic-netbsd/sys/stdarg.h +2 -2
- package/libc/include/generic-netbsd/sys/stddef.h +156 -0
- package/libc/include/generic-netbsd/sys/swap.h +2 -2
- package/libc/include/generic-netbsd/sys/syncobj.h +9 -6
- package/libc/include/generic-netbsd/sys/syscall.h +29 -8
- package/libc/include/generic-netbsd/sys/syscallargs.h +89 -12
- package/libc/include/generic-netbsd/sys/sysctl.h +94 -86
- package/libc/include/generic-netbsd/sys/syslimits.h +8 -1
- package/libc/include/generic-netbsd/sys/syslog.h +6 -7
- package/libc/include/generic-netbsd/sys/time.h +10 -8
- package/libc/include/generic-netbsd/sys/tree.h +13 -13
- package/libc/include/generic-netbsd/sys/tty.h +2 -2
- package/libc/include/generic-netbsd/sys/ttycom.h +7 -1
- package/libc/include/generic-netbsd/sys/types.h +1 -1
- package/libc/include/generic-netbsd/sys/ucontext.h +46 -49
- package/libc/include/generic-netbsd/sys/un.h +12 -4
- package/libc/include/generic-netbsd/sys/unistd.h +103 -102
- package/libc/include/generic-netbsd/sys/unpcb.h +2 -2
- package/libc/include/generic-netbsd/sys/vmmeter.h +1 -39
- package/libc/include/generic-netbsd/sys/vnode_if.h +2 -2
- package/libc/include/generic-netbsd/sys/vnode_impl.h +6 -3
- package/libc/include/generic-netbsd/sys/wapbl_replay.h +2 -2
- package/libc/include/generic-netbsd/sys/wchan.h +37 -0
- package/libc/include/generic-netbsd/syslog.h +6 -7
- package/libc/include/generic-netbsd/time.h +44 -8
- package/libc/include/generic-netbsd/tzfile.h +11 -6
- package/libc/include/generic-netbsd/uchar.h +1 -1
- package/libc/include/generic-netbsd/ucontext.h +2 -1
- package/libc/include/generic-netbsd/ufs/ext2fs/ext2fs.h +31 -16
- package/libc/include/generic-netbsd/ufs/ext2fs/ext2fs_dir.h +1 -1
- package/libc/include/generic-netbsd/ufs/ext2fs/ext2fs_extents.h +5 -5
- package/libc/include/generic-netbsd/ufs/ext2fs/ext2fs_extern.h +4 -4
- package/libc/include/generic-netbsd/ufs/ffs/ffs_extern.h +1 -1
- package/libc/include/generic-netbsd/ufs/ffs/fs.h +3 -3
- package/libc/include/generic-netbsd/ufs/ufs/quota2.h +2 -2
- package/libc/include/generic-netbsd/unistd.h +11 -5
- package/libc/include/generic-netbsd/unwind.h +1 -1
- package/libc/include/generic-netbsd/util.h +15 -1
- package/libc/include/generic-netbsd/uvm/uvm.h +1 -5
- package/libc/include/generic-netbsd/uvm/uvm_extern.h +3 -4
- package/libc/include/generic-netbsd/uvm/uvm_object.h +2 -2
- package/libc/include/generic-netbsd/uvm/uvm_param.h +1 -1
- package/libc/include/generic-netbsd/uvm/uvm_swap.h +14 -3
- package/libc/include/generic-netbsd/wchar.h +7 -2
- package/libc/include/generic-netbsd/x86/bootinfo.h +4 -1
- package/libc/include/generic-netbsd/x86/cpu.h +18 -1
- package/libc/include/generic-netbsd/x86/cpu_extended_state.h +3 -1
- package/libc/include/generic-netbsd/x86/cpuvar.h +4 -1
- package/libc/include/generic-netbsd/x86/float.h +24 -1
- package/libc/include/generic-netbsd/x86/ieee.h +11 -7
- package/libc/include/generic-netbsd/x86/lwp_private.h +56 -0
- package/libc/include/generic-netbsd/x86/mutex.h +1 -1
- package/libc/include/generic-netbsd/x86/specialreg.h +111 -23
- package/libc/include/generic-openbsd/db.h +1 -7
- package/libc/include/generic-openbsd/ddb/db_interface.h +2 -1
- package/libc/include/generic-openbsd/fnmatch.h +6 -2
- package/libc/include/generic-openbsd/login_cap.h +3 -1
- package/libc/include/generic-openbsd/miscfs/fuse/fusefs_node.h +2 -1
- package/libc/include/generic-openbsd/net/bpf.h +3 -1
- package/libc/include/generic-openbsd/net/hfsc.h +4 -4
- package/libc/include/generic-openbsd/net/if.h +5 -1
- package/libc/include/generic-openbsd/net/if_bridge.h +48 -1
- package/libc/include/generic-openbsd/net/if_etherbridge.h +20 -7
- package/libc/include/generic-openbsd/net/if_media.h +26 -1
- package/libc/include/generic-openbsd/net/if_pflow.h +71 -20
- package/libc/include/generic-openbsd/net/if_pfsync.h +2 -2
- package/libc/include/generic-openbsd/net/if_sppp.h +2 -1
- package/libc/include/generic-openbsd/net/if_trunk.h +3 -2
- package/libc/include/generic-openbsd/net/if_types.h +2 -2
- package/libc/include/generic-openbsd/net/if_var.h +34 -12
- package/libc/include/generic-openbsd/net/netisr.h +1 -3
- package/libc/include/generic-openbsd/net/pfvar.h +154 -1
- package/libc/include/generic-openbsd/net/pfvar_priv.h +256 -1
- package/libc/include/generic-openbsd/net80211/ieee80211.h +76 -4
- package/libc/include/generic-openbsd/net80211/ieee80211_ioctl.h +3 -2
- package/libc/include/generic-openbsd/net80211/ieee80211_node.h +48 -2
- package/libc/include/generic-openbsd/net80211/ieee80211_proto.h +4 -1
- package/libc/include/generic-openbsd/net80211/ieee80211_var.h +18 -2
- package/libc/include/generic-openbsd/netinet/if_ether.h +12 -11
- package/libc/include/generic-openbsd/netinet/igmp_var.h +17 -3
- package/libc/include/generic-openbsd/netinet/in_pcb.h +2 -1
- package/libc/include/generic-openbsd/netinet/in_var.h +17 -59
- package/libc/include/generic-openbsd/netinet/ip.h +3 -2
- package/libc/include/generic-openbsd/netinet/tcp_timer.h +1 -2
- package/libc/include/generic-openbsd/netinet6/in6_var.h +15 -29
- package/libc/include/generic-openbsd/netinet6/ip6_var.h +1 -2
- package/libc/include/generic-openbsd/netinet6/mld6_var.h +17 -4
- package/libc/include/generic-openbsd/netinet6/nd6.h +2 -2
- package/libc/include/generic-openbsd/pthread.h +2 -2
- package/libc/include/generic-openbsd/signal.h +2 -2
- package/libc/include/generic-openbsd/sndio.h +6 -12
- package/libc/include/generic-openbsd/strings.h +5 -1
- package/libc/include/generic-openbsd/sys/device.h +4 -3
- package/libc/include/generic-openbsd/sys/disklabel.h +17 -5
- package/libc/include/generic-openbsd/sys/dkio.h +3 -5
- package/libc/include/generic-openbsd/sys/filedesc.h +3 -2
- package/libc/include/generic-openbsd/sys/mbuf.h +1 -1
- package/libc/include/generic-openbsd/sys/mman.h +7 -2
- package/libc/include/generic-openbsd/sys/mutex.h +10 -7
- package/libc/include/generic-openbsd/sys/namei.h +8 -7
- package/libc/include/generic-openbsd/sys/param.h +1 -1
- package/libc/include/generic-openbsd/sys/pledge.h +1 -3
- package/libc/include/generic-openbsd/sys/protosw.h +8 -1
- package/libc/include/generic-openbsd/sys/ptrace.h +4 -1
- package/libc/include/generic-openbsd/sys/sched.h +8 -1
- package/libc/include/generic-openbsd/sys/signal.h +4 -2
- package/libc/include/generic-openbsd/sys/socketvar.h +2 -1
- package/libc/include/generic-openbsd/sys/sockio.h +11 -1
- package/libc/include/generic-openbsd/sys/syscall.h +5 -3
- package/libc/include/generic-openbsd/sys/syscallargs.h +9 -2
- package/libc/include/generic-openbsd/sys/sysctl.h +7 -4
- package/libc/include/generic-openbsd/sys/types.h +6 -2
- package/libc/include/generic-openbsd/sys/videoio.h +143 -68
- package/libc/include/generic-openbsd/sys/xcall.h +2 -2
- package/libc/include/generic-openbsd/time.h +2 -2
- package/libc/include/generic-openbsd/unistd.h +2 -2
- package/libc/include/generic-openbsd/uvm/uvm_anon.h +2 -3
- package/libc/include/generic-openbsd/uvm/uvm_extern.h +1 -19
- package/libc/include/generic-openbsd/uvm/uvm_pager.h +3 -4
- package/libc/include/generic-openbsd/uvm/uvm_pmemrange.h +1 -2
- package/libc/include/generic-openbsd/uvm/uvm_swap.h +4 -1
- package/libc/include/generic-openbsd/uvm/uvm_vnode.h +3 -4
- package/libc/include/generic-openbsd/uvm/uvmexp.h +41 -35
- package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
- package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/m68k-netbsd-none/m68k/asm.h +11 -2
- package/libc/include/m68k-netbsd-none/m68k/bus_dma.h +2 -2
- package/libc/include/m68k-netbsd-none/m68k/byte_swap.h +2 -2
- package/libc/include/m68k-netbsd-none/m68k/cacheops_30.h +2 -2
- package/libc/include/m68k-netbsd-none/m68k/cacheops_40.h +3 -1
- package/libc/include/m68k-netbsd-none/m68k/cacheops_60.h +5 -3
- package/libc/include/m68k-netbsd-none/m68k/cpu.h +86 -59
- package/libc/include/m68k-netbsd-none/m68k/cpuframe.h +5 -5
- package/libc/include/m68k-netbsd-none/m68k/fenv.h +6 -4
- package/libc/include/m68k-netbsd-none/m68k/float.h +26 -1
- package/libc/include/m68k-netbsd-none/m68k/frame.h +31 -19
- package/libc/include/m68k-netbsd-none/m68k/ieee.h +13 -8
- package/libc/include/m68k-netbsd-none/m68k/ieeefp.h +3 -3
- package/libc/include/m68k-netbsd-none/m68k/int_limits.h +2 -2
- package/libc/include/m68k-netbsd-none/m68k/intr.h +211 -0
- package/libc/include/m68k-netbsd-none/m68k/kcore.h +31 -31
- package/libc/include/m68k-netbsd-none/m68k/lwp_private.h +64 -0
- package/libc/include/m68k-netbsd-none/m68k/m68k.h +3 -7
- package/libc/include/m68k-netbsd-none/m68k/mcontext.h +5 -36
- package/libc/include/m68k-netbsd-none/m68k/mmu_30.h +105 -0
- package/libc/include/m68k-netbsd-none/m68k/mmu_40.h +232 -0
- package/libc/include/m68k-netbsd-none/m68k/mmu_51.h +273 -0
- package/libc/include/m68k-netbsd-none/m68k/mutex.h +1 -1
- package/libc/include/m68k-netbsd-none/m68k/pcb.h +2 -2
- package/libc/include/m68k-netbsd-none/m68k/pmap_motorola.h +32 -23
- package/libc/include/m68k-netbsd-none/m68k/psl.h +26 -7
- package/libc/include/m68k-netbsd-none/m68k/pte_motorola.h +37 -26
- package/libc/include/m68k-netbsd-none/m68k/trap.h +7 -7
- package/libc/include/m68k-netbsd-none/mac68k/cpu.h +1 -57
- package/libc/include/m68k-netbsd-none/mac68k/intr.h +3 -2
- package/libc/include/m68k-netbsd-none/mac68k/lwp_private.h +3 -0
- package/libc/include/m68k-netbsd-none/mac68k/pmap.h +20 -2
- package/libc/include/m68k-netbsd-none/mac68k/z8530var.h +2 -2
- package/libc/include/m68k-netbsd-none/machine/cpu.h +1 -57
- package/libc/include/m68k-netbsd-none/machine/intr.h +3 -2
- package/libc/include/m68k-netbsd-none/machine/lwp_private.h +3 -0
- package/libc/include/m68k-netbsd-none/machine/pmap.h +20 -2
- package/libc/include/m68k-netbsd-none/machine/z8530var.h +2 -2
- package/libc/include/mips-linux-any/asm/errno.h +2 -0
- package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
- package/libc/include/mips-netbsd-eabi/machine/lwp_private.h +3 -0
- package/libc/include/mips64-openbsd-none/machine/octeonvar.h +1 -27
- package/libc/include/mips64-openbsd-none/octeon/octeonvar.h +1 -27
- package/libc/include/mips64el-openbsd-none/loongson/apmvar.h +1 -1
- package/libc/include/mips64el-openbsd-none/loongson/param.h +1 -5
- package/libc/include/mips64el-openbsd-none/machine/apmvar.h +1 -1
- package/libc/include/mips64el-openbsd-none/machine/param.h +1 -5
- package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/powerpc-netbsd-eabi/evbppc/lwp_private.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/float.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/ansi.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/aout_machdep.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/asm.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/cdefs.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/cpu.h +65 -0
- package/libc/include/powerpc-netbsd-eabi/machine/disklabel.h +69 -0
- package/libc/include/powerpc-netbsd-eabi/machine/elf_machdep.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/endian.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/fenv.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/float.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/frame.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/ieee.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/ieeefp.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/int_const.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/int_fmtio.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/int_limits.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/int_mwgwtypes.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/int_types.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/kcore.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/limits.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/lock.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/lwp_private.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/math.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/mcontext.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/mutex.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/param.h +43 -0
- package/libc/include/powerpc-netbsd-eabi/machine/pcb.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/pmap.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/proc.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/profile.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/psl.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/pte.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/ptrace.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/reg.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/reloc.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/setjmp.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/signal.h +3 -0
- package/libc/include/{mips-netbsd-eabi → powerpc-netbsd-eabi}/machine/sljit_machdep.h +1 -1
- package/libc/include/powerpc-netbsd-eabi/machine/trap.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/types.h +11 -0
- package/libc/include/powerpc-netbsd-eabi/machine/vmparam.h +3 -0
- package/libc/include/powerpc-netbsd-eabi/machine/wchar_limits.h +3 -0
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/asm.h +12 -2
- package/libc/include/powerpc-netbsd-eabi/powerpc/bswap.h +14 -0
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/cpu.h +3 -3
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/fenv.h +2 -1
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/ibm4xx/pmap.h +3 -3
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/ieee.h +7 -2
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/limits.h +4 -13
- package/libc/include/powerpc-netbsd-eabi/powerpc/lwp_private.h +79 -0
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/mcontext.h +6 -50
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/mutex.h +1 -1
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/oea/hid.h +2 -2
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/oea/pmap.h +2 -2
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/pmap.h +1 -1
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/psl.h +2 -2
- package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/vmparam.h +1 -1
- package/libc/include/powerpc-openbsd-eabihf/powerpc/intr.h +1 -4
- package/libc/include/powerpc64-openbsd-none/machine/atomic.h +3 -3
- package/libc/include/powerpc64-openbsd-none/powerpc64/atomic.h +3 -3
- package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
- package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
- package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
- package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/riscv32-netbsd-none/machine/bswap.h +11 -0
- package/libc/include/riscv32-netbsd-none/machine/endian_machdep.h +3 -0
- package/libc/include/riscv32-netbsd-none/machine/rwlock.h +1 -0
- package/libc/include/riscv32-netbsd-none/machine/wchar_limits.h +4 -0
- package/libc/include/riscv64-netbsd-none/machine/bswap.h +11 -0
- package/libc/include/riscv64-netbsd-none/machine/endian_machdep.h +3 -0
- package/libc/include/riscv64-netbsd-none/machine/rwlock.h +1 -0
- package/libc/include/riscv64-netbsd-none/machine/wchar_limits.h +4 -0
- package/libc/include/riscv64-openbsd-none/machine/cpu.h +4 -8
- package/libc/include/riscv64-openbsd-none/machine/cpufunc.h +4 -4
- package/libc/include/riscv64-openbsd-none/machine/pmap.h +5 -1
- package/libc/include/riscv64-openbsd-none/machine/pte.h +9 -1
- package/libc/include/riscv64-openbsd-none/riscv64/cpu.h +4 -8
- package/libc/include/riscv64-openbsd-none/riscv64/cpufunc.h +4 -4
- package/libc/include/riscv64-openbsd-none/riscv64/pmap.h +5 -1
- package/libc/include/riscv64-openbsd-none/riscv64/pte.h +9 -1
- package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/sparc-linux-any/asm/errno.h +2 -0
- package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
- package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/sparc-netbsd-none/float.h +3 -1
- package/libc/include/sparc-netbsd-none/machine/asm.h +10 -1
- package/libc/include/sparc-netbsd-none/machine/cgtworeg.h +2 -2
- package/libc/include/sparc-netbsd-none/machine/cpu.h +1 -1
- package/libc/include/sparc-netbsd-none/machine/float.h +3 -1
- package/libc/include/sparc-netbsd-none/machine/limits.h +4 -6
- package/libc/include/sparc-netbsd-none/machine/lwp_private.h +51 -0
- package/libc/include/sparc-netbsd-none/machine/mcontext.h +4 -22
- package/libc/include/sparc-netbsd-none/machine/mutex.h +1 -1
- package/libc/include/sparc-netbsd-none/machine/param.h +4 -2
- package/libc/include/sparc-netbsd-none/machine/pmap.h +2 -2
- package/libc/include/sparc-netbsd-none/machine/psl.h +6 -3
- package/libc/include/sparc-netbsd-none/machine/sxreg.h +5 -1
- package/libc/include/sparc-netbsd-none/machine/types.h +2 -2
- package/libc/include/sparc-netbsd-none/sparc/sxreg.h +5 -1
- package/libc/include/sparc64-netbsd-none/machine/cpu.h +2 -2
- package/libc/include/sparc64-netbsd-none/machine/ctlreg.h +8 -7
- package/libc/include/sparc64-netbsd-none/machine/intr.h +1 -1
- package/libc/include/sparc64-netbsd-none/machine/lwp_private.h +3 -0
- package/libc/include/sparc64-netbsd-none/machine/mcontext.h +4 -4
- package/libc/include/sparc64-netbsd-none/machine/mutex.h +1 -1
- package/libc/include/sparc64-netbsd-none/machine/param.h +8 -2
- package/libc/include/sparc64-netbsd-none/machine/psl.h +7 -2
- package/libc/include/sparc64-netbsd-none/machine/pte.h +2 -2
- package/libc/include/sparc64-netbsd-none/machine/vmparam.h +1 -1
- package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
- package/libc/include/x86-linux-any/asm/kvm.h +13 -8
- package/libc/include/x86-linux-any/asm/svm.h +16 -16
- package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
- package/libc/include/x86-netbsd-none/machine/asm.h +12 -4
- package/libc/include/x86-netbsd-none/machine/byte_swap.h +2 -2
- package/libc/include/x86-netbsd-none/machine/cpu.h +15 -4
- package/libc/include/x86-netbsd-none/machine/elf_machdep.h +2 -1
- package/libc/include/x86-netbsd-none/machine/lwp_private.h +3 -0
- package/libc/include/x86-netbsd-none/machine/mcontext.h +6 -24
- package/libc/include/x86-netbsd-none/machine/param.h +9 -1
- package/libc/include/x86-netbsd-none/machine/pcb.h +6 -2
- package/libc/include/x86-netbsd-none/machine/ptrace.h +2 -2
- package/libc/include/x86-netbsd-none/machine/types.h +2 -1
- package/libc/include/x86-openbsd-none/i386/specialreg.h +3 -1
- package/libc/include/x86-openbsd-none/machine/specialreg.h +3 -1
- package/libc/include/x86_64-netbsd-none/amd64/asm.h +11 -3
- package/libc/include/x86_64-netbsd-none/amd64/byte_swap.h +2 -2
- package/libc/include/x86_64-netbsd-none/amd64/cpu.h +13 -3
- package/libc/include/x86_64-netbsd-none/amd64/frame.h +2 -2
- package/libc/include/x86_64-netbsd-none/amd64/lwp_private.h +3 -0
- package/libc/include/x86_64-netbsd-none/amd64/mcontext.h +5 -23
- package/libc/include/x86_64-netbsd-none/amd64/param.h +23 -4
- package/libc/include/x86_64-netbsd-none/amd64/pcb.h +14 -3
- package/libc/include/x86_64-netbsd-none/amd64/ptrace.h +2 -2
- package/libc/include/x86_64-netbsd-none/amd64/types.h +2 -1
- package/libc/include/x86_64-netbsd-none/machine/asm.h +11 -3
- package/libc/include/x86_64-netbsd-none/machine/byte_swap.h +2 -2
- package/libc/include/x86_64-netbsd-none/machine/cpu.h +13 -3
- package/libc/include/x86_64-netbsd-none/machine/frame.h +2 -2
- package/libc/include/x86_64-netbsd-none/machine/lwp_private.h +3 -0
- package/libc/include/x86_64-netbsd-none/machine/mcontext.h +5 -23
- package/libc/include/x86_64-netbsd-none/machine/param.h +23 -4
- package/libc/include/x86_64-netbsd-none/machine/pcb.h +14 -3
- package/libc/include/x86_64-netbsd-none/machine/ptrace.h +2 -2
- package/libc/include/x86_64-netbsd-none/machine/types.h +2 -1
- package/libc/include/x86_64-openbsd-none/amd64/conf.h +11 -2
- package/libc/include/x86_64-openbsd-none/amd64/cpu.h +14 -4
- package/libc/include/x86_64-openbsd-none/amd64/cpufunc.h +2 -3
- package/libc/include/x86_64-openbsd-none/amd64/ghcb.h +2 -1
- package/libc/include/x86_64-openbsd-none/amd64/i82489var.h +2 -4
- package/libc/include/x86_64-openbsd-none/amd64/i8259.h +1 -53
- package/libc/include/x86_64-openbsd-none/amd64/intr.h +5 -2
- package/libc/include/x86_64-openbsd-none/amd64/intrdefs.h +9 -7
- package/libc/include/x86_64-openbsd-none/amd64/kexec.h +48 -0
- package/libc/include/x86_64-openbsd-none/amd64/specialreg.h +4 -1
- package/libc/include/x86_64-openbsd-none/machine/conf.h +11 -2
- package/libc/include/x86_64-openbsd-none/machine/cpu.h +14 -4
- package/libc/include/x86_64-openbsd-none/machine/cpufunc.h +2 -3
- package/libc/include/x86_64-openbsd-none/machine/ghcb.h +2 -1
- package/libc/include/x86_64-openbsd-none/machine/i82489var.h +2 -4
- package/libc/include/x86_64-openbsd-none/machine/i8259.h +1 -53
- package/libc/include/x86_64-openbsd-none/machine/intr.h +5 -2
- package/libc/include/x86_64-openbsd-none/machine/intrdefs.h +9 -7
- package/libc/include/x86_64-openbsd-none/machine/kexec.h +48 -0
- package/libc/include/x86_64-openbsd-none/machine/specialreg.h +4 -1
- package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
- package/libc/netbsd/abilists +0 -0
- package/libc/netbsd/lib/csu/arch/riscv/crt0.S +62 -0
- package/libc/netbsd/lib/csu/common/crt0-common.c +32 -7
- package/libc/netbsd/lib/csu/common/csu-common.h +2 -0
- package/libc/openbsd/abilists +0 -0
- package/libcxx/include/__algorithm/all_of.h +11 -5
- package/libcxx/include/__algorithm/comp.h +4 -0
- package/libcxx/include/__algorithm/copy.h +28 -147
- package/libcxx/include/__algorithm/copy_backward.h +9 -24
- package/libcxx/include/__algorithm/copy_n.h +50 -16
- package/libcxx/include/__algorithm/count.h +2 -2
- package/libcxx/include/__algorithm/equal.h +43 -55
- package/libcxx/include/__algorithm/fill.h +26 -8
- package/libcxx/include/__algorithm/fill_n.h +32 -46
- package/libcxx/include/__algorithm/find.h +96 -39
- package/libcxx/include/__algorithm/find_end.h +105 -0
- package/libcxx/include/__algorithm/for_each.h +18 -24
- package/libcxx/include/__algorithm/for_each_n.h +20 -47
- package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
- package/libcxx/include/__algorithm/for_each_segment.h +26 -0
- package/libcxx/include/__algorithm/generate.h +4 -2
- package/libcxx/include/__algorithm/generate_n.h +19 -6
- package/libcxx/include/__algorithm/is_permutation.h +4 -4
- package/libcxx/include/__algorithm/iterator_operations.h +3 -0
- package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
- package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
- package/libcxx/include/__algorithm/make_heap.h +16 -4
- package/libcxx/include/__algorithm/mismatch.h +2 -2
- package/libcxx/include/__algorithm/move.h +8 -19
- package/libcxx/include/__algorithm/move_backward.h +9 -24
- package/libcxx/include/__algorithm/none_of.h +4 -4
- package/libcxx/include/__algorithm/partial_sort.h +1 -1
- package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
- package/libcxx/include/__algorithm/pstl.h +9 -9
- package/libcxx/include/__algorithm/radix_sort.h +27 -25
- package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
- package/libcxx/include/__algorithm/ranges_equal.h +17 -26
- package/libcxx/include/__algorithm/ranges_fill.h +7 -6
- package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
- package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
- package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
- package/libcxx/include/__algorithm/rotate.h +27 -44
- package/libcxx/include/__algorithm/search_n.h +49 -37
- package/libcxx/include/__algorithm/sift_down.h +19 -18
- package/libcxx/include/__algorithm/simd_utils.h +33 -4
- package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
- package/libcxx/include/__algorithm/stable_sort.h +1 -1
- package/libcxx/include/__assertion_handler +31 -4
- package/libcxx/include/__atomic/atomic.h +36 -60
- package/libcxx/include/__atomic/atomic_flag.h +19 -37
- package/libcxx/include/__atomic/atomic_ref.h +29 -12
- package/libcxx/include/__atomic/atomic_sync.h +127 -55
- package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
- package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
- package/libcxx/include/__atomic/contention_t.h +27 -3
- package/libcxx/include/__atomic/floating_point_helper.h +55 -0
- package/libcxx/include/__bit/countl.h +1 -2
- package/libcxx/include/__bit/countr.h +1 -2
- package/libcxx/include/__bit/has_single_bit.h +1 -1
- package/libcxx/include/__bit/popcount.h +0 -1
- package/libcxx/include/__bit/rotate.h +15 -26
- package/libcxx/include/__bit_reference +207 -18
- package/libcxx/include/__charconv/from_chars_integral.h +1 -1
- package/libcxx/include/__charconv/from_chars_result.h +1 -1
- package/libcxx/include/__charconv/to_chars_integral.h +1 -0
- package/libcxx/include/__charconv/to_chars_result.h +1 -1
- package/libcxx/include/__charconv/traits.h +3 -24
- package/libcxx/include/__chrono/day.h +11 -0
- package/libcxx/include/__chrono/duration.h +58 -33
- package/libcxx/include/__chrono/file_clock.h +4 -2
- package/libcxx/include/__chrono/is_clock.h +72 -0
- package/libcxx/include/__chrono/leap_second.h +13 -0
- package/libcxx/include/__chrono/month.h +13 -0
- package/libcxx/include/__chrono/month_weekday.h +22 -0
- package/libcxx/include/__chrono/monthday.h +20 -0
- package/libcxx/include/__chrono/steady_clock.h +1 -1
- package/libcxx/include/__chrono/system_clock.h +3 -3
- package/libcxx/include/__chrono/time_point.h +37 -13
- package/libcxx/include/__chrono/weekday.h +25 -0
- package/libcxx/include/__chrono/year.h +11 -0
- package/libcxx/include/__chrono/year_month.h +13 -0
- package/libcxx/include/__chrono/year_month_day.h +23 -0
- package/libcxx/include/__chrono/year_month_weekday.h +26 -0
- package/libcxx/include/__chrono/zoned_time.h +16 -0
- package/libcxx/include/__compare/is_eq.h +6 -6
- package/libcxx/include/__compare/strong_order.h +12 -30
- package/libcxx/include/__compare/three_way_comparable.h +2 -2
- package/libcxx/include/__concepts/comparison_common_type.h +40 -0
- package/libcxx/include/__concepts/equality_comparable.h +2 -1
- package/libcxx/include/__condition_variable/condition_variable.h +1 -1
- package/libcxx/include/__config +63 -280
- package/libcxx/include/__configuration/abi.h +14 -24
- package/libcxx/include/__configuration/availability.h +65 -118
- package/libcxx/include/__configuration/compiler.h +6 -6
- package/libcxx/include/__configuration/experimental.h +38 -0
- package/libcxx/include/__configuration/hardening.h +215 -0
- package/libcxx/include/__configuration/language.h +3 -0
- package/libcxx/include/__configuration/platform.h +9 -16
- package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
- package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
- package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
- package/libcxx/include/__exception/exception.h +6 -4
- package/libcxx/include/__exception/exception_ptr.h +27 -5
- package/libcxx/include/__exception/nested_exception.h +2 -2
- package/libcxx/include/__exception/operations.h +5 -5
- package/libcxx/include/__expected/bad_expected_access.h +8 -6
- package/libcxx/include/__expected/expected.h +62 -64
- package/libcxx/include/__expected/unexpected.h +4 -4
- package/libcxx/include/__filesystem/copy_options.h +4 -4
- package/libcxx/include/__filesystem/directory_entry.h +37 -33
- package/libcxx/include/__filesystem/directory_iterator.h +9 -11
- package/libcxx/include/__filesystem/directory_options.h +7 -4
- package/libcxx/include/__filesystem/file_status.h +3 -3
- package/libcxx/include/__filesystem/filesystem_error.h +9 -10
- package/libcxx/include/__filesystem/operations.h +97 -66
- package/libcxx/include/__filesystem/path.h +68 -64
- package/libcxx/include/__filesystem/path_iterator.h +1 -3
- package/libcxx/include/__filesystem/perm_options.h +4 -4
- package/libcxx/include/__filesystem/perms.h +4 -4
- package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
- package/libcxx/include/__filesystem/space_info.h +1 -1
- package/libcxx/include/__filesystem/u8path.h +12 -14
- package/libcxx/include/__flat_map/flat_map.h +88 -71
- package/libcxx/include/__flat_map/flat_multimap.h +251 -172
- package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
- package/libcxx/include/__flat_map/utils.h +1 -0
- package/libcxx/include/__flat_set/flat_multiset.h +211 -143
- package/libcxx/include/__flat_set/flat_set.h +86 -68
- package/libcxx/include/__format/concepts.h +0 -14
- package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
- package/libcxx/include/__format/fmt_pair_like.h +42 -0
- package/libcxx/include/__format/format_arg.h +7 -10
- package/libcxx/include/__format/format_args.h +1 -1
- package/libcxx/include/__format/format_context.h +5 -5
- package/libcxx/include/__format/format_parse_context.h +2 -2
- package/libcxx/include/__format/formatter_output.h +30 -34
- package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
- package/libcxx/include/__format/range_default_formatter.h +2 -41
- package/libcxx/include/__format/range_format.h +71 -0
- package/libcxx/include/__format/range_formatter.h +1 -0
- package/libcxx/include/__format/width_estimation_table.h +4 -2
- package/libcxx/include/__functional/bind.h +10 -15
- package/libcxx/include/__functional/bind_back.h +1 -1
- package/libcxx/include/__functional/bind_front.h +1 -1
- package/libcxx/include/__functional/function.h +57 -75
- package/libcxx/include/__functional/hash.h +1 -10
- package/libcxx/include/__functional/identity.h +1 -1
- package/libcxx/include/__functional/is_transparent.h +8 -0
- package/libcxx/include/__functional/mem_fn.h +2 -1
- package/libcxx/include/__functional/operations.h +18 -0
- package/libcxx/include/__functional/ranges_operations.h +7 -0
- package/libcxx/include/__functional/reference_wrapper.h +7 -5
- package/libcxx/include/__functional/weak_result_type.h +14 -28
- package/libcxx/include/__fwd/ios.h +1 -1
- package/libcxx/include/__fwd/tuple.h +14 -0
- package/libcxx/include/__hash_table +371 -357
- package/libcxx/include/__ios/fpos.h +4 -4
- package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/bounded_iter.h +7 -8
- package/libcxx/include/__iterator/concepts.h +6 -9
- package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
- package/libcxx/include/__iterator/distance.h +40 -18
- package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/insert_iterator.h +1 -7
- package/libcxx/include/__iterator/istream_iterator.h +6 -7
- package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
- package/libcxx/include/__iterator/iter_move.h +1 -1
- package/libcxx/include/__iterator/iterator.h +13 -0
- package/libcxx/include/__iterator/iterator_traits.h +13 -14
- package/libcxx/include/__iterator/ostream_iterator.h +1 -7
- package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
- package/libcxx/include/__iterator/reverse_iterator.h +8 -13
- package/libcxx/include/__iterator/segmented_iterator.h +3 -8
- package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
- package/libcxx/include/__iterator/wrap_iter.h +8 -6
- package/libcxx/include/__locale +3 -10
- package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
- package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
- package/libcxx/include/__locale_dir/messages.h +1 -1
- package/libcxx/include/__locale_dir/money.h +2 -2
- package/libcxx/include/__locale_dir/num.h +190 -243
- package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
- package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
- package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
- package/libcxx/include/__locale_dir/support/linux.h +0 -37
- package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
- package/libcxx/include/__locale_dir/support/newlib.h +243 -0
- package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
- package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
- package/libcxx/include/__locale_dir/support/windows.h +0 -29
- package/libcxx/include/__locale_dir/time.h +3 -7
- package/libcxx/include/__math/hypot.h +1 -1
- package/libcxx/include/__math/logarithms.h +1 -1
- package/libcxx/include/__math/traits.h +80 -11
- package/libcxx/include/__mdspan/extents.h +7 -4
- package/libcxx/include/__mdspan/layout_stride.h +4 -5
- package/libcxx/include/__mdspan/mdspan.h +29 -23
- package/libcxx/include/__memory/addressof.h +7 -5
- package/libcxx/include/__memory/align.h +18 -1
- package/libcxx/include/__memory/allocate_at_least.h +15 -10
- package/libcxx/include/__memory/allocator.h +14 -26
- package/libcxx/include/__memory/allocator_traits.h +6 -4
- package/libcxx/include/__memory/compressed_pair.h +15 -9
- package/libcxx/include/__memory/construct_at.h +12 -23
- package/libcxx/include/__memory/inout_ptr.h +1 -1
- package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
- package/libcxx/include/__memory/out_ptr.h +1 -1
- package/libcxx/include/__memory/pointer_traits.h +1 -1
- package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
- package/libcxx/include/__memory/shared_count.h +9 -30
- package/libcxx/include/__memory/shared_ptr.h +100 -145
- package/libcxx/include/__memory/temp_value.h +1 -2
- package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
- package/libcxx/include/__memory/unique_ptr.h +14 -16
- package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
- package/libcxx/include/__memory_resource/memory_resource.h +4 -2
- package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
- package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
- package/libcxx/include/__memory_resource/pool_options.h +1 -1
- package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
- package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
- package/libcxx/include/__mutex/mutex.h +2 -2
- package/libcxx/include/__mutex/once_flag.h +14 -11
- package/libcxx/include/__mutex/tag_types.h +3 -3
- package/libcxx/include/__mutex/unique_lock.h +8 -7
- package/libcxx/include/__new/align_val_t.h +6 -0
- package/libcxx/include/__new/allocate.h +1 -2
- package/libcxx/include/__new/exceptions.h +8 -2
- package/libcxx/include/__new/global_new_delete.h +4 -11
- package/libcxx/include/__new/interference_size.h +0 -4
- package/libcxx/include/__new/launder.h +3 -5
- package/libcxx/include/__new/nothrow_t.h +1 -1
- package/libcxx/include/__numeric/gcd_lcm.h +24 -34
- package/libcxx/include/__numeric/midpoint.h +9 -14
- package/libcxx/include/__numeric/pstl.h +2 -2
- package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
- package/libcxx/include/__ostream/basic_ostream.h +8 -8
- package/libcxx/include/__pstl/backends/default.h +14 -14
- package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
- package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
- package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
- package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
- package/libcxx/include/__random/binomial_distribution.h +10 -4
- package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
- package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
- package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
- package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
- package/libcxx/include/__ranges/adjacent_view.h +419 -0
- package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
- package/libcxx/include/__ranges/chunk_by_view.h +6 -6
- package/libcxx/include/__ranges/common_view.h +7 -7
- package/libcxx/include/__ranges/drop_view.h +8 -8
- package/libcxx/include/__ranges/drop_while_view.h +5 -5
- package/libcxx/include/__ranges/elements_of.h +49 -0
- package/libcxx/include/__ranges/empty_view.h +5 -5
- package/libcxx/include/__ranges/filter_view.h +10 -10
- package/libcxx/include/__ranges/iota_view.h +41 -22
- package/libcxx/include/__ranges/owning_view.h +15 -15
- package/libcxx/include/__ranges/ref_view.h +6 -6
- package/libcxx/include/__ranges/repeat_view.h +17 -10
- package/libcxx/include/__ranges/single_view.h +8 -8
- package/libcxx/include/__ranges/take_view.h +9 -9
- package/libcxx/include/__ranges/transform_view.h +1 -2
- package/libcxx/include/__ranges/view_interface.h +10 -10
- package/libcxx/include/__ranges/zip_transform_view.h +357 -0
- package/libcxx/include/__ranges/zip_view.h +20 -20
- package/libcxx/include/__split_buffer +612 -240
- package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
- package/libcxx/include/__stop_token/stop_callback.h +2 -2
- package/libcxx/include/__stop_token/stop_source.h +1 -1
- package/libcxx/include/__stop_token/stop_state.h +4 -4
- package/libcxx/include/__stop_token/stop_token.h +1 -1
- package/libcxx/include/__string/char_traits.h +51 -31
- package/libcxx/include/__string/constexpr_c_functions.h +5 -5
- package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
- package/libcxx/include/__system_error/error_category.h +8 -8
- package/libcxx/include/__system_error/error_code.h +5 -5
- package/libcxx/include/__system_error/error_condition.h +4 -4
- package/libcxx/include/__system_error/system_error.h +1 -1
- package/libcxx/include/__thread/id.h +1 -1
- package/libcxx/include/__thread/jthread.h +1 -1
- package/libcxx/include/__thread/poll_with_backoff.h +27 -8
- package/libcxx/include/__thread/support/c11.h +8 -8
- package/libcxx/include/__thread/support/pthread.h +8 -8
- package/libcxx/include/__thread/support/windows.h +8 -8
- package/libcxx/include/__thread/thread.h +13 -8
- package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
- package/libcxx/include/__tree +849 -701
- package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
- package/libcxx/include/__tuple/tuple_element.h +0 -12
- package/libcxx/include/__tuple/tuple_size.h +0 -4
- package/libcxx/include/__tuple/tuple_transform.h +45 -0
- package/libcxx/include/__type_traits/aligned_storage.h +13 -40
- package/libcxx/include/__type_traits/desugars_to.h +4 -0
- package/libcxx/include/__type_traits/invoke.h +8 -0
- package/libcxx/include/__type_traits/is_allocator.h +6 -7
- package/libcxx/include/__type_traits/is_array.h +26 -0
- package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
- package/libcxx/include/__type_traits/is_final.h +1 -1
- package/libcxx/include/__type_traits/is_floating_point.h +7 -6
- package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
- package/libcxx/include/__type_traits/is_specialization.h +2 -6
- package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
- package/libcxx/include/__type_traits/make_transparent.h +52 -0
- package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
- package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
- package/libcxx/include/__utility/cmp.h +19 -7
- package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
- package/libcxx/include/__utility/in_place.h +1 -1
- package/libcxx/include/__utility/integer_sequence.h +56 -41
- package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
- package/libcxx/include/__utility/pair.h +22 -25
- package/libcxx/include/__utility/scope_guard.h +2 -0
- package/libcxx/include/__utility/try_key_extraction.h +114 -0
- package/libcxx/include/__vector/vector.h +187 -160
- package/libcxx/include/__vector/vector_bool.h +76 -83
- package/libcxx/include/any +118 -155
- package/libcxx/include/array +88 -56
- package/libcxx/include/atomic +2 -0
- package/libcxx/include/barrier +20 -24
- package/libcxx/include/bitset +49 -30
- package/libcxx/include/ccomplex +3 -11
- package/libcxx/include/chrono +47 -0
- package/libcxx/include/ciso646 +3 -6
- package/libcxx/include/complex +77 -65
- package/libcxx/include/complex.h +10 -10
- package/libcxx/include/condition_variable +3 -3
- package/libcxx/include/cstdalign +3 -10
- package/libcxx/include/cstdbool +3 -10
- package/libcxx/include/ctgmath +2 -11
- package/libcxx/include/ctype.h +24 -24
- package/libcxx/include/cwchar +2 -2
- package/libcxx/include/deque +109 -225
- package/libcxx/include/errno.h +269 -269
- package/libcxx/include/exception +4 -1
- package/libcxx/include/ext/hash_map +7 -48
- package/libcxx/include/ext/hash_set +2 -8
- package/libcxx/include/fenv.h +43 -43
- package/libcxx/include/flat_map +663 -11
- package/libcxx/include/flat_set +543 -8
- package/libcxx/include/float.h +16 -16
- package/libcxx/include/forward_list +33 -53
- package/libcxx/include/fstream +57 -42
- package/libcxx/include/future +41 -51
- package/libcxx/include/initializer_list +9 -3
- package/libcxx/include/inttypes.h +16 -16
- package/libcxx/include/ios +28 -28
- package/libcxx/include/istream +19 -13
- package/libcxx/include/iterator +10 -0
- package/libcxx/include/latch +7 -5
- package/libcxx/include/limits +4 -4
- package/libcxx/include/list +61 -79
- package/libcxx/include/map +386 -274
- package/libcxx/include/math.h +19 -0
- package/libcxx/include/mdspan +1 -5
- package/libcxx/include/mutex +29 -19
- package/libcxx/include/optional +644 -149
- package/libcxx/include/print +9 -5
- package/libcxx/include/queue +39 -37
- package/libcxx/include/ranges +48 -0
- package/libcxx/include/regex +33 -31
- package/libcxx/include/scoped_allocator +16 -11
- package/libcxx/include/semaphore +15 -18
- package/libcxx/include/set +220 -192
- package/libcxx/include/shared_mutex +3 -8
- package/libcxx/include/span +53 -37
- package/libcxx/include/sstream +34 -28
- package/libcxx/include/stack +13 -15
- package/libcxx/include/stddef.h +10 -10
- package/libcxx/include/stdexcept +2 -2
- package/libcxx/include/stdio.h +20 -21
- package/libcxx/include/streambuf +59 -19
- package/libcxx/include/string +574 -573
- package/libcxx/include/string_view +113 -89
- package/libcxx/include/strstream +10 -10
- package/libcxx/include/syncstream +4 -4
- package/libcxx/include/tgmath.h +12 -12
- package/libcxx/include/tuple +242 -212
- package/libcxx/include/type_traits +8 -2
- package/libcxx/include/typeindex +5 -3
- package/libcxx/include/typeinfo +92 -89
- package/libcxx/include/unordered_map +179 -304
- package/libcxx/include/unordered_set +168 -195
- package/libcxx/include/utility +12 -0
- package/libcxx/include/valarray +106 -161
- package/libcxx/include/variant +25 -33
- package/libcxx/include/version +41 -24
- package/libcxx/include/wctype.h +29 -29
- package/libcxx/libc/hdr/errno_macros.h +3 -1
- package/libcxx/libc/hdr/stdint_proxy.h +18 -0
- package/libcxx/libc/hdr/types/wchar_t.h +23 -0
- package/libcxx/libc/hdr/wchar_overlay.h +69 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
- package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
- package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
- package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
- package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
- package/libcxx/libc/shared/libc_common.h +5 -0
- package/libcxx/libc/src/__support/CPP/bit.h +50 -12
- package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
- package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
- package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
- package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
- package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
- package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
- package/libcxx/libc/src/__support/big_int.h +14 -14
- package/libcxx/libc/src/__support/common.h +3 -2
- package/libcxx/libc/src/__support/ctype_utils.h +19 -12
- package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
- package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
- package/libcxx/libc/src/__support/libc_assert.h +2 -0
- package/libcxx/libc/src/__support/macros/attributes.h +44 -1
- package/libcxx/libc/src/__support/macros/config.h +23 -0
- package/libcxx/libc/src/__support/macros/null_check.h +1 -2
- package/libcxx/libc/src/__support/macros/optimization.h +3 -0
- package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
- package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
- package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
- package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
- package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
- package/libcxx/libc/src/__support/math_extras.h +20 -4
- package/libcxx/libc/src/__support/str_to_float.h +98 -125
- package/libcxx/libc/src/__support/str_to_integer.h +39 -27
- package/libcxx/libc/src/__support/wctype_utils.h +588 -0
- package/libcxx/src/any.cpp +4 -0
- package/libcxx/src/atomic.cpp +365 -80
- package/libcxx/src/barrier.cpp +4 -3
- package/libcxx/src/charconv.cpp +6 -3
- package/libcxx/src/condition_variable_destructor.cpp +1 -1
- package/libcxx/src/error_category.cpp +3 -1
- package/libcxx/src/exception.cpp +2 -10
- package/libcxx/src/experimental/time_zone.cpp +1 -1
- package/libcxx/src/experimental/tzdb.cpp +4 -1
- package/libcxx/src/filesystem/error.h +4 -22
- package/libcxx/src/filesystem/format_string.h +9 -18
- package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
- package/libcxx/src/filesystem/operations.cpp +2 -9
- package/libcxx/src/filesystem/path.cpp +3 -1
- package/libcxx/src/include/aligned_alloc.h +65 -0
- package/libcxx/src/include/config_elast.h +1 -1
- package/libcxx/src/include/from_chars_floating_point.h +11 -7
- package/libcxx/src/include/overridable_function.h +8 -10
- package/libcxx/src/iostream.cpp +56 -37
- package/libcxx/src/locale.cpp +213 -196
- package/libcxx/src/memory.cpp +12 -14
- package/libcxx/src/mutex_destructor.cpp +1 -1
- package/libcxx/src/new.cpp +5 -5
- package/libcxx/src/optional.cpp +4 -0
- package/libcxx/src/print.cpp +9 -1
- package/libcxx/src/random.cpp +0 -26
- package/libcxx/src/string.cpp +10 -25
- package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
- package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
- package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
- package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
- package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
- package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
- package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
- package/libcxx/src/support/win32/locale_win32.cpp +1 -1
- package/libcxx/src/system_error.cpp +2 -0
- package/libcxx/src/thread.cpp +1 -3
- package/libcxx/src/valarray.cpp +1 -2
- package/libcxx/src/vector.cpp +2 -2
- package/libcxxabi/include/__cxxabi_config.h +42 -23
- package/libcxxabi/src/cxa_exception.cpp +4 -2
- package/libcxxabi/src/cxa_exception.h +16 -14
- package/libcxxabi/src/cxa_personality.cpp +126 -9
- package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
- package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
- package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
- package/libcxxabi/src/demangle/Utility.h +21 -7
- package/libcxxabi/src/fallback_malloc.cpp +1 -1
- package/libcxxabi/src/private_typeinfo.cpp +6 -0
- package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
- package/libtsan/LICENSE.TXT +311 -0
- package/libtsan/builtins/assembly.h +41 -8
- package/libtsan/interception/interception_win.cpp +4 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
- package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
- package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
- package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
- package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
- package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
- package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
- package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
- package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
- package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
- package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
- package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
- package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
- package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
- package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
- package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
- package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
- package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
- package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
- package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
- package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
- package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
- package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
- package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
- package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
- package/libtsan/tsan_debugging.cpp +2 -2
- package/libtsan/tsan_flags.cpp +37 -0
- package/libtsan/tsan_flags.h +8 -0
- package/libtsan/tsan_flags.inc +12 -0
- package/libtsan/tsan_interceptors.h +9 -1
- package/libtsan/tsan_interceptors_mac.cpp +19 -0
- package/libtsan/tsan_interceptors_posix.cpp +78 -32
- package/libtsan/tsan_interface.h +3 -3
- package/libtsan/tsan_interface_ann.cpp +23 -9
- package/libtsan/tsan_mman.cpp +18 -4
- package/libtsan/tsan_platform.h +44 -7
- package/libtsan/tsan_platform_linux.cpp +42 -14
- package/libtsan/tsan_platform_mac.cpp +16 -3
- package/libtsan/tsan_report.h +14 -1
- package/libtsan/tsan_rtl.cpp +14 -0
- package/libtsan/tsan_rtl.h +7 -2
- package/libtsan/tsan_rtl_aarch64.S +3 -5
- package/libtsan/tsan_rtl_access.cpp +8 -3
- package/libtsan/tsan_rtl_amd64.S +2 -0
- package/libtsan/tsan_rtl_mutex.cpp +94 -49
- package/libtsan/tsan_rtl_report.cpp +132 -65
- package/libtsan/tsan_rtl_thread.cpp +31 -9
- package/libtsan/tsan_symbolize.cpp +1 -1
- package/libtsan/tsan_symbolize.h +1 -1
- package/libtsan/tsan_trace.h +1 -1
- package/libunwind/include/__libunwind_config.h +11 -2
- package/libunwind/include/libunwind.h +117 -11
- package/libunwind/include/unwind_arm_ehabi.h +4 -1
- package/libunwind/src/AddressSpace.hpp +42 -20
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +62 -23
- package/libunwind/src/EHHeaderParser.hpp +7 -4
- package/libunwind/src/Registers.hpp +226 -22
- package/libunwind/src/Unwind-seh.cpp +6 -7
- package/libunwind/src/Unwind-wasm.c +7 -7
- package/libunwind/src/UnwindCursor.hpp +167 -49
- package/libunwind/src/UnwindLevel1.c +46 -17
- package/libunwind/src/UnwindRegistersRestore.S +46 -5
- package/libunwind/src/UnwindRegistersSave.S +86 -2
- package/libunwind/src/assembly.h +5 -1
- package/libunwind/src/config.h +9 -0
- package/libunwind/src/gcc_personality_v0.c +79 -6
- package/libunwind/src/libunwind.cpp +104 -4
- package/libunwind/src/libunwind_ext.h +7 -1
- package/libunwind/src/shadow_stack_unwind.h +2 -2
- package/lldb/pretty_printers.py +948 -0
- package/package.json +1 -1
- package/std/Build/Cache/Path.zig +35 -29
- package/std/Build/Cache.zig +17 -7
- package/std/Build/Configuration.zig +3428 -0
- package/std/Build/Module.zig +99 -225
- package/std/Build/Step/CheckFile.zig +17 -63
- package/std/Build/Step/Compile.zig +97 -1426
- package/std/Build/Step/ConfigHeader.zig +55 -944
- package/std/Build/Step/Fail.zig +10 -20
- package/std/Build/Step/FindProgram.zig +31 -0
- package/std/Build/Step/Fmt.zig +22 -57
- package/std/Build/Step/InstallArtifact.zig +26 -141
- package/std/Build/Step/InstallDir.zig +14 -67
- package/std/Build/Step/InstallFile.zig +12 -21
- package/std/Build/Step/ObjCopy.zig +82 -199
- package/std/Build/Step/Options.zig +27 -262
- package/std/Build/Step/Run.zig +138 -2246
- package/std/Build/Step/TranslateC.zig +55 -164
- package/std/Build/Step/UpdateSourceFiles.zig +38 -91
- package/std/Build/Step/WriteFile.zig +113 -328
- package/std/Build/Step.zig +45 -916
- package/std/Build/abi.zig +1 -1
- package/std/Build.zig +644 -718
- package/std/Io/Dir.zig +12 -7
- package/std/Io/Dispatch.zig +5 -5
- package/std/Io/File/Writer.zig +8 -6
- package/std/Io/File.zig +6 -9
- package/std/Io/Kqueue.zig +3 -3
- package/std/Io/Reader.zig +8 -14
- package/std/Io/RwLock.zig +2 -0
- package/std/Io/Semaphore.zig +112 -17
- package/std/Io/Terminal.zig +1 -1
- package/std/Io/Threaded.zig +19 -16
- package/std/Io/Uring.zig +7 -7
- package/std/Io/Writer.zig +75 -10
- package/std/Io/net/HostName.zig +11 -6
- package/std/Io.zig +92 -28
- package/std/Random/ChaCha.zig +2 -2
- package/std/Random/benchmark.zig +2 -2
- package/std/Random.zig +6 -6
- package/std/SemanticVersion.zig +1 -1
- package/std/Target/Query.zig +4 -5
- package/std/Target/aarch64.zig +620 -77
- package/std/Target/amdgcn.zig +421 -21
- package/std/Target/arm.zig +40 -6
- package/std/Target/bpf.zig +6 -0
- package/std/Target/hexagon.zig +41 -6
- package/std/Target/loongarch.zig +18 -0
- package/std/Target/mips.zig +6 -0
- package/std/Target/nvptx.zig +58 -35
- package/std/Target/powerpc.zig +27 -19
- package/std/Target/riscv.zig +512 -177
- package/std/Target/sparc.zig +17 -0
- package/std/Target/spirv.zig +1 -1
- package/std/Target/wasm.zig +7 -0
- package/std/Target/x86.zig +200 -31
- package/std/Target/xtensa.zig +65 -0
- package/std/Target.zig +97 -58
- package/std/Thread.zig +17 -4
- package/std/array_hash_map.zig +103 -57
- package/std/array_list.zig +20 -35
- package/std/ascii.zig +0 -9
- package/std/atomic.zig +2 -0
- package/std/base64.zig +5 -5
- package/std/bit_set.zig +85 -93
- package/std/c/serenity.zig +1 -6
- package/std/c.zig +117 -36
- package/std/compress/flate/Decompress.zig +3 -4
- package/std/compress/zstd/Decompress.zig +7 -9
- package/std/crypto/25519/curve25519.zig +2 -2
- package/std/crypto/25519/edwards25519.zig +3 -3
- package/std/crypto/25519/ristretto255.zig +2 -2
- package/std/crypto/25519/scalar.zig +6 -6
- package/std/crypto/25519/x25519.zig +1 -1
- package/std/crypto/Certificate.zig +14 -2
- package/std/crypto/Sha1.zig +1 -1
- package/std/crypto/aegis.zig +45 -39
- package/std/crypto/aes_ccm.zig +22 -22
- package/std/crypto/aes_gcm.zig +10 -12
- package/std/crypto/aes_ocb.zig +9 -9
- package/std/crypto/argon2.zig +15 -15
- package/std/crypto/ascon.zig +75 -35
- package/std/crypto/bcrypt.zig +20 -10
- package/std/crypto/benchmark.zig +7 -7
- package/std/crypto/blake2.zig +100 -64
- package/std/crypto/cbc_mac.zig +1 -1
- package/std/crypto/chacha20.zig +10 -10
- package/std/crypto/cmac.zig +3 -3
- package/std/crypto/codecs/asn1/Oid.zig +12 -1
- package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
- package/std/crypto/codecs/asn1.zig +1 -1
- package/std/crypto/codecs/base64_hex_ct.zig +3 -5
- package/std/crypto/ecdsa.zig +9 -9
- package/std/crypto/ff.zig +4 -5
- package/std/crypto/ghash_polyval.zig +4 -4
- package/std/crypto/hkdf.zig +1 -1
- package/std/crypto/isap.zig +3 -3
- package/std/crypto/kangarootwelve.zig +1 -1
- package/std/crypto/keccak_p.zig +8 -8
- package/std/crypto/md5.zig +1 -1
- package/std/crypto/ml_dsa.zig +39 -39
- package/std/crypto/ml_kem.zig +12 -34
- package/std/crypto/modes.zig +2 -2
- package/std/crypto/pbkdf2.zig +1 -1
- package/std/crypto/pcurves/common.zig +4 -5
- package/std/crypto/pcurves/p256/scalar.zig +3 -3
- package/std/crypto/pcurves/p384/scalar.zig +2 -2
- package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
- package/std/crypto/pcurves/tests/p256.zig +5 -5
- package/std/crypto/pcurves/tests/p384.zig +5 -5
- package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
- package/std/crypto/salsa20.zig +8 -14
- package/std/crypto/sha2.zig +2 -2
- package/std/crypto/sha3.zig +2 -4
- package/std/crypto/siphash.zig +1 -1
- package/std/crypto/timing_safe.zig +10 -9
- package/std/crypto/tls/Client.zig +89 -13
- package/std/crypto/tls.zig +1 -1
- package/std/crypto.zig +4 -3
- package/std/debug/Dwarf.zig +21 -12
- package/std/debug/Pdb.zig +86 -51
- package/std/debug/SelfInfo/Elf.zig +13 -9
- package/std/debug/SelfInfo/Windows.zig +3 -5
- package/std/debug/cpu_context.zig +230 -38
- package/std/debug.zig +16 -8
- package/std/deque.zig +1 -1
- package/std/elf.zig +22 -5
- package/std/enums.zig +8 -20
- package/std/fmt/float.zig +2 -0
- package/std/fmt/parse_float/decimal.zig +1 -1
- package/std/fmt/parse_float.zig +1 -1
- package/std/fmt.zig +7 -8
- package/std/fs/path.zig +7 -5
- package/std/hash/Adler32.zig +3 -3
- package/std/hash/benchmark.zig +2 -2
- package/std/hash/wyhash.zig +2 -2
- package/std/hash/xxhash.zig +0 -6
- package/std/hash_map.zig +22 -2
- package/std/heap/ArenaAllocator.zig +3 -5
- package/std/heap/BufferFirstAllocator.zig +165 -0
- package/std/heap/SafeAllocator.zig +2180 -0
- package/std/heap/debug_allocator.zig +2 -2
- package/std/heap/memory_pool.zig +34 -197
- package/std/heap.zig +20 -133
- package/std/http.zig +4 -5
- package/std/json/Scanner.zig +2 -2
- package/std/json/static.zig +2 -2
- package/std/json.zig +1 -1
- package/std/{builtin → lang}/assembly.zig +71 -0
- package/std/{builtin.zig → lang.zig} +5 -3
- package/std/leb128.zig +2 -2
- package/std/math/acos.zig +6 -0
- package/std/math/asin.zig +6 -0
- package/std/math/atan.zig +5 -0
- package/std/math/big/int.zig +5 -5
- package/std/math/big.zig +4 -4
- package/std/math/copysign.zig +1 -1
- package/std/math/float.zig +62 -0
- package/std/math/frexp.zig +4 -4
- package/std/math/hypot.zig +4 -0
- package/std/math/ilogb.zig +1 -1
- package/std/math/isfinite.zig +1 -1
- package/std/math/isinf.zig +1 -1
- package/std/math/isnan.zig +1 -2
- package/std/math/isnormal.zig +2 -2
- package/std/math/iszero.zig +2 -2
- package/std/math/ldexp.zig +2 -2
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +1 -2
- package/std/math/nextafter.zig +3 -4
- package/std/math/pow.zig +1 -1
- package/std/math/powi.zig +2 -3
- package/std/math/signbit.zig +0 -1
- package/std/math.zig +21 -26
- package/std/mem/Allocator.zig +5 -9
- package/std/mem.zig +52 -75
- package/std/meta/trailer_flags.zig +1 -1
- package/std/meta.zig +4 -36
- package/std/multi_array_list.zig +24 -0
- package/std/os/emscripten.zig +7 -6
- package/std/os/linux/IoUring.zig +2 -0
- package/std/os/linux/alpha.zig +358 -0
- package/std/os/linux/arm.zig +0 -26
- package/std/os/linux/bpf.zig +6 -0
- package/std/os/linux/ioctl.zig +3 -2
- package/std/os/linux/syscalls.zig +528 -1
- package/std/os/linux/tls.zig +12 -1
- package/std/os/linux/x86.zig +2 -2
- package/std/os/linux/xtensa.zig +171 -0
- package/std/os/linux.zig +794 -52
- package/std/os/plan9.zig +1 -1
- package/std/os/uefi/hii.zig +1 -1
- package/std/os/uefi/tables/boot_services.zig +9 -8
- package/std/os/uefi/tables/runtime_services.zig +1 -1
- package/std/os/windows.zig +130 -1
- package/std/os.zig +36 -0
- package/std/pie.zig +21 -0
- package/std/posix.zig +2 -2
- package/std/process/Child.zig +20 -0
- package/std/process/Environ.zig +28 -4
- package/std/process.zig +13 -5
- package/std/simd.zig +4 -21
- package/std/start.zig +45 -12
- package/std/std.zig +8 -1
- package/std/tar/Writer.zig +39 -33
- package/std/tar.zig +8 -4
- package/std/testing.zig +68 -15
- package/std/unicode.zig +13 -8
- package/std/zig/Ast/Render.zig +6 -30
- package/std/zig/Ast.zig +12 -37
- package/std/zig/AstGen.zig +174 -258
- package/std/zig/AstRlAnnotate.zig +1 -11
- package/std/zig/AstSmith.zig +5 -11
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/LibCDirs.zig +14 -7
- package/std/zig/LibCInstallation.zig +49 -14
- package/std/zig/Parse.zig +11 -76
- package/std/zig/PkgConfig.zig +146 -0
- package/std/zig/TokenSmith.zig +0 -6
- package/std/zig/WindowsSdk.zig +18 -18
- package/std/zig/Zir.zig +15 -69
- package/std/zig/ZonGen.zig +19 -27
- package/std/zig/llvm/Builder.zig +39 -33
- package/std/zig/llvm/bitcode_writer.zig +3 -3
- package/std/zig/llvm/ir.zig +8 -8
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/linux.zig +4 -0
- package/std/zig/system/loongarch.zig +25 -9
- package/std/zig/system/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +18 -25
- package/std/zig/target.zig +3 -5
- package/std/zig/tokenizer.zig +4 -43
- package/std/zig.zig +110 -22
- package/std/zip.zig +5 -5
- package/std/zon/Serializer.zig +6 -2
- package/std/zon/parse.zig +1 -1
- package/zig.h +24 -2
- package/compiler/build_runner.zig +0 -1857
- package/compiler_rt/long_double.zig +0 -37
- package/include/amxbf16transposeintrin.h +0 -94
- package/include/amxcomplextransposeintrin.h +0 -303
- package/include/amxfp16transposeintrin.h +0 -94
- package/include/amxmovrstransposeintrin.h +0 -200
- package/include/amxtf32transposeintrin.h +0 -105
- package/include/amxtransposeintrin.h +0 -248
- package/libc/include/arm-netbsd-eabi/machine/frame.h +0 -130
- package/libc/include/generic-netbsd/powerpc/bswap.h +0 -8
- package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
- package/libc/include/mips-netbsd-eabi/machine/psl.h +0 -3
- package/libc/include/mips-netbsd-eabi/machine/reloc.h +0 -3
- package/libc/include/mips-netbsd-eabi/machine/trap.h +0 -3
- package/libc/include/mips64el-openbsd-none/loongson/hibernate.h +0 -33
- package/libc/include/mips64el-openbsd-none/loongson/hibernate_var.h +0 -39
- package/libc/include/mips64el-openbsd-none/machine/hibernate.h +0 -33
- package/libc/include/mips64el-openbsd-none/machine/hibernate_var.h +0 -39
- package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
- package/libc/mingw/math/lrintl.c +0 -18
- package/libc/mingw/math/rintl.c +0 -16
- package/libc/mingw/winpthreads/spinlock.c +0 -82
- package/libc/musl/src/linux/tee.c +0 -8
- package/libc/musl/src/math/i386/lrintl.c +0 -8
- package/libc/musl/src/math/i386/rintl.c +0 -7
- package/libc/musl/src/math/lrintl.c +0 -36
- package/libc/musl/src/math/rintl.c +0 -29
- package/libc/musl/src/math/s390x/rintl.c +0 -15
- package/libc/musl/src/math/x32/lrintl.s +0 -7
- package/libc/musl/src/math/x32/rintl.s +0 -6
- package/libc/musl/src/math/x86_64/lrintl.c +0 -8
- package/libc/musl/src/math/x86_64/rintl.c +0 -7
- package/libc/musl/src/string/strdup.c +0 -10
- package/libc/musl/src/string/strndup.c +0 -12
- package/libc/musl/src/string/wcsdup.c +0 -10
- package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
- package/libc/musl/src/thread/pthread_spin_init.c +0 -6
- package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
- package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
- package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
- package/libc/musl/src/unistd/dup2.c +0 -20
- package/libc/musl/src/unistd/dup3.c +0 -26
- package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/ansi.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/aout_machdep.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/asm.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/bswap.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/cdefs.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/cpu.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/disklabel.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/elf_machdep.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/endian.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/endian_machdep.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/fenv.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/float.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/fpu.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/frame.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/ieee.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/ieeefp.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/int_const.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/int_fmtio.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/int_limits.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/int_mwgwtypes.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/int_types.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/intr.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/kcore.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/limits.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/lock.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/math.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/mcontext.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/mutex.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/param.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/pcb.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/pmap.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/proc.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/profile.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/psl.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/pte.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/ptrace.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/reg.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/reloc.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/rwlock.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/setjmp.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/signal.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/sljit_machdep.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/trap.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/types.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/vmparam.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/evbppc/wchar_limits.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/machine/fpu.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/machine/intr.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/ansi.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/aout_machdep.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/cdefs.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/elf_machdep.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/endian.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/endian_machdep.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/float.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/fpu.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/frame.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/ibm4xx/cpu.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/ibm4xx/spr.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/ibm4xx/tlb.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/ieeefp.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/int_const.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/int_fmtio.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/int_limits.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/int_mwgwtypes.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/int_types.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/kcore.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/lock.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/math.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/oea/bat.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/oea/hid_601.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/oea/pte.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/oea/spr.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/oea/sr_601.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/oea/vmparam.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/param.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/pcb.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/proc.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/profile.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/pte.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/ptrace.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/reg.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/reloc.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/rwlock.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/setjmp.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/signal.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/sljit_machdep.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/spr.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/trap.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/types.h +0 -0
- /package/libc/include/{generic-netbsd → powerpc-netbsd-eabi}/powerpc/wchar_limits.h +0 -0
package/std/Build.zig
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const Build = @This();
|
|
2
|
+
|
|
2
3
|
const builtin = @import("builtin");
|
|
3
4
|
|
|
4
5
|
const std = @import("std.zig");
|
|
@@ -19,48 +20,23 @@ const ArrayList = std.ArrayList;
|
|
|
19
20
|
pub const Cache = @import("Build/Cache.zig");
|
|
20
21
|
pub const Step = @import("Build/Step.zig");
|
|
21
22
|
pub const Module = @import("Build/Module.zig");
|
|
22
|
-
pub const Watch = @import("Build/Watch.zig");
|
|
23
|
-
pub const Fuzz = @import("Build/Fuzz.zig");
|
|
24
|
-
pub const WebServer = @import("Build/WebServer.zig");
|
|
25
23
|
pub const abi = @import("Build/abi.zig");
|
|
24
|
+
/// The serialized output of configure phase ingested by make phase.
|
|
25
|
+
pub const Configuration = @import("Build/Configuration.zig");
|
|
26
26
|
|
|
27
27
|
/// Shared state among all Build instances.
|
|
28
28
|
graph: *Graph,
|
|
29
|
-
install_tls:
|
|
30
|
-
uninstall_tls:
|
|
29
|
+
install_tls: Step.TopLevel,
|
|
30
|
+
uninstall_tls: Step.TopLevel,
|
|
31
31
|
allocator: Allocator,
|
|
32
32
|
user_input_options: UserInputOptionsMap,
|
|
33
|
-
available_options_map:
|
|
34
|
-
available_options_list: std.array_list.Managed(AvailableOption),
|
|
35
|
-
verbose: bool,
|
|
36
|
-
verbose_link: bool,
|
|
37
|
-
verbose_cc: bool,
|
|
38
|
-
verbose_air: bool,
|
|
39
|
-
verbose_llvm_ir: ?[]const u8,
|
|
40
|
-
verbose_llvm_bc: ?[]const u8,
|
|
41
|
-
verbose_llvm_cpu_features: bool,
|
|
42
|
-
reference_trace: ?u32 = null,
|
|
33
|
+
available_options_map: std.array_hash_map.String(AvailableOption) = .empty,
|
|
43
34
|
invalid_user_input: bool,
|
|
44
35
|
default_step: *Step,
|
|
45
|
-
top_level_steps: std.StringArrayHashMapUnmanaged(*
|
|
46
|
-
install_prefix: []const u8,
|
|
47
|
-
dest_dir: ?[]const u8,
|
|
48
|
-
lib_dir: []const u8,
|
|
49
|
-
exe_dir: []const u8,
|
|
50
|
-
h_dir: []const u8,
|
|
51
|
-
install_path: []const u8,
|
|
52
|
-
sysroot: ?[]const u8 = null,
|
|
53
|
-
search_prefixes: ArrayList([]const u8),
|
|
54
|
-
libc_file: ?[]const u8 = null,
|
|
36
|
+
top_level_steps: std.StringArrayHashMapUnmanaged(*Step.TopLevel),
|
|
55
37
|
/// Path to the directory containing build.zig.
|
|
56
|
-
|
|
57
|
-
cache_root: Cache.Directory,
|
|
58
|
-
pkg_config_pkg_list: ?(PkgConfigError![]const PkgConfigPkg) = null,
|
|
59
|
-
args: ?[]const []const u8 = null,
|
|
38
|
+
root: Cache.Path,
|
|
60
39
|
debug_log_scopes: []const []const u8 = &.{},
|
|
61
|
-
debug_compile_errors: bool = false,
|
|
62
|
-
debug_incremental: bool = false,
|
|
63
|
-
debug_pkg_config: bool = false,
|
|
64
40
|
/// Number of stack frames captured when a `StackTrace` is recorded for debug purposes,
|
|
65
41
|
/// in particular at `Step` creation.
|
|
66
42
|
/// Set to 0 to disable stack collection.
|
|
@@ -76,12 +52,6 @@ enable_rosetta: bool = false,
|
|
|
76
52
|
enable_wasmtime: bool = false,
|
|
77
53
|
/// Use system Wine installation to run cross compiled Windows build artifacts.
|
|
78
54
|
enable_wine: bool = false,
|
|
79
|
-
/// After following the steps in https://codeberg.org/ziglang/infra/src/branch/master/libc-update/glibc.md,
|
|
80
|
-
/// this will be the directory $glibc-build-dir/install/glibcs
|
|
81
|
-
/// Given the example of the aarch64 target, this is the directory
|
|
82
|
-
/// that contains the path `aarch64-linux-gnu/lib/ld-linux-aarch64.so.1`.
|
|
83
|
-
/// Also works for dynamic musl.
|
|
84
|
-
libc_runtimes_dir: ?[]const u8 = null,
|
|
85
55
|
|
|
86
56
|
dep_prefix: []const u8 = "",
|
|
87
57
|
|
|
@@ -94,10 +64,6 @@ pkg_hash: []const u8,
|
|
|
94
64
|
/// A mapping from dependency names to package hashes.
|
|
95
65
|
available_deps: AvailableDeps,
|
|
96
66
|
|
|
97
|
-
release_mode: ReleaseMode,
|
|
98
|
-
|
|
99
|
-
build_id: ?std.zig.BuildId = null,
|
|
100
|
-
|
|
101
67
|
pub const ReleaseMode = enum {
|
|
102
68
|
off,
|
|
103
69
|
any,
|
|
@@ -112,33 +78,145 @@ pub const Graph = struct {
|
|
|
112
78
|
io: Io,
|
|
113
79
|
/// Process lifetime.
|
|
114
80
|
arena: Allocator,
|
|
115
|
-
|
|
81
|
+
system_integration_options: std.StringArrayHashMapUnmanaged(SystemLibraryMode) = .empty,
|
|
116
82
|
system_package_mode: bool = false,
|
|
117
|
-
|
|
118
|
-
cache: Cache,
|
|
119
|
-
zig_exe: [:0]const u8,
|
|
83
|
+
zig_exe: []const u8,
|
|
120
84
|
environ_map: process.Environ.Map,
|
|
121
|
-
global_cache_root: Cache.Directory,
|
|
122
|
-
zig_lib_directory: Cache.Directory,
|
|
123
85
|
needed_lazy_dependencies: std.StringArrayHashMapUnmanaged(void) = .empty,
|
|
124
86
|
/// Information about the native target. Computed before build() is invoked.
|
|
125
87
|
host: ResolvedTarget,
|
|
126
|
-
incremental: ?bool = null,
|
|
127
|
-
random_seed: u32 = 0,
|
|
128
88
|
dependency_cache: InitializedDepMap = .empty,
|
|
129
89
|
allow_so_scripts: ?bool = null,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
max_jobs: ?u32 = null,
|
|
133
|
-
time_report: bool,
|
|
90
|
+
time_report: bool = false,
|
|
91
|
+
verbose: bool = false,
|
|
134
92
|
/// Similar to the `Io.Terminal.Mode` returned by `Io.lockStderr`, but also
|
|
135
93
|
/// respects the '--color' flag.
|
|
136
94
|
stderr_mode: ?Io.Terminal.Mode = null,
|
|
95
|
+
release_mode: ReleaseMode = .off,
|
|
96
|
+
|
|
97
|
+
/// Indexes correspond to `Configuration.GeneratedFileIndex`.
|
|
98
|
+
generated_files: std.ArrayList(*Step),
|
|
99
|
+
wip_configuration: Configuration.Wip,
|
|
100
|
+
|
|
101
|
+
cache_poison: CachePoison = .pure,
|
|
102
|
+
/// Observing this data causes cache poisoning. See `CachePoison`.
|
|
103
|
+
search_prefixes: std.ArrayList([]const u8) = .empty,
|
|
104
|
+
|
|
105
|
+
/// If the cache is poisoned means that the **configure logic** had side
|
|
106
|
+
/// effects, or otherwise did something that could not be tracked by the
|
|
107
|
+
/// cache system.
|
|
108
|
+
///
|
|
109
|
+
/// This is not to be confused with whether individual steps may have side
|
|
110
|
+
/// effects when being evaluated; it has to do with the logic inside build.zig
|
|
111
|
+
/// itself. For example, a `Run` step that prints "hello world" has side
|
|
112
|
+
/// effects *at make time* and therefore does not warrant setting this flag,
|
|
113
|
+
/// while checking for the existence of `scdoc` *at configure time* in order to
|
|
114
|
+
/// choose the default value for a configuration option does.
|
|
115
|
+
///
|
|
116
|
+
/// Keeping the cache pure will make `zig build` faster, bypassing the
|
|
117
|
+
/// configurer process when identical configuration would be generated.
|
|
118
|
+
///
|
|
119
|
+
/// When the cache is poisoned, the maker process will delete the build
|
|
120
|
+
/// configuration file upon ingesting it since it cannot be reused.
|
|
121
|
+
pub const CachePoison = enum {
|
|
122
|
+
pure,
|
|
123
|
+
poisoned,
|
|
124
|
+
/// Indicates the user would like to see a stack trace if the cache
|
|
125
|
+
/// would become poisoned.
|
|
126
|
+
disallowed,
|
|
127
|
+
/// Indicates the user would like to ignore the cache being poisoned
|
|
128
|
+
/// and cache anyway, opting into cache hits on stale configuration.
|
|
129
|
+
ignored,
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
pub fn addGeneratedFile(graph: *Graph, owner: *Step) Configuration.GeneratedFileIndex {
|
|
133
|
+
graph.generated_files.append(graph.arena, owner) catch @panic("OOM");
|
|
134
|
+
return @enumFromInt(graph.generated_files.items.len - 1);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
pub fn dupeString(graph: *const Graph, bytes: []const u8) []const u8 {
|
|
138
|
+
return graph.arena.dupe(u8, bytes) catch @panic("OOM");
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
pub fn dupePath(graph: *const Graph, bytes: []const u8) []const u8 {
|
|
142
|
+
return dupePathInner(graph.arena, bytes);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
fn dupePathInner(arena: Allocator, bytes: []const u8) []const u8 {
|
|
146
|
+
if (builtin.os.tag != .windows) return arena.dupe(u8, bytes) catch @panic("OOM");
|
|
147
|
+
const the_copy = arena.dupe(u8, bytes) catch @panic("OOM");
|
|
148
|
+
mem.replaceScalar(u8, the_copy, '/', '\\');
|
|
149
|
+
return the_copy;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
pub fn dupeStrings(graph: *const Graph, strings: []const []const u8) []const []const u8 {
|
|
153
|
+
const array = graph.alloc([]const u8, strings.len);
|
|
154
|
+
for (array, strings) |*dest, source| dest.* = dupeString(graph, source);
|
|
155
|
+
return array;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/// An absolute path or a path relative to the current working directory of
|
|
159
|
+
/// the build runner process.
|
|
160
|
+
///
|
|
161
|
+
/// Use of this function indicates a dependency on the host system.
|
|
162
|
+
pub fn cwdRelativePath(graph: *Graph, sub_path: []const u8) LazyPath {
|
|
163
|
+
return @This().path(graph, .cwd, sub_path);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/// A path whose components and contents are known at some point during
|
|
167
|
+
/// `Step` resolution, relative to the provided base directory.
|
|
168
|
+
pub fn path(graph: *Graph, base: Configuration.Path.Base, sub_path: []const u8) LazyPath {
|
|
169
|
+
return .{ .relative = .{
|
|
170
|
+
.base = base,
|
|
171
|
+
.sub_path = @This().dupePath(graph, sub_path),
|
|
172
|
+
} };
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/// Allocates using the global process arena, failing the build on
|
|
176
|
+
/// allocation failure.
|
|
177
|
+
pub fn alloc(graph: *const Graph, comptime T: type, n: usize) []T {
|
|
178
|
+
return graph.arena.allocAdvancedWithRetAddr(T, null, n, @returnAddress()) catch @panic("OOM");
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/// Allocates using the global process arena, failing the build on
|
|
182
|
+
/// allocation failure.
|
|
183
|
+
pub fn create(graph: *const Graph, comptime T: type) *T {
|
|
184
|
+
return @ptrCast(graph.arena.allocBytesAligned(.of(T), @sizeOf(T), @returnAddress()) catch @panic("OOM"));
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
pub fn addBytesList(graph: *Graph, bytes_list: []const []const u8) []const Configuration.Bytes {
|
|
188
|
+
const result = graph.alloc(Configuration.Bytes, bytes_list.len);
|
|
189
|
+
for (result, bytes_list) |*d, s| d.* = addBytes(graph, s);
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
pub fn addBytes(graph: *Graph, bytes: []const u8) Configuration.Bytes {
|
|
194
|
+
const wc = &graph.wip_configuration;
|
|
195
|
+
return wc.addBytes(bytes) catch @panic("OOM");
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
pub fn addString(graph: *Graph, bytes: []const u8) Configuration.String {
|
|
199
|
+
const wc = &graph.wip_configuration;
|
|
200
|
+
return wc.addString(bytes) catch @panic("OOM");
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/// Indicates that the **configure logic** had side effects, or otherwise
|
|
204
|
+
/// did something that could not be tracked by the cache system.
|
|
205
|
+
///
|
|
206
|
+
/// See `CachePoison` documentation for more details.
|
|
207
|
+
pub fn poisonCache(graph: *Graph) void {
|
|
208
|
+
switch (graph.cache_poison) {
|
|
209
|
+
.pure => graph.cache_poison = .poisoned,
|
|
210
|
+
.poisoned => return,
|
|
211
|
+
.disallowed => @panic("cache poisoned"),
|
|
212
|
+
.ignored => log.warn("ignoring cache poisoning", .{}),
|
|
213
|
+
}
|
|
214
|
+
}
|
|
137
215
|
};
|
|
138
216
|
|
|
139
217
|
const AvailableDeps = []const struct { []const u8, []const u8 };
|
|
140
218
|
|
|
141
|
-
const SystemLibraryMode = enum {
|
|
219
|
+
pub const SystemLibraryMode = enum {
|
|
142
220
|
/// User asked for the library to be disabled.
|
|
143
221
|
/// The build runner has not confirmed whether the setting is recognized yet.
|
|
144
222
|
user_disabled,
|
|
@@ -187,31 +265,11 @@ const InitializedDepContext = struct {
|
|
|
187
265
|
}
|
|
188
266
|
};
|
|
189
267
|
|
|
190
|
-
pub const RunError = error{
|
|
191
|
-
ReadFailure,
|
|
192
|
-
ExitCodeFailure,
|
|
193
|
-
ProcessTerminated,
|
|
194
|
-
ExecNotSupported,
|
|
195
|
-
} || std.process.SpawnError;
|
|
196
|
-
|
|
197
|
-
pub const PkgConfigError = error{
|
|
198
|
-
PkgConfigCrashed,
|
|
199
|
-
PkgConfigFailed,
|
|
200
|
-
PkgConfigNotInstalled,
|
|
201
|
-
PkgConfigInvalidOutput,
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
pub const PkgConfigPkg = struct {
|
|
205
|
-
name: []const u8,
|
|
206
|
-
desc: []const u8,
|
|
207
|
-
};
|
|
208
|
-
|
|
209
268
|
const UserInputOptionsMap = StringHashMap(UserInputOption);
|
|
210
|
-
const AvailableOptionsMap = StringHashMap(AvailableOption);
|
|
211
269
|
|
|
212
270
|
const AvailableOption = struct {
|
|
213
271
|
name: []const u8,
|
|
214
|
-
type_id:
|
|
272
|
+
type_id: Configuration.AvailableOption.Type,
|
|
215
273
|
description: []const u8,
|
|
216
274
|
/// If the `type_id` is `enum` or `enum_list` this provides the list of enum options
|
|
217
275
|
enum_options: ?[]const []const u8,
|
|
@@ -232,36 +290,9 @@ const UserValue = union(enum) {
|
|
|
232
290
|
lazy_path_list: std.array_list.Managed(LazyPath),
|
|
233
291
|
};
|
|
234
292
|
|
|
235
|
-
const TypeId = enum {
|
|
236
|
-
bool,
|
|
237
|
-
int,
|
|
238
|
-
float,
|
|
239
|
-
@"enum",
|
|
240
|
-
enum_list,
|
|
241
|
-
string,
|
|
242
|
-
list,
|
|
243
|
-
build_id,
|
|
244
|
-
lazy_path,
|
|
245
|
-
lazy_path_list,
|
|
246
|
-
};
|
|
247
|
-
|
|
248
|
-
const TopLevelStep = struct {
|
|
249
|
-
pub const base_id: Step.Id = .top_level;
|
|
250
|
-
|
|
251
|
-
step: Step,
|
|
252
|
-
description: []const u8,
|
|
253
|
-
};
|
|
254
|
-
|
|
255
|
-
pub const DirList = struct {
|
|
256
|
-
lib_dir: ?[]const u8 = null,
|
|
257
|
-
exe_dir: ?[]const u8 = null,
|
|
258
|
-
include_dir: ?[]const u8 = null,
|
|
259
|
-
};
|
|
260
|
-
|
|
261
293
|
pub fn create(
|
|
262
294
|
graph: *Graph,
|
|
263
|
-
|
|
264
|
-
cache_root: Cache.Directory,
|
|
295
|
+
root: Cache.Path,
|
|
265
296
|
available_deps: AvailableDeps,
|
|
266
297
|
) error{OutOfMemory}!*Build {
|
|
267
298
|
const arena = graph.arena;
|
|
@@ -269,31 +300,15 @@ pub fn create(
|
|
|
269
300
|
const b = try arena.create(Build);
|
|
270
301
|
b.* = .{
|
|
271
302
|
.graph = graph,
|
|
272
|
-
.
|
|
273
|
-
.cache_root = cache_root,
|
|
274
|
-
.verbose = false,
|
|
275
|
-
.verbose_link = false,
|
|
276
|
-
.verbose_cc = false,
|
|
277
|
-
.verbose_air = false,
|
|
278
|
-
.verbose_llvm_ir = null,
|
|
279
|
-
.verbose_llvm_bc = null,
|
|
280
|
-
.verbose_llvm_cpu_features = false,
|
|
303
|
+
.root = root,
|
|
281
304
|
.invalid_user_input = false,
|
|
282
305
|
.allocator = arena,
|
|
283
306
|
.user_input_options = UserInputOptionsMap.init(arena),
|
|
284
|
-
.available_options_map = AvailableOptionsMap.init(arena),
|
|
285
|
-
.available_options_list = std.array_list.Managed(AvailableOption).init(arena),
|
|
286
307
|
.top_level_steps = .{},
|
|
287
308
|
.default_step = undefined,
|
|
288
|
-
.search_prefixes = .empty,
|
|
289
|
-
.install_prefix = undefined,
|
|
290
|
-
.lib_dir = undefined,
|
|
291
|
-
.exe_dir = undefined,
|
|
292
|
-
.h_dir = undefined,
|
|
293
|
-
.dest_dir = graph.environ_map.get("DESTDIR"),
|
|
294
309
|
.install_tls = .{
|
|
295
310
|
.step = .init(.{
|
|
296
|
-
.
|
|
311
|
+
.tag = .top_level,
|
|
297
312
|
.name = "install",
|
|
298
313
|
.owner = b,
|
|
299
314
|
}),
|
|
@@ -301,21 +316,17 @@ pub fn create(
|
|
|
301
316
|
},
|
|
302
317
|
.uninstall_tls = .{
|
|
303
318
|
.step = .init(.{
|
|
304
|
-
.
|
|
319
|
+
.tag = .top_level,
|
|
305
320
|
.name = "uninstall",
|
|
306
321
|
.owner = b,
|
|
307
|
-
.makeFn = makeUninstall,
|
|
308
322
|
}),
|
|
309
323
|
.description = "Remove build artifacts from prefix path",
|
|
310
324
|
},
|
|
311
|
-
.install_path = undefined,
|
|
312
|
-
.args = null,
|
|
313
325
|
.modules = .empty,
|
|
314
326
|
.named_writefiles = .empty,
|
|
315
327
|
.named_lazy_paths = .empty,
|
|
316
328
|
.pkg_hash = "",
|
|
317
329
|
.available_deps = available_deps,
|
|
318
|
-
.release_mode = .off,
|
|
319
330
|
};
|
|
320
331
|
try b.top_level_steps.put(arena, b.install_tls.step.name, &b.install_tls);
|
|
321
332
|
try b.top_level_steps.put(arena, b.uninstall_tls.step.name, &b.uninstall_tls);
|
|
@@ -326,32 +337,20 @@ pub fn create(
|
|
|
326
337
|
fn createChild(
|
|
327
338
|
parent: *Build,
|
|
328
339
|
dep_name: []const u8,
|
|
329
|
-
|
|
330
|
-
pkg_hash: []const u8,
|
|
331
|
-
pkg_deps: AvailableDeps,
|
|
332
|
-
user_input_options: UserInputOptionsMap,
|
|
333
|
-
) error{OutOfMemory}!*Build {
|
|
334
|
-
const child = try createChildOnly(parent, dep_name, build_root, pkg_hash, pkg_deps, user_input_options);
|
|
335
|
-
try determineAndApplyInstallPrefix(child);
|
|
336
|
-
return child;
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
fn createChildOnly(
|
|
340
|
-
parent: *Build,
|
|
341
|
-
dep_name: []const u8,
|
|
342
|
-
build_root: Cache.Directory,
|
|
340
|
+
root: Cache.Path,
|
|
343
341
|
pkg_hash: []const u8,
|
|
344
342
|
pkg_deps: AvailableDeps,
|
|
345
343
|
user_input_options: UserInputOptionsMap,
|
|
346
344
|
) error{OutOfMemory}!*Build {
|
|
347
|
-
const
|
|
348
|
-
const child = try
|
|
345
|
+
const arena = parent.graph.arena;
|
|
346
|
+
const child = try arena.create(Build);
|
|
349
347
|
child.* = .{
|
|
350
348
|
.graph = parent.graph,
|
|
351
|
-
.
|
|
349
|
+
.root = root,
|
|
350
|
+
.allocator = arena,
|
|
352
351
|
.install_tls = .{
|
|
353
352
|
.step = .init(.{
|
|
354
|
-
.
|
|
353
|
+
.tag = .top_level,
|
|
355
354
|
.name = "install",
|
|
356
355
|
.owner = child,
|
|
357
356
|
}),
|
|
@@ -359,58 +358,31 @@ fn createChildOnly(
|
|
|
359
358
|
},
|
|
360
359
|
.uninstall_tls = .{
|
|
361
360
|
.step = .init(.{
|
|
362
|
-
.
|
|
361
|
+
.tag = .top_level,
|
|
363
362
|
.name = "uninstall",
|
|
364
363
|
.owner = child,
|
|
365
|
-
.makeFn = makeUninstall,
|
|
366
364
|
}),
|
|
367
365
|
.description = "Remove build artifacts from prefix path",
|
|
368
366
|
},
|
|
369
367
|
.user_input_options = user_input_options,
|
|
370
|
-
.available_options_map = AvailableOptionsMap.init(allocator),
|
|
371
|
-
.available_options_list = std.array_list.Managed(AvailableOption).init(allocator),
|
|
372
|
-
.verbose = parent.verbose,
|
|
373
|
-
.verbose_link = parent.verbose_link,
|
|
374
|
-
.verbose_cc = parent.verbose_cc,
|
|
375
|
-
.verbose_air = parent.verbose_air,
|
|
376
|
-
.verbose_llvm_ir = parent.verbose_llvm_ir,
|
|
377
|
-
.verbose_llvm_bc = parent.verbose_llvm_bc,
|
|
378
|
-
.verbose_llvm_cpu_features = parent.verbose_llvm_cpu_features,
|
|
379
|
-
.reference_trace = parent.reference_trace,
|
|
380
368
|
.invalid_user_input = false,
|
|
381
369
|
.default_step = undefined,
|
|
382
370
|
.top_level_steps = .{},
|
|
383
|
-
.install_prefix = undefined,
|
|
384
|
-
.dest_dir = parent.dest_dir,
|
|
385
|
-
.lib_dir = parent.lib_dir,
|
|
386
|
-
.exe_dir = parent.exe_dir,
|
|
387
|
-
.h_dir = parent.h_dir,
|
|
388
|
-
.install_path = parent.install_path,
|
|
389
|
-
.sysroot = parent.sysroot,
|
|
390
|
-
.search_prefixes = parent.search_prefixes,
|
|
391
|
-
.libc_file = parent.libc_file,
|
|
392
|
-
.build_root = build_root,
|
|
393
|
-
.cache_root = parent.cache_root,
|
|
394
371
|
.debug_log_scopes = parent.debug_log_scopes,
|
|
395
|
-
.debug_compile_errors = parent.debug_compile_errors,
|
|
396
|
-
.debug_incremental = parent.debug_incremental,
|
|
397
|
-
.debug_pkg_config = parent.debug_pkg_config,
|
|
398
372
|
.enable_darling = parent.enable_darling,
|
|
399
373
|
.enable_qemu = parent.enable_qemu,
|
|
400
374
|
.enable_rosetta = parent.enable_rosetta,
|
|
401
375
|
.enable_wasmtime = parent.enable_wasmtime,
|
|
402
376
|
.enable_wine = parent.enable_wine,
|
|
403
|
-
.libc_runtimes_dir = parent.libc_runtimes_dir,
|
|
404
377
|
.dep_prefix = parent.fmt("{s}{s}.", .{ parent.dep_prefix, dep_name }),
|
|
405
378
|
.modules = .empty,
|
|
406
379
|
.named_writefiles = .empty,
|
|
407
380
|
.named_lazy_paths = .empty,
|
|
408
381
|
.pkg_hash = pkg_hash,
|
|
409
382
|
.available_deps = pkg_deps,
|
|
410
|
-
.release_mode = parent.release_mode,
|
|
411
383
|
};
|
|
412
|
-
try child.top_level_steps.put(
|
|
413
|
-
try child.top_level_steps.put(
|
|
384
|
+
try child.top_level_steps.put(arena, child.install_tls.step.name, &child.install_tls);
|
|
385
|
+
try child.top_level_steps.put(arena, child.uninstall_tls.step.name, &child.uninstall_tls);
|
|
414
386
|
child.default_step = &child.install_tls.step;
|
|
415
387
|
return child;
|
|
416
388
|
}
|
|
@@ -624,13 +596,17 @@ const OrderedUserValue = union(enum) {
|
|
|
624
596
|
hasher.update(sp.sub_path);
|
|
625
597
|
},
|
|
626
598
|
.generated => |gen| {
|
|
627
|
-
hasher.update(gen.
|
|
628
|
-
hasher.update(
|
|
599
|
+
hasher.update(@ptrCast(&gen.index));
|
|
600
|
+
hasher.update(@ptrCast(&gen.up));
|
|
629
601
|
hasher.update(gen.sub_path);
|
|
630
602
|
},
|
|
631
603
|
.cwd_relative => |rel_path| {
|
|
632
604
|
hasher.update(rel_path);
|
|
633
605
|
},
|
|
606
|
+
.relative => |r| {
|
|
607
|
+
hasher.update(@ptrCast(&r.base));
|
|
608
|
+
hasher.update(@ptrCast(&r.sub_path));
|
|
609
|
+
},
|
|
634
610
|
.dependency => |dep| {
|
|
635
611
|
hasher.update(dep.dependency.builder.pkg_hash);
|
|
636
612
|
hasher.update(dep.sub_path);
|
|
@@ -702,59 +678,6 @@ fn hashUserInputOptionsMap(allocator: Allocator, user_input_options: UserInputOp
|
|
|
702
678
|
user_option.hash(hasher);
|
|
703
679
|
}
|
|
704
680
|
|
|
705
|
-
fn determineAndApplyInstallPrefix(b: *Build) error{OutOfMemory}!void {
|
|
706
|
-
// Create an installation directory local to this package. This will be used when
|
|
707
|
-
// dependant packages require a standard prefix, such as include directories for C headers.
|
|
708
|
-
var hash = b.graph.cache.hash;
|
|
709
|
-
// Random bytes to make unique. Refresh this with new random bytes when
|
|
710
|
-
// implementation is modified in a non-backwards-compatible way.
|
|
711
|
-
hash.add(@as(u32, 0xd8cb0055));
|
|
712
|
-
hash.addBytes(b.dep_prefix);
|
|
713
|
-
|
|
714
|
-
var wyhash = std.hash.Wyhash.init(0);
|
|
715
|
-
hashUserInputOptionsMap(b.allocator, b.user_input_options, &wyhash);
|
|
716
|
-
hash.add(wyhash.final());
|
|
717
|
-
|
|
718
|
-
const digest = hash.final();
|
|
719
|
-
const install_prefix = try b.cache_root.join(b.allocator, &.{ "i", &digest });
|
|
720
|
-
b.resolveInstallPrefix(install_prefix, .{});
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
/// This function is intended to be called by lib/build_runner.zig, not a build.zig file.
|
|
724
|
-
pub fn resolveInstallPrefix(b: *Build, install_prefix: ?[]const u8, dir_list: DirList) void {
|
|
725
|
-
if (b.dest_dir) |dest_dir| {
|
|
726
|
-
b.install_prefix = install_prefix orelse "/usr";
|
|
727
|
-
b.install_path = b.pathJoin(&.{ dest_dir, b.install_prefix });
|
|
728
|
-
} else {
|
|
729
|
-
b.install_prefix = install_prefix orelse
|
|
730
|
-
(b.build_root.join(b.allocator, &.{"zig-out"}) catch @panic("unhandled error"));
|
|
731
|
-
b.install_path = b.install_prefix;
|
|
732
|
-
}
|
|
733
|
-
|
|
734
|
-
var lib_list = [_][]const u8{ b.install_path, "lib" };
|
|
735
|
-
var exe_list = [_][]const u8{ b.install_path, "bin" };
|
|
736
|
-
var h_list = [_][]const u8{ b.install_path, "include" };
|
|
737
|
-
|
|
738
|
-
if (dir_list.lib_dir) |dir| {
|
|
739
|
-
if (fs.path.isAbsolute(dir)) lib_list[0] = b.dest_dir orelse "";
|
|
740
|
-
lib_list[1] = dir;
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
if (dir_list.exe_dir) |dir| {
|
|
744
|
-
if (fs.path.isAbsolute(dir)) exe_list[0] = b.dest_dir orelse "";
|
|
745
|
-
exe_list[1] = dir;
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
if (dir_list.include_dir) |dir| {
|
|
749
|
-
if (fs.path.isAbsolute(dir)) h_list[0] = b.dest_dir orelse "";
|
|
750
|
-
h_list[1] = dir;
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
b.lib_dir = b.pathJoin(&lib_list);
|
|
754
|
-
b.exe_dir = b.pathJoin(&exe_list);
|
|
755
|
-
b.h_dir = b.pathJoin(&h_list);
|
|
756
|
-
}
|
|
757
|
-
|
|
758
681
|
/// Create a set of key-value pairs that can be converted into a Zig source
|
|
759
682
|
/// file and then inserted into a Zig compilation's module table for importing.
|
|
760
683
|
/// In other words, this provides a way to expose build.zig values to Zig
|
|
@@ -769,7 +692,7 @@ pub const ExecutableOptions = struct {
|
|
|
769
692
|
root_module: *Module,
|
|
770
693
|
version: ?std.SemanticVersion = null,
|
|
771
694
|
linkage: ?std.builtin.LinkMode = null,
|
|
772
|
-
max_rss:
|
|
695
|
+
max_rss: u64 = 0,
|
|
773
696
|
use_llvm: ?bool = null,
|
|
774
697
|
use_lld: ?bool = null,
|
|
775
698
|
zig_lib_dir: ?LazyPath = null,
|
|
@@ -799,7 +722,7 @@ pub fn addExecutable(b: *Build, options: ExecutableOptions) *Step.Compile {
|
|
|
799
722
|
pub const ObjectOptions = struct {
|
|
800
723
|
name: []const u8,
|
|
801
724
|
root_module: *Module,
|
|
802
|
-
max_rss:
|
|
725
|
+
max_rss: u64 = 0,
|
|
803
726
|
use_llvm: ?bool = null,
|
|
804
727
|
use_lld: ?bool = null,
|
|
805
728
|
zig_lib_dir: ?LazyPath = null,
|
|
@@ -822,7 +745,7 @@ pub const LibraryOptions = struct {
|
|
|
822
745
|
name: []const u8,
|
|
823
746
|
root_module: *Module,
|
|
824
747
|
version: ?std.SemanticVersion = null,
|
|
825
|
-
max_rss:
|
|
748
|
+
max_rss: u64 = 0,
|
|
826
749
|
use_llvm: ?bool = null,
|
|
827
750
|
use_lld: ?bool = null,
|
|
828
751
|
zig_lib_dir: ?LazyPath = null,
|
|
@@ -855,7 +778,7 @@ pub fn addLibrary(b: *Build, options: LibraryOptions) *Step.Compile {
|
|
|
855
778
|
pub const TestOptions = struct {
|
|
856
779
|
name: []const u8 = "test",
|
|
857
780
|
root_module: *Module,
|
|
858
|
-
max_rss:
|
|
781
|
+
max_rss: u64 = 0,
|
|
859
782
|
filters: []const []const u8 = &.{},
|
|
860
783
|
test_runner: ?Step.Compile.TestRunner = null,
|
|
861
784
|
use_llvm: ?bool = null,
|
|
@@ -896,7 +819,7 @@ pub const AssemblyOptions = struct {
|
|
|
896
819
|
/// `host` field of the package's `Build` instance.
|
|
897
820
|
target: ResolvedTarget,
|
|
898
821
|
optimize: std.builtin.OptimizeMode,
|
|
899
|
-
max_rss:
|
|
822
|
+
max_rss: u64 = 0,
|
|
900
823
|
zig_lib_dir: ?LazyPath = null,
|
|
901
824
|
};
|
|
902
825
|
|
|
@@ -904,8 +827,10 @@ pub const AssemblyOptions = struct {
|
|
|
904
827
|
/// it available to other packages which depend on this one.
|
|
905
828
|
/// `createModule` can be used instead to create a private module.
|
|
906
829
|
pub fn addModule(b: *Build, name: []const u8, options: Module.CreateOptions) *Module {
|
|
830
|
+
const graph = b.graph;
|
|
831
|
+
const arena = graph.arena;
|
|
907
832
|
const module = Module.create(b, options);
|
|
908
|
-
b.modules.put(
|
|
833
|
+
b.modules.put(arena, graph.dupeString(name), module) catch @panic("OOM");
|
|
909
834
|
return module;
|
|
910
835
|
}
|
|
911
836
|
|
|
@@ -916,11 +841,23 @@ pub fn createModule(b: *Build, options: Module.CreateOptions) *Module {
|
|
|
916
841
|
return Module.create(b, options);
|
|
917
842
|
}
|
|
918
843
|
|
|
919
|
-
///
|
|
920
|
-
///
|
|
921
|
-
/// `
|
|
922
|
-
///
|
|
923
|
-
///
|
|
844
|
+
/// Creates a step that executes a process on the host system.
|
|
845
|
+
///
|
|
846
|
+
/// `argv` is one or more command line arguments passed to the executed
|
|
847
|
+
/// process. The first element is the name of the executable to run. More
|
|
848
|
+
/// command line arguments can be added with methods of `Step.Run`, such as:
|
|
849
|
+
/// * `Step.Run.addArgs`
|
|
850
|
+
/// * `Step.Run.addArtifactArg`
|
|
851
|
+
/// * `Step.Run.addFileArg`
|
|
852
|
+
/// * `Step.Run.addOutputFileArg`
|
|
853
|
+
///
|
|
854
|
+
/// This function introduces a system dependency, compromising reproducibility
|
|
855
|
+
/// and making it more difficult to set up one's computer in order to build the
|
|
856
|
+
/// project from source.
|
|
857
|
+
///
|
|
858
|
+
/// See also:
|
|
859
|
+
/// * `addRunArtifact`
|
|
860
|
+
/// * `addRunFile`
|
|
924
861
|
pub fn addSystemCommand(b: *Build, argv: []const []const u8) *Step.Run {
|
|
925
862
|
assert(argv.len >= 1);
|
|
926
863
|
const run_step = Step.Run.create(b, b.fmt("run {s}", .{argv[0]}));
|
|
@@ -930,16 +867,22 @@ pub fn addSystemCommand(b: *Build, argv: []const []const u8) *Step.Run {
|
|
|
930
867
|
|
|
931
868
|
/// Creates a `Step.Run` with an executable built with `addExecutable`.
|
|
932
869
|
/// Add command line arguments with methods of `Step.Run`.
|
|
870
|
+
///
|
|
871
|
+
/// It doesn't have to target the host. In some cases cross-compiled binaries
|
|
872
|
+
/// can even be executed.
|
|
873
|
+
///
|
|
874
|
+
/// This is declarative; it constructs a build step that may or may not be run
|
|
875
|
+
/// depending on the options provided by the user to the build command.
|
|
876
|
+
///
|
|
877
|
+
/// See also:
|
|
878
|
+
/// * `addSystemCommand`
|
|
879
|
+
/// * `addRunFile`
|
|
933
880
|
pub fn addRunArtifact(b: *Build, exe: *Step.Compile) *Step.Run {
|
|
934
|
-
// It doesn't have to be native. We catch that if you actually try to run it.
|
|
935
|
-
// Consider that this is declarative; the run step may not be run unless a user
|
|
936
|
-
// option is supplied.
|
|
937
|
-
|
|
938
881
|
// Avoid the common case of the step name looking like "run test test".
|
|
939
882
|
const step_name = if (exe.kind.isTest() and mem.eql(u8, exe.name, "test"))
|
|
940
|
-
b.fmt("run {
|
|
883
|
+
b.fmt("run {t}", .{exe.kind})
|
|
941
884
|
else
|
|
942
|
-
b.fmt("run {
|
|
885
|
+
b.fmt("run {t} {s}", .{ exe.kind, exe.name });
|
|
943
886
|
|
|
944
887
|
const run_step = Step.Run.create(b, step_name);
|
|
945
888
|
run_step.producer = exe;
|
|
@@ -994,6 +937,19 @@ pub fn addRunArtifact(b: *Build, exe: *Step.Compile) *Step.Run {
|
|
|
994
937
|
return run_step;
|
|
995
938
|
}
|
|
996
939
|
|
|
940
|
+
/// Creates a step that executes the provided file.
|
|
941
|
+
///
|
|
942
|
+
/// Add more command line arguments via methods of `Step.Run`.
|
|
943
|
+
///
|
|
944
|
+
/// See also:
|
|
945
|
+
/// * `addSystemCommand`
|
|
946
|
+
/// * `addRunArtifact`
|
|
947
|
+
pub fn addRunFile(b: *Build, executable: LazyPath) *Step.Run {
|
|
948
|
+
const run_step = Step.Run.create(b, b.fmt("run {f}", .{executable}));
|
|
949
|
+
run_step.addFileArg(executable);
|
|
950
|
+
return run_step;
|
|
951
|
+
}
|
|
952
|
+
|
|
997
953
|
/// Using the `values` provided, produces a C header file, possibly based on a
|
|
998
954
|
/// template input file (e.g. config.h.in).
|
|
999
955
|
/// When an input template file is provided, this function will fail the build
|
|
@@ -1013,36 +969,18 @@ pub fn addConfigHeader(
|
|
|
1013
969
|
return config_header_step;
|
|
1014
970
|
}
|
|
1015
971
|
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
return dupeInner(b.allocator, bytes);
|
|
1019
|
-
}
|
|
1020
|
-
|
|
1021
|
-
pub fn dupeInner(allocator: std.mem.Allocator, bytes: []const u8) []u8 {
|
|
1022
|
-
return allocator.dupe(u8, bytes) catch @panic("OOM");
|
|
972
|
+
pub fn dupe(b: *Build, bytes: []const u8) []const u8 {
|
|
973
|
+
return b.graph.dupeString(bytes);
|
|
1023
974
|
}
|
|
1024
975
|
|
|
1025
|
-
///
|
|
1026
|
-
pub fn dupeStrings(b: *Build, strings: []const []const u8) [][]u8 {
|
|
1027
|
-
|
|
1028
|
-
for (array, strings) |*dest, source| dest.* = b.dupe(source);
|
|
1029
|
-
return array;
|
|
976
|
+
/// Deprecated, call `Graph.dupeStrings` instead.
|
|
977
|
+
pub fn dupeStrings(b: *Build, strings: []const []const u8) []const []const u8 {
|
|
978
|
+
return b.graph.dupeStrings(strings);
|
|
1030
979
|
}
|
|
1031
980
|
|
|
1032
|
-
///
|
|
1033
|
-
pub fn dupePath(b: *Build, bytes: []const u8) []u8 {
|
|
1034
|
-
return
|
|
1035
|
-
}
|
|
1036
|
-
|
|
1037
|
-
fn dupePathInner(allocator: std.mem.Allocator, bytes: []const u8) []u8 {
|
|
1038
|
-
const the_copy = dupeInner(allocator, bytes);
|
|
1039
|
-
for (the_copy) |*byte| {
|
|
1040
|
-
switch (byte.*) {
|
|
1041
|
-
'/', '\\' => byte.* = fs.path.sep,
|
|
1042
|
-
else => {},
|
|
1043
|
-
}
|
|
1044
|
-
}
|
|
1045
|
-
return the_copy;
|
|
981
|
+
/// Deprecated, call `Graph.dupePath` instead.
|
|
982
|
+
pub fn dupePath(b: *Build, bytes: []const u8) []const u8 {
|
|
983
|
+
return b.graph.dupePath(bytes);
|
|
1046
984
|
}
|
|
1047
985
|
|
|
1048
986
|
pub fn addWriteFile(b: *Build, file_path: []const u8, data: []const u8) *Step.WriteFile {
|
|
@@ -1052,13 +990,15 @@ pub fn addWriteFile(b: *Build, file_path: []const u8, data: []const u8) *Step.Wr
|
|
|
1052
990
|
}
|
|
1053
991
|
|
|
1054
992
|
pub fn addNamedWriteFiles(b: *Build, name: []const u8) *Step.WriteFile {
|
|
993
|
+
const graph = b.graph;
|
|
1055
994
|
const wf = Step.WriteFile.create(b);
|
|
1056
|
-
b.named_writefiles.put(
|
|
995
|
+
b.named_writefiles.put(graph.arena, graph.dupeString(name), wf) catch @panic("OOM");
|
|
1057
996
|
return wf;
|
|
1058
997
|
}
|
|
1059
998
|
|
|
1060
999
|
pub fn addNamedLazyPath(b: *Build, name: []const u8, lp: LazyPath) void {
|
|
1061
|
-
|
|
1000
|
+
const graph = b.graph;
|
|
1001
|
+
b.named_lazy_paths.put(graph.arena, graph.dupeString(name), lp.dupe(graph)) catch @panic("OOM");
|
|
1062
1002
|
}
|
|
1063
1003
|
|
|
1064
1004
|
/// Creates a step for mutating files inside a temporary directory created lazily
|
|
@@ -1097,6 +1037,16 @@ pub fn addWriteFiles(b: *Build) *Step.WriteFile {
|
|
|
1097
1037
|
return Step.WriteFile.create(b);
|
|
1098
1038
|
}
|
|
1099
1039
|
|
|
1040
|
+
/// Creates a step for writing data to paths relative to the build root,
|
|
1041
|
+
/// mutating the project's source files.
|
|
1042
|
+
///
|
|
1043
|
+
/// This build step was designed not to be used during the normal build
|
|
1044
|
+
/// process, but rather as a utility run by a developer with intention to
|
|
1045
|
+
/// update source files, which will then be committed to version control.
|
|
1046
|
+
///
|
|
1047
|
+
/// Example use cases:
|
|
1048
|
+
/// * precompiling assets which are tracked by version control
|
|
1049
|
+
/// * snapshot testing
|
|
1100
1050
|
pub fn addUpdateSourceFiles(b: *Build) *Step.UpdateSourceFiles {
|
|
1101
1051
|
return Step.UpdateSourceFiles.create(b);
|
|
1102
1052
|
}
|
|
@@ -1121,28 +1071,21 @@ pub fn getUninstallStep(b: *Build) *Step {
|
|
|
1121
1071
|
return &b.uninstall_tls.step;
|
|
1122
1072
|
}
|
|
1123
1073
|
|
|
1124
|
-
fn makeUninstall(uninstall_step: *Step, options: Step.MakeOptions) anyerror!void {
|
|
1125
|
-
_ = options;
|
|
1126
|
-
const uninstall_tls: *TopLevelStep = @fieldParentPtr("step", uninstall_step);
|
|
1127
|
-
const b: *Build = @fieldParentPtr("uninstall_tls", uninstall_tls);
|
|
1128
|
-
|
|
1129
|
-
_ = b;
|
|
1130
|
-
@panic("TODO implement https://github.com/ziglang/zig/issues/14943");
|
|
1131
|
-
}
|
|
1132
|
-
|
|
1133
1074
|
/// Creates a configuration option to be passed to the build.zig script.
|
|
1134
1075
|
/// When a user directly runs `zig build`, they can set these options with `-D` arguments.
|
|
1135
1076
|
/// When a project depends on a Zig package as a dependency, it programmatically sets
|
|
1136
1077
|
/// these options when calling the dependency's build.zig script as a function.
|
|
1137
1078
|
/// `null` is returned when an option is left to default.
|
|
1138
1079
|
pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw: []const u8) ?T {
|
|
1139
|
-
const
|
|
1140
|
-
const
|
|
1080
|
+
const graph = b.graph;
|
|
1081
|
+
const arena = graph.arena;
|
|
1082
|
+
const name = graph.dupeString(name_raw);
|
|
1083
|
+
const description = graph.dupeString(description_raw);
|
|
1141
1084
|
const type_id = comptime typeToEnum(T);
|
|
1142
1085
|
const enum_options = if (type_id == .@"enum" or type_id == .enum_list) blk: {
|
|
1143
1086
|
const EnumType = if (type_id == .enum_list) @typeInfo(T).pointer.child else T;
|
|
1144
1087
|
const fields = comptime std.meta.fields(EnumType);
|
|
1145
|
-
var options = std.array_list.Managed([]const u8).initCapacity(
|
|
1088
|
+
var options = std.array_list.Managed([]const u8).initCapacity(arena, fields.len) catch @panic("OOM");
|
|
1146
1089
|
|
|
1147
1090
|
inline for (fields) |field| {
|
|
1148
1091
|
options.appendAssumeCapacity(field.name);
|
|
@@ -1156,10 +1099,9 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1156
1099
|
.description = description,
|
|
1157
1100
|
.enum_options = enum_options,
|
|
1158
1101
|
};
|
|
1159
|
-
if ((b.available_options_map.fetchPut(name, available_option) catch @panic("OOM")) != null) {
|
|
1160
|
-
panic("
|
|
1102
|
+
if ((b.available_options_map.fetchPut(arena, name, available_option) catch @panic("OOM")) != null) {
|
|
1103
|
+
panic("option '{s}' declared twice", .{name});
|
|
1161
1104
|
}
|
|
1162
|
-
b.available_options_list.append(available_option) catch @panic("OOM");
|
|
1163
1105
|
|
|
1164
1106
|
const option_ptr = b.user_input_options.getPtr(name) orelse return null;
|
|
1165
1107
|
option_ptr.used = true;
|
|
@@ -1172,36 +1114,32 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1172
1114
|
} else if (mem.eql(u8, s, "false")) {
|
|
1173
1115
|
return false;
|
|
1174
1116
|
} else {
|
|
1175
|
-
log.err("
|
|
1117
|
+
log.err("expected -D{s} to be a boolean; received: {s}", .{ name, s });
|
|
1176
1118
|
b.markInvalidUserInput();
|
|
1177
1119
|
return null;
|
|
1178
1120
|
}
|
|
1179
1121
|
},
|
|
1180
1122
|
.list, .map, .lazy_path, .lazy_path_list => {
|
|
1181
|
-
log.err("
|
|
1182
|
-
name, @tagName(option_ptr.value),
|
|
1183
|
-
});
|
|
1123
|
+
log.err("expected -D{s} to be a boolean; received: {t}", .{ name, option_ptr.value });
|
|
1184
1124
|
b.markInvalidUserInput();
|
|
1185
1125
|
return null;
|
|
1186
1126
|
},
|
|
1187
1127
|
},
|
|
1188
1128
|
.int => switch (option_ptr.value) {
|
|
1189
1129
|
.flag, .list, .map, .lazy_path, .lazy_path_list => {
|
|
1190
|
-
log.err("
|
|
1191
|
-
name, @tagName(option_ptr.value),
|
|
1192
|
-
});
|
|
1130
|
+
log.err("expected -D{s} to be an integer; received: {t}", .{ name, option_ptr.value });
|
|
1193
1131
|
b.markInvalidUserInput();
|
|
1194
1132
|
return null;
|
|
1195
1133
|
},
|
|
1196
1134
|
.scalar => |s| {
|
|
1197
1135
|
const n = std.fmt.parseInt(T, s, 10) catch |err| switch (err) {
|
|
1198
1136
|
error.Overflow => {
|
|
1199
|
-
log.err("-D{s} value {s} cannot fit into type {s}
|
|
1137
|
+
log.err("-D{s} value {s} cannot fit into type {s}", .{ name, s, @typeName(T) });
|
|
1200
1138
|
b.markInvalidUserInput();
|
|
1201
1139
|
return null;
|
|
1202
1140
|
},
|
|
1203
1141
|
else => {
|
|
1204
|
-
log.err("
|
|
1142
|
+
log.err("expected -D{s} to be an integer of type {s}", .{ name, @typeName(T) });
|
|
1205
1143
|
b.markInvalidUserInput();
|
|
1206
1144
|
return null;
|
|
1207
1145
|
},
|
|
@@ -1211,15 +1149,13 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1211
1149
|
},
|
|
1212
1150
|
.float => switch (option_ptr.value) {
|
|
1213
1151
|
.flag, .map, .list, .lazy_path, .lazy_path_list => {
|
|
1214
|
-
log.err("
|
|
1215
|
-
name, @tagName(option_ptr.value),
|
|
1216
|
-
});
|
|
1152
|
+
log.err("expected -D{s} to be a float; received: {t}", .{ name, option_ptr.value });
|
|
1217
1153
|
b.markInvalidUserInput();
|
|
1218
1154
|
return null;
|
|
1219
1155
|
},
|
|
1220
1156
|
.scalar => |s| {
|
|
1221
1157
|
const n = std.fmt.parseFloat(T, s) catch {
|
|
1222
|
-
log.err("
|
|
1158
|
+
log.err("expected -D{s} to be a float of type {s}", .{ name, @typeName(T) });
|
|
1223
1159
|
b.markInvalidUserInput();
|
|
1224
1160
|
return null;
|
|
1225
1161
|
};
|
|
@@ -1228,9 +1164,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1228
1164
|
},
|
|
1229
1165
|
.@"enum" => switch (option_ptr.value) {
|
|
1230
1166
|
.flag, .map, .list, .lazy_path, .lazy_path_list => {
|
|
1231
|
-
log.err("
|
|
1232
|
-
name, @tagName(option_ptr.value),
|
|
1233
|
-
});
|
|
1167
|
+
log.err("expected -D{s} to be an enum; received: {t}.", .{ name, option_ptr.value });
|
|
1234
1168
|
b.markInvalidUserInput();
|
|
1235
1169
|
return null;
|
|
1236
1170
|
},
|
|
@@ -1238,7 +1172,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1238
1172
|
if (std.meta.stringToEnum(T, s)) |enum_lit| {
|
|
1239
1173
|
return enum_lit;
|
|
1240
1174
|
} else {
|
|
1241
|
-
log.err("
|
|
1175
|
+
log.err("expected -D{s} to be of type {s}", .{ name, @typeName(T) });
|
|
1242
1176
|
b.markInvalidUserInput();
|
|
1243
1177
|
return null;
|
|
1244
1178
|
}
|
|
@@ -1246,9 +1180,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1246
1180
|
},
|
|
1247
1181
|
.string => switch (option_ptr.value) {
|
|
1248
1182
|
.flag, .list, .map, .lazy_path, .lazy_path_list => {
|
|
1249
|
-
log.err("
|
|
1250
|
-
name, @tagName(option_ptr.value),
|
|
1251
|
-
});
|
|
1183
|
+
log.err("expected -D{s} to be a string; received: {t}", .{ name, option_ptr.value });
|
|
1252
1184
|
b.markInvalidUserInput();
|
|
1253
1185
|
return null;
|
|
1254
1186
|
},
|
|
@@ -1256,9 +1188,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1256
1188
|
},
|
|
1257
1189
|
.build_id => switch (option_ptr.value) {
|
|
1258
1190
|
.flag, .map, .list, .lazy_path, .lazy_path_list => {
|
|
1259
|
-
log.err("
|
|
1260
|
-
name, @tagName(option_ptr.value),
|
|
1261
|
-
});
|
|
1191
|
+
log.err("expected -D{s} to be an enum; received: {t}.", .{ name, option_ptr.value });
|
|
1262
1192
|
b.markInvalidUserInput();
|
|
1263
1193
|
return null;
|
|
1264
1194
|
},
|
|
@@ -1266,7 +1196,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1266
1196
|
if (std.zig.BuildId.parse(s)) |build_id| {
|
|
1267
1197
|
return build_id;
|
|
1268
1198
|
} else |err| {
|
|
1269
|
-
log.err("
|
|
1199
|
+
log.err("failed to parse option -D{s}: {t}", .{ name, err });
|
|
1270
1200
|
b.markInvalidUserInput();
|
|
1271
1201
|
return null;
|
|
1272
1202
|
}
|
|
@@ -1274,42 +1204,38 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1274
1204
|
},
|
|
1275
1205
|
.list => switch (option_ptr.value) {
|
|
1276
1206
|
.flag, .map, .lazy_path, .lazy_path_list => {
|
|
1277
|
-
log.err("
|
|
1278
|
-
name, @tagName(option_ptr.value),
|
|
1279
|
-
});
|
|
1207
|
+
log.err("expected -D{s} to be a list; received: {t}", .{ name, option_ptr.value });
|
|
1280
1208
|
b.markInvalidUserInput();
|
|
1281
1209
|
return null;
|
|
1282
1210
|
},
|
|
1283
1211
|
.scalar => |s| {
|
|
1284
|
-
return
|
|
1212
|
+
return arena.dupe([]const u8, &[_][]const u8{s}) catch @panic("OOM");
|
|
1285
1213
|
},
|
|
1286
1214
|
.list => |lst| return lst.items,
|
|
1287
1215
|
},
|
|
1288
1216
|
.enum_list => switch (option_ptr.value) {
|
|
1289
1217
|
.flag, .map, .lazy_path, .lazy_path_list => {
|
|
1290
|
-
log.err("
|
|
1291
|
-
name, @tagName(option_ptr.value),
|
|
1292
|
-
});
|
|
1218
|
+
log.err("expected -D{s} to be a list; received: {t}", .{ name, option_ptr.value });
|
|
1293
1219
|
b.markInvalidUserInput();
|
|
1294
1220
|
return null;
|
|
1295
1221
|
},
|
|
1296
1222
|
.scalar => |s| {
|
|
1297
1223
|
const Child = @typeInfo(T).pointer.child;
|
|
1298
1224
|
const value = std.meta.stringToEnum(Child, s) orelse {
|
|
1299
|
-
log.err("
|
|
1225
|
+
log.err("expected -D{s} to be of type {s}", .{ name, @typeName(Child) });
|
|
1300
1226
|
b.markInvalidUserInput();
|
|
1301
1227
|
return null;
|
|
1302
1228
|
};
|
|
1303
|
-
return
|
|
1229
|
+
return arena.dupe(Child, &[_]Child{value}) catch @panic("OOM");
|
|
1304
1230
|
},
|
|
1305
1231
|
.list => |lst| {
|
|
1306
1232
|
const Child = @typeInfo(T).pointer.child;
|
|
1307
|
-
const new_list =
|
|
1233
|
+
const new_list = graph.alloc(Child, lst.items.len);
|
|
1308
1234
|
for (new_list, lst.items) |*new_item, str| {
|
|
1309
1235
|
new_item.* = std.meta.stringToEnum(Child, str) orelse {
|
|
1310
|
-
log.err("
|
|
1236
|
+
log.err("expected -D{s} to be of type {s}", .{ name, @typeName(Child) });
|
|
1311
1237
|
b.markInvalidUserInput();
|
|
1312
|
-
|
|
1238
|
+
arena.free(new_list);
|
|
1313
1239
|
return null;
|
|
1314
1240
|
};
|
|
1315
1241
|
}
|
|
@@ -1320,18 +1246,16 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1320
1246
|
.scalar => |s| return .{ .cwd_relative = s },
|
|
1321
1247
|
.lazy_path => |lp| return lp,
|
|
1322
1248
|
.flag, .map, .list, .lazy_path_list => {
|
|
1323
|
-
log.err("
|
|
1324
|
-
name, @tagName(option_ptr.value),
|
|
1325
|
-
});
|
|
1249
|
+
log.err("expected -D{s} to be a path; received: {t}", .{ name, option_ptr.value });
|
|
1326
1250
|
b.markInvalidUserInput();
|
|
1327
1251
|
return null;
|
|
1328
1252
|
},
|
|
1329
1253
|
},
|
|
1330
1254
|
.lazy_path_list => switch (option_ptr.value) {
|
|
1331
|
-
.scalar => |s| return
|
|
1332
|
-
.lazy_path => |lp| return
|
|
1255
|
+
.scalar => |s| return arena.dupe(LazyPath, &[_]LazyPath{.{ .cwd_relative = s }}) catch @panic("OOM"),
|
|
1256
|
+
.lazy_path => |lp| return arena.dupe(LazyPath, &[_]LazyPath{lp}) catch @panic("OOM"),
|
|
1333
1257
|
.list => |lst| {
|
|
1334
|
-
const new_list =
|
|
1258
|
+
const new_list = graph.alloc(LazyPath, lst.items.len);
|
|
1335
1259
|
for (new_list, lst.items) |*new_item, str| {
|
|
1336
1260
|
new_item.* = .{ .cwd_relative = str };
|
|
1337
1261
|
}
|
|
@@ -1339,9 +1263,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1339
1263
|
},
|
|
1340
1264
|
.lazy_path_list => |lp_list| return lp_list.items,
|
|
1341
1265
|
.flag, .map => {
|
|
1342
|
-
log.err("
|
|
1343
|
-
name, @tagName(option_ptr.value),
|
|
1344
|
-
});
|
|
1266
|
+
log.err("expected -D{s} to be a path; received: {t}", .{ name, option_ptr.value });
|
|
1345
1267
|
b.markInvalidUserInput();
|
|
1346
1268
|
return null;
|
|
1347
1269
|
},
|
|
@@ -1350,17 +1272,19 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1350
1272
|
}
|
|
1351
1273
|
|
|
1352
1274
|
pub fn step(b: *Build, name: []const u8, description: []const u8) *Step {
|
|
1353
|
-
const
|
|
1275
|
+
const graph = b.graph;
|
|
1276
|
+
const arena = graph.arena;
|
|
1277
|
+
const step_info = arena.create(Step.TopLevel) catch @panic("OOM");
|
|
1354
1278
|
step_info.* = .{
|
|
1355
1279
|
.step = .init(.{
|
|
1356
|
-
.
|
|
1280
|
+
.tag = .top_level,
|
|
1357
1281
|
.name = name,
|
|
1358
1282
|
.owner = b,
|
|
1359
1283
|
}),
|
|
1360
|
-
.description =
|
|
1284
|
+
.description = graph.dupeString(description),
|
|
1361
1285
|
};
|
|
1362
|
-
const gop = b.top_level_steps.getOrPut(
|
|
1363
|
-
if (gop.found_existing)
|
|
1286
|
+
const gop = b.top_level_steps.getOrPut(arena, name) catch @panic("OOM");
|
|
1287
|
+
if (gop.found_existing) panic("A top-level step with name \"{s}\" already exists", .{name});
|
|
1364
1288
|
|
|
1365
1289
|
gop.key_ptr.* = step_info.step.name;
|
|
1366
1290
|
gop.value_ptr.* = step_info;
|
|
@@ -1373,8 +1297,10 @@ pub const StandardOptimizeOptionOptions = struct {
|
|
|
1373
1297
|
};
|
|
1374
1298
|
|
|
1375
1299
|
pub fn standardOptimizeOption(b: *Build, options: StandardOptimizeOptionOptions) std.builtin.OptimizeMode {
|
|
1300
|
+
const graph = b.graph;
|
|
1301
|
+
|
|
1376
1302
|
if (options.preferred_optimize_mode) |mode| {
|
|
1377
|
-
if (b.option(bool, "release", "optimize for end users") orelse (
|
|
1303
|
+
if (b.option(bool, "release", "optimize for end users") orelse (graph.release_mode != .off)) {
|
|
1378
1304
|
return mode;
|
|
1379
1305
|
} else {
|
|
1380
1306
|
return .Debug;
|
|
@@ -1389,7 +1315,7 @@ pub fn standardOptimizeOption(b: *Build, options: StandardOptimizeOptionOptions)
|
|
|
1389
1315
|
return mode;
|
|
1390
1316
|
}
|
|
1391
1317
|
|
|
1392
|
-
return switch (
|
|
1318
|
+
return switch (graph.release_mode) {
|
|
1393
1319
|
.off => .Debug,
|
|
1394
1320
|
.any => {
|
|
1395
1321
|
std.debug.print("the project does not declare a preferred optimization mode. choose: --release=fast, --release=safe, or --release=small\n", .{});
|
|
@@ -1424,8 +1350,8 @@ pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFaile
|
|
|
1424
1350
|
opts_copy.diagnostics = &diags;
|
|
1425
1351
|
return std.Target.Query.parse(opts_copy) catch |err| switch (err) {
|
|
1426
1352
|
error.UnknownCpuModel => {
|
|
1427
|
-
std.debug.print("unknown CPU: '{s}'\navailable CPUs for architecture '{
|
|
1428
|
-
diags.cpu_name.?,
|
|
1353
|
+
std.debug.print("unknown CPU: '{s}'\navailable CPUs for architecture '{t}':\n", .{
|
|
1354
|
+
diags.cpu_name.?, diags.arch.?,
|
|
1429
1355
|
});
|
|
1430
1356
|
for (diags.arch.?.allCpuModels()) |cpu| {
|
|
1431
1357
|
std.debug.print(" {s}\n", .{cpu.name});
|
|
@@ -1435,11 +1361,10 @@ pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFaile
|
|
|
1435
1361
|
error.UnknownCpuFeature => {
|
|
1436
1362
|
std.debug.print(
|
|
1437
1363
|
\\unknown CPU feature: '{s}'
|
|
1438
|
-
\\available CPU features for architecture '{
|
|
1364
|
+
\\available CPU features for architecture '{t}':
|
|
1439
1365
|
\\
|
|
1440
1366
|
, .{
|
|
1441
|
-
diags.unknown_feature_name.?,
|
|
1442
|
-
@tagName(diags.arch.?),
|
|
1367
|
+
diags.unknown_feature_name.?, diags.arch.?,
|
|
1443
1368
|
});
|
|
1444
1369
|
for (diags.arch.?.allFeaturesList()) |feature| {
|
|
1445
1370
|
std.debug.print(" {s}: {s}\n", .{ feature.name, feature.description });
|
|
@@ -1468,6 +1393,9 @@ pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFaile
|
|
|
1468
1393
|
|
|
1469
1394
|
/// Exposes standard `zig build` options for choosing a target.
|
|
1470
1395
|
pub fn standardTargetOptionsQueryOnly(b: *Build, args: StandardTargetOptionsArgs) Target.Query {
|
|
1396
|
+
const graph = b.graph;
|
|
1397
|
+
const arena = graph.arena;
|
|
1398
|
+
|
|
1471
1399
|
const maybe_triple = b.option(
|
|
1472
1400
|
[]const u8,
|
|
1473
1401
|
"target",
|
|
@@ -1516,20 +1444,22 @@ pub fn standardTargetOptionsQueryOnly(b: *Build, args: StandardTargetOptionsArgs
|
|
|
1516
1444
|
|
|
1517
1445
|
for (whitelist) |q| {
|
|
1518
1446
|
log.info("allowed target: -Dtarget={s} -Dcpu={s}", .{
|
|
1519
|
-
q.zigTriple(
|
|
1520
|
-
q.serializeCpuAlloc(
|
|
1447
|
+
q.zigTriple(arena) catch @panic("OOM"),
|
|
1448
|
+
q.serializeCpuAlloc(arena) catch @panic("OOM"),
|
|
1521
1449
|
});
|
|
1522
1450
|
}
|
|
1523
1451
|
log.err("chosen target '{s}' does not match one of the allowed targets", .{
|
|
1524
|
-
selected_target.zigTriple(
|
|
1452
|
+
selected_target.zigTriple(arena) catch @panic("OOM"),
|
|
1525
1453
|
});
|
|
1526
1454
|
b.markInvalidUserInput();
|
|
1527
1455
|
return args.default_target;
|
|
1528
1456
|
}
|
|
1529
1457
|
|
|
1530
1458
|
pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8) error{OutOfMemory}!bool {
|
|
1531
|
-
const
|
|
1532
|
-
const
|
|
1459
|
+
const graph = b.graph;
|
|
1460
|
+
const arena = graph.arena;
|
|
1461
|
+
const name = graph.dupeString(name_raw);
|
|
1462
|
+
const value = graph.dupeString(value_raw);
|
|
1533
1463
|
const gop = try b.user_input_options.getOrPut(name);
|
|
1534
1464
|
if (!gop.found_existing) {
|
|
1535
1465
|
gop.value_ptr.* = UserInputOption{
|
|
@@ -1544,7 +1474,7 @@ pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8
|
|
|
1544
1474
|
switch (gop.value_ptr.value) {
|
|
1545
1475
|
.scalar => |s| {
|
|
1546
1476
|
// turn it into a list
|
|
1547
|
-
var list = std.array_list.Managed([]const u8).init(
|
|
1477
|
+
var list = std.array_list.Managed([]const u8).init(arena);
|
|
1548
1478
|
try list.append(s);
|
|
1549
1479
|
try list.append(value);
|
|
1550
1480
|
try b.user_input_options.put(name, .{
|
|
@@ -1572,7 +1502,9 @@ pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8
|
|
|
1572
1502
|
return true;
|
|
1573
1503
|
},
|
|
1574
1504
|
.lazy_path, .lazy_path_list => {
|
|
1575
|
-
log.warn("the lazy path value type isn't added from the CLI, but somehow '{s}' is a .{f}", .{
|
|
1505
|
+
log.warn("the lazy path value type isn't added from the CLI, but somehow '{s}' is a .{f}", .{
|
|
1506
|
+
name, std.zig.fmtId(@tagName(gop.value_ptr.value)),
|
|
1507
|
+
});
|
|
1576
1508
|
return true;
|
|
1577
1509
|
},
|
|
1578
1510
|
}
|
|
@@ -1580,7 +1512,8 @@ pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8
|
|
|
1580
1512
|
}
|
|
1581
1513
|
|
|
1582
1514
|
pub fn addUserInputFlag(b: *Build, name_raw: []const u8) error{OutOfMemory}!bool {
|
|
1583
|
-
const
|
|
1515
|
+
const graph = b.graph;
|
|
1516
|
+
const name = graph.dupeString(name_raw);
|
|
1584
1517
|
const gop = try b.user_input_options.getOrPut(name);
|
|
1585
1518
|
if (!gop.found_existing) {
|
|
1586
1519
|
gop.value_ptr.* = .{
|
|
@@ -1602,7 +1535,7 @@ pub fn addUserInputFlag(b: *Build, name_raw: []const u8) error{OutOfMemory}!bool
|
|
|
1602
1535
|
return true;
|
|
1603
1536
|
},
|
|
1604
1537
|
.lazy_path => |lp| {
|
|
1605
|
-
log.err("Flag '-D{s}' conflicts with option '-D{s}={
|
|
1538
|
+
log.err("Flag '-D{s}' conflicts with option '-D{s}={f}'.", .{ name, name, lp });
|
|
1606
1539
|
return true;
|
|
1607
1540
|
},
|
|
1608
1541
|
|
|
@@ -1611,7 +1544,7 @@ pub fn addUserInputFlag(b: *Build, name_raw: []const u8) error{OutOfMemory}!bool
|
|
|
1611
1544
|
return false;
|
|
1612
1545
|
}
|
|
1613
1546
|
|
|
1614
|
-
fn typeToEnum(comptime T: type)
|
|
1547
|
+
fn typeToEnum(comptime T: type) Configuration.AvailableOption.Type {
|
|
1615
1548
|
return switch (T) {
|
|
1616
1549
|
std.zig.BuildId => .build_id,
|
|
1617
1550
|
LazyPath => .lazy_path,
|
|
@@ -1732,26 +1665,10 @@ pub fn addCheckFile(
|
|
|
1732
1665
|
return Step.CheckFile.create(b, file_source, options);
|
|
1733
1666
|
}
|
|
1734
1667
|
|
|
1735
|
-
pub fn truncateFile(b: *Build, dest_path: []const u8) (Io.Dir.CreateDirError || Io.Dir.StatFileError)!void {
|
|
1736
|
-
const io = b.graph.io;
|
|
1737
|
-
if (b.verbose) log.info("truncate {s}", .{dest_path});
|
|
1738
|
-
const cwd = Io.Dir.cwd();
|
|
1739
|
-
var src_file = cwd.createFile(io, dest_path, .{}) catch |err| switch (err) {
|
|
1740
|
-
error.FileNotFound => blk: {
|
|
1741
|
-
if (fs.path.dirname(dest_path)) |dirname| {
|
|
1742
|
-
try cwd.createDirPath(io, dirname);
|
|
1743
|
-
}
|
|
1744
|
-
break :blk try cwd.createFile(io, dest_path, .{});
|
|
1745
|
-
},
|
|
1746
|
-
else => |e| return e,
|
|
1747
|
-
};
|
|
1748
|
-
src_file.close(io);
|
|
1749
|
-
}
|
|
1750
|
-
|
|
1751
1668
|
/// References a file or directory relative to the source root.
|
|
1752
1669
|
pub fn path(b: *Build, sub_path: []const u8) LazyPath {
|
|
1753
1670
|
if (fs.path.isAbsolute(sub_path)) {
|
|
1754
|
-
|
|
1671
|
+
panic("sub_path is expected to be relative to the build root, but was this absolute path: '{s}'. Absolute paths can cause problems but can be created via Graph.cwdRelativePath", .{
|
|
1755
1672
|
sub_path,
|
|
1756
1673
|
});
|
|
1757
1674
|
}
|
|
@@ -1761,27 +1678,106 @@ pub fn path(b: *Build, sub_path: []const u8) LazyPath {
|
|
|
1761
1678
|
} };
|
|
1762
1679
|
}
|
|
1763
1680
|
|
|
1764
|
-
///
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
fn pathFromCwd(b: *Build, sub_path: []const u8) []u8 {
|
|
1772
|
-
return b.pathResolve(&.{ b.graph.cache.cwd, sub_path });
|
|
1681
|
+
/// Creates a list of files and/or directories relative to the source root.
|
|
1682
|
+
pub fn pathList(b: *Build, sub_paths: []const []const u8) []const LazyPath {
|
|
1683
|
+
const graph = b.graph;
|
|
1684
|
+
const result = graph.alloc(LazyPath, sub_paths.len);
|
|
1685
|
+
for (result, sub_paths) |*d, s| d.* = path(b, s);
|
|
1686
|
+
return result;
|
|
1773
1687
|
}
|
|
1774
1688
|
|
|
1775
1689
|
pub fn pathJoin(b: *Build, paths: []const []const u8) []u8 {
|
|
1776
|
-
|
|
1690
|
+
const graph = b.graph;
|
|
1691
|
+
const arena = graph.arena;
|
|
1692
|
+
return fs.path.join(arena, paths) catch @panic("OOM");
|
|
1777
1693
|
}
|
|
1778
1694
|
|
|
1779
1695
|
pub fn pathResolve(b: *Build, paths: []const []const u8) []u8 {
|
|
1780
|
-
|
|
1696
|
+
const graph = b.graph;
|
|
1697
|
+
const arena = graph.arena;
|
|
1698
|
+
return fs.path.resolve(arena, paths) catch @panic("OOM");
|
|
1781
1699
|
}
|
|
1782
1700
|
|
|
1783
1701
|
pub fn fmt(b: *Build, comptime format: []const u8, args: anytype) []u8 {
|
|
1784
|
-
|
|
1702
|
+
const graph = b.graph;
|
|
1703
|
+
const arena = graph.arena;
|
|
1704
|
+
return std.fmt.allocPrint(arena, format, args) catch @panic("OOM");
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
/// Creates an anonymous `Step` that searches for an executable on the host that
|
|
1708
|
+
/// has more than one possible name.
|
|
1709
|
+
///
|
|
1710
|
+
/// Returns the `LazyPath` of the found executable. The search only takes place
|
|
1711
|
+
/// if the `LazyPath` will be used by a depending `Step`.
|
|
1712
|
+
///
|
|
1713
|
+
/// This API is useful in the following cases:
|
|
1714
|
+
/// * The binary is not named the same across all systems (for example "python"
|
|
1715
|
+
/// vs "python3").
|
|
1716
|
+
/// * The binary may be produced by building from source rather than being
|
|
1717
|
+
/// globally installed and will therefore be possibly found in one of the
|
|
1718
|
+
/// search prefix paths.
|
|
1719
|
+
///
|
|
1720
|
+
/// Names are searched in order, observing search prefixes first and then PATH
|
|
1721
|
+
/// environment variable.
|
|
1722
|
+
///
|
|
1723
|
+
/// Windows file name extensions are searched automatically, respecting the
|
|
1724
|
+
/// PATHEXT environment variable, so they need not be included in this list.
|
|
1725
|
+
/// However, even on Windows, the names will be checked without appending
|
|
1726
|
+
/// extensions first, so that can be used as a priority system.
|
|
1727
|
+
///
|
|
1728
|
+
/// See also:
|
|
1729
|
+
/// * `findProgram`
|
|
1730
|
+
pub fn findProgramLazy(b: *Build, options: Step.FindProgram.Options) LazyPath {
|
|
1731
|
+
return .{ .generated = .{ .index = Step.FindProgram.create(b, options).found_path } };
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
pub const FindProgramOptions = Step.FindProgram.Options;
|
|
1735
|
+
|
|
1736
|
+
/// Immediately (in the configure phase), searches for an executable on the host
|
|
1737
|
+
/// that has more than one possible name.
|
|
1738
|
+
///
|
|
1739
|
+
/// Calling this function poisons the configuration cache, so it is only
|
|
1740
|
+
/// appropriate when the existence of the program or its output needs to be
|
|
1741
|
+
/// observed by configuration logic. For more information, see
|
|
1742
|
+
/// `Graph.CachePoison` documentation.
|
|
1743
|
+
///
|
|
1744
|
+
/// Names are searched in order, observing search prefixes first and then PATH
|
|
1745
|
+
/// environment variable.
|
|
1746
|
+
///
|
|
1747
|
+
/// Windows file name extensions are searched automatically, respecting the
|
|
1748
|
+
/// PATHEXT environment variable, so they need not be included in this list.
|
|
1749
|
+
/// However, even on Windows, the names will be checked without appending
|
|
1750
|
+
/// extensions first, so that can be used as a priority system.
|
|
1751
|
+
///
|
|
1752
|
+
/// See also:
|
|
1753
|
+
/// * `findProgramLazy`
|
|
1754
|
+
pub fn findProgram(b: *Build, options: FindProgramOptions) ?[]const u8 {
|
|
1755
|
+
const graph = b.graph;
|
|
1756
|
+
|
|
1757
|
+
// Because it observes search prefixes and contents of directories in PATH.
|
|
1758
|
+
graph.poisonCache();
|
|
1759
|
+
|
|
1760
|
+
for (options.names) |name| {
|
|
1761
|
+
if (Io.Dir.path.isAbsolute(name)) {
|
|
1762
|
+
if (tryFindProgram(b, name)) |found| return found;
|
|
1763
|
+
}
|
|
1764
|
+
for (graph.search_prefixes.items) |search_prefix| {
|
|
1765
|
+
const full_path = b.pathJoin(&.{ search_prefix, "bin", name });
|
|
1766
|
+
if (tryFindProgram(b, full_path)) |found| return found;
|
|
1767
|
+
}
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1770
|
+
if (b.graph.environ_map.get("PATH")) |PATH| {
|
|
1771
|
+
for (options.names) |name| {
|
|
1772
|
+
var it = mem.tokenizeScalar(u8, PATH, Io.Dir.path.delimiter);
|
|
1773
|
+
while (it.next()) |p| {
|
|
1774
|
+
const full_path = b.pathJoin(&.{ p, name });
|
|
1775
|
+
if (tryFindProgram(b, full_path)) |found| return found;
|
|
1776
|
+
}
|
|
1777
|
+
}
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1780
|
+
return null;
|
|
1785
1781
|
}
|
|
1786
1782
|
|
|
1787
1783
|
fn supportedWindowsProgramExtension(ext: []const u8) bool {
|
|
@@ -1792,14 +1788,17 @@ fn supportedWindowsProgramExtension(ext: []const u8) bool {
|
|
|
1792
1788
|
}
|
|
1793
1789
|
|
|
1794
1790
|
fn tryFindProgram(b: *Build, full_path: []const u8) ?[]const u8 {
|
|
1795
|
-
const
|
|
1796
|
-
const
|
|
1791
|
+
const graph = b.graph;
|
|
1792
|
+
const io = graph.io;
|
|
1793
|
+
const arena = graph.arena;
|
|
1797
1794
|
|
|
1798
|
-
if (
|
|
1799
|
-
return
|
|
1795
|
+
if (Io.Dir.cwd().access(io, full_path, .{ .execute = true })) |_| {
|
|
1796
|
+
return full_path;
|
|
1800
1797
|
} else |err| switch (err) {
|
|
1801
|
-
error.
|
|
1802
|
-
|
|
1798
|
+
error.FileNotFound, error.AccessDenied, error.PermissionDenied => |e| {
|
|
1799
|
+
if (graph.verbose) log.info("searched: {t} {s}", .{ e, full_path });
|
|
1800
|
+
},
|
|
1801
|
+
else => |e| return panic("failed accessing {s}: {t}", .{ full_path, e }),
|
|
1803
1802
|
}
|
|
1804
1803
|
|
|
1805
1804
|
if (builtin.os.tag == .windows) {
|
|
@@ -1809,14 +1808,16 @@ fn tryFindProgram(b: *Build, full_path: []const u8) ?[]const u8 {
|
|
|
1809
1808
|
while (it.next()) |ext| {
|
|
1810
1809
|
if (!supportedWindowsProgramExtension(ext)) continue;
|
|
1811
1810
|
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
error.
|
|
1818
|
-
|
|
1819
|
-
|
|
1811
|
+
const extended_path = try mem.concat(arena, &.{ full_path, ext });
|
|
1812
|
+
|
|
1813
|
+
if (Io.Dir.cwd().access(io, extended_path, .{ .execute = true })) |_| {
|
|
1814
|
+
return extended_path;
|
|
1815
|
+
} else |err| switch (err) {
|
|
1816
|
+
error.FileNotFound, error.AccessDenied, error.PermissionDenied => |e| {
|
|
1817
|
+
if (graph.verbose) log.info("searched: {t} {s}", .{ e, extended_path });
|
|
1818
|
+
},
|
|
1819
|
+
else => |e| return panic("failed accessing {s}: {t}", .{ extended_path, e }),
|
|
1820
|
+
}
|
|
1820
1821
|
}
|
|
1821
1822
|
}
|
|
1822
1823
|
}
|
|
@@ -1824,114 +1825,158 @@ fn tryFindProgram(b: *Build, full_path: []const u8) ?[]const u8 {
|
|
|
1824
1825
|
return null;
|
|
1825
1826
|
}
|
|
1826
1827
|
|
|
1827
|
-
|
|
1828
|
-
// TODO report error for ambiguous situations
|
|
1829
|
-
for (b.search_prefixes.items) |search_prefix| {
|
|
1830
|
-
for (names) |name| {
|
|
1831
|
-
if (fs.path.isAbsolute(name)) {
|
|
1832
|
-
return name;
|
|
1833
|
-
}
|
|
1834
|
-
return tryFindProgram(b, b.pathJoin(&.{ search_prefix, "bin", name })) orelse continue;
|
|
1835
|
-
}
|
|
1836
|
-
}
|
|
1837
|
-
if (b.graph.environ_map.get("PATH")) |PATH| {
|
|
1838
|
-
for (names) |name| {
|
|
1839
|
-
if (fs.path.isAbsolute(name)) {
|
|
1840
|
-
return name;
|
|
1841
|
-
}
|
|
1842
|
-
var it = mem.tokenizeScalar(u8, PATH, fs.path.delimiter);
|
|
1843
|
-
while (it.next()) |p| {
|
|
1844
|
-
return tryFindProgram(b, b.pathJoin(&.{ p, name })) orelse continue;
|
|
1845
|
-
}
|
|
1846
|
-
}
|
|
1847
|
-
}
|
|
1848
|
-
for (names) |name| {
|
|
1849
|
-
if (fs.path.isAbsolute(name)) {
|
|
1850
|
-
return name;
|
|
1851
|
-
}
|
|
1852
|
-
for (paths) |p| {
|
|
1853
|
-
return tryFindProgram(b, b.pathJoin(&.{ p, name })) orelse continue;
|
|
1854
|
-
}
|
|
1855
|
-
}
|
|
1856
|
-
return error.FileNotFound;
|
|
1857
|
-
}
|
|
1858
|
-
|
|
1828
|
+
/// Deprecated; use `runFallible`.
|
|
1859
1829
|
pub fn runAllowFail(
|
|
1860
1830
|
b: *Build,
|
|
1861
1831
|
argv: []const []const u8,
|
|
1862
|
-
|
|
1863
|
-
stderr_behavior:
|
|
1864
|
-
)
|
|
1865
|
-
|
|
1832
|
+
exit_code: *u8,
|
|
1833
|
+
stderr_behavior: process.SpawnOptions.StdIo,
|
|
1834
|
+
) anyerror![]u8 {
|
|
1835
|
+
if (!process.can_spawn) return error.ExecNotSupported;
|
|
1836
|
+
switch (runFallible(b, argv, .{
|
|
1837
|
+
.stderr_behavior = stderr_behavior,
|
|
1838
|
+
})) {
|
|
1839
|
+
.success => |stdout| return stdout,
|
|
1840
|
+
.spawn_failed => |err| return err,
|
|
1841
|
+
.bad_exit_code => |code| {
|
|
1842
|
+
exit_code.* = code;
|
|
1843
|
+
return error.ExitCodeFailure;
|
|
1844
|
+
},
|
|
1845
|
+
.crashed => {
|
|
1846
|
+
exit_code.* = 255;
|
|
1847
|
+
return error.ProcessTerminated;
|
|
1848
|
+
},
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
|
|
1852
|
+
pub const RunOptions = struct {
|
|
1853
|
+
stderr_behavior: process.SpawnOptions.StdIo = .inherit,
|
|
1854
|
+
/// Fail the configuration if stdout is larger than this.
|
|
1855
|
+
stdout_limit: Io.Limit = .limited(1_000_000),
|
|
1856
|
+
/// Set to change the current working directory when spawning the child
|
|
1857
|
+
/// process.
|
|
1858
|
+
cwd: process.Child.Cwd = .inherit,
|
|
1859
|
+
/// Replaces the child environment when provided. The PATH value from here
|
|
1860
|
+
/// is not used to resolve `argv[0]`; that resolution always uses parent
|
|
1861
|
+
/// environment.
|
|
1862
|
+
environ_map: ?*const process.Environ.Map = null,
|
|
1863
|
+
expand_arg0: process.ArgExpansion = .no_expand,
|
|
1864
|
+
};
|
|
1865
|
+
|
|
1866
|
+
pub const RunResult = union(enum) {
|
|
1867
|
+
/// Thild process exited with code 0, writing this stdout.
|
|
1868
|
+
success: []u8,
|
|
1869
|
+
/// The child process could not be created.
|
|
1870
|
+
spawn_failed: process.SpawnError,
|
|
1871
|
+
/// The child process indicated failure.
|
|
1872
|
+
bad_exit_code: u8,
|
|
1873
|
+
/// The child process terminated abnormally.
|
|
1874
|
+
crashed,
|
|
1875
|
+
};
|
|
1866
1876
|
|
|
1867
|
-
|
|
1868
|
-
|
|
1877
|
+
/// Executes the provided command immediately, allowing failure.
|
|
1878
|
+
///
|
|
1879
|
+
/// If the program exits successfully, stdout is returned. Otherwise, returns
|
|
1880
|
+
/// an indication of failure.
|
|
1881
|
+
///
|
|
1882
|
+
/// See also:
|
|
1883
|
+
/// * `run`.
|
|
1884
|
+
pub fn runFallible(b: *Build, argv: []const []const u8, options: RunOptions) RunResult {
|
|
1885
|
+
assert(argv.len != 0);
|
|
1869
1886
|
|
|
1870
1887
|
const graph = b.graph;
|
|
1871
1888
|
const io = graph.io;
|
|
1889
|
+
const arena = graph.arena;
|
|
1890
|
+
|
|
1891
|
+
const print_opts: std.zig.AllocPrintCmdOptions = .{
|
|
1892
|
+
.cwd = switch (options.cwd) {
|
|
1893
|
+
.inherit => null,
|
|
1894
|
+
.path => |p| p,
|
|
1895
|
+
.dir => null, // Unknown without changing function signature of runFallible.
|
|
1896
|
+
},
|
|
1897
|
+
.child_env = options.environ_map,
|
|
1898
|
+
.parent_env = &graph.environ_map,
|
|
1899
|
+
};
|
|
1872
1900
|
|
|
1873
|
-
|
|
1874
|
-
|
|
1901
|
+
if (graph.verbose) {
|
|
1902
|
+
const text = std.zig.allocPrintCmd(arena, argv, print_opts) catch @panic("OOM");
|
|
1903
|
+
std.log.scoped(.verbose).info("{s}", .{text});
|
|
1904
|
+
}
|
|
1875
1905
|
|
|
1876
|
-
var child =
|
|
1906
|
+
var child = process.spawn(io, .{
|
|
1877
1907
|
.argv = argv,
|
|
1878
|
-
.environ_map = &graph.environ_map,
|
|
1879
1908
|
.stdin = .ignore,
|
|
1880
1909
|
.stdout = .pipe,
|
|
1881
|
-
.stderr = stderr_behavior,
|
|
1882
|
-
|
|
1910
|
+
.stderr = options.stderr_behavior,
|
|
1911
|
+
.cwd = options.cwd,
|
|
1912
|
+
.environ_map = &graph.environ_map,
|
|
1913
|
+
.expand_arg0 = options.expand_arg0,
|
|
1914
|
+
}) catch |err| return .{ .spawn_failed = err };
|
|
1883
1915
|
|
|
1884
1916
|
var stdout_reader = child.stdout.?.readerStreaming(io, &.{});
|
|
1885
|
-
const stdout = stdout_reader.interface.allocRemaining(
|
|
1886
|
-
|
|
1917
|
+
const stdout = stdout_reader.interface.allocRemaining(arena, options.stdout_limit) catch |err| switch (err) {
|
|
1918
|
+
error.ReadFailed => panic("failed to read from child: {t}", .{stdout_reader.err.?}),
|
|
1919
|
+
else => |e| panic("failed to read from child: {t}", .{e}),
|
|
1887
1920
|
};
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
switch (term) {
|
|
1892
|
-
.exited => |code| {
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
return error.ExitCodeFailure;
|
|
1896
|
-
}
|
|
1897
|
-
return stdout;
|
|
1898
|
-
},
|
|
1899
|
-
.signal, .stopped => |sig| {
|
|
1900
|
-
out_code.* = @as(u8, @truncate(@intFromEnum(sig)));
|
|
1901
|
-
return error.ProcessTerminated;
|
|
1902
|
-
},
|
|
1903
|
-
.unknown => |code| {
|
|
1904
|
-
out_code.* = @as(u8, @truncate(code));
|
|
1905
|
-
return error.ProcessTerminated;
|
|
1921
|
+
|
|
1922
|
+
const term = child.wait(io) catch @panic("unexpected");
|
|
1923
|
+
|
|
1924
|
+
return switch (term) {
|
|
1925
|
+
.exited => |code| switch (code) {
|
|
1926
|
+
0 => .{ .success = stdout },
|
|
1927
|
+
else => .{ .bad_exit_code = code },
|
|
1906
1928
|
},
|
|
1907
|
-
|
|
1929
|
+
.signal, .stopped, .unknown => .crashed,
|
|
1930
|
+
};
|
|
1908
1931
|
}
|
|
1909
1932
|
|
|
1910
|
-
///
|
|
1911
|
-
///
|
|
1912
|
-
///
|
|
1933
|
+
/// Executes the provided command immediately.
|
|
1934
|
+
///
|
|
1935
|
+
/// If the program exits successfully, stdout is returned. Otherwise, fails the
|
|
1936
|
+
/// build with a helpful message.
|
|
1937
|
+
///
|
|
1938
|
+
/// See also:
|
|
1939
|
+
/// * `runFallible`.
|
|
1913
1940
|
pub fn run(b: *Build, argv: []const []const u8) []u8 {
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
.
|
|
1918
|
-
)
|
|
1941
|
+
const graph = b.graph;
|
|
1942
|
+
const arena = graph.arena;
|
|
1943
|
+
switch (b.runFallible(argv, .{
|
|
1944
|
+
.stderr_behavior = .inherit,
|
|
1945
|
+
})) {
|
|
1946
|
+
.success => |stdout| return stdout,
|
|
1947
|
+
.spawn_failed => |err| process.fatal("the following command failed with {t}:\n{s}", .{
|
|
1948
|
+
err, std.zig.allocPrintCmd(arena, argv, .{}) catch @panic("OOM"),
|
|
1949
|
+
}),
|
|
1950
|
+
.bad_exit_code => |code| process.fatal("the following command exited with code {d}:\n{s}", .{
|
|
1951
|
+
code, std.zig.allocPrintCmd(arena, argv, .{}) catch @panic("OOM"),
|
|
1952
|
+
}),
|
|
1953
|
+
.crashed => process.fatal("the following command crashed:\n{s}", .{
|
|
1954
|
+
std.zig.allocPrintCmd(arena, argv, .{}) catch @panic("OOM"),
|
|
1955
|
+
}),
|
|
1956
|
+
}
|
|
1919
1957
|
}
|
|
1920
1958
|
|
|
1959
|
+
/// Adds additional paths, equivalent to the `--search-prefix` arguments
|
|
1960
|
+
/// provided by the user. Paths added with this function have lower precedence
|
|
1961
|
+
/// than the ones specified by the user on the command line.
|
|
1962
|
+
///
|
|
1963
|
+
/// It is generally best practice to avoid calling this function, instead
|
|
1964
|
+
/// relying on the user to provide these paths via the standard build system
|
|
1965
|
+
/// interface. However, when integrating with other build systems, the user may
|
|
1966
|
+
/// have already provided the information to the other build system, and thus
|
|
1967
|
+
/// it is desirable to use that same information without requiring the user to
|
|
1968
|
+
/// provide it again.
|
|
1921
1969
|
pub fn addSearchPrefix(b: *Build, search_prefix: []const u8) void {
|
|
1922
|
-
|
|
1970
|
+
if (b.isRoot()) {
|
|
1971
|
+
const graph = b.graph;
|
|
1972
|
+
const wc = &graph.wip_configuration;
|
|
1973
|
+
const string = wc.addString(search_prefix) catch @panic("OOM");
|
|
1974
|
+
wc.search_prefixes.append(wc.gpa, string) catch @panic("OOM");
|
|
1975
|
+
}
|
|
1923
1976
|
}
|
|
1924
1977
|
|
|
1925
|
-
pub fn
|
|
1926
|
-
|
|
1927
|
-
const base_dir = switch (dir) {
|
|
1928
|
-
.prefix => b.install_path,
|
|
1929
|
-
.bin => b.exe_dir,
|
|
1930
|
-
.lib => b.lib_dir,
|
|
1931
|
-
.header => b.h_dir,
|
|
1932
|
-
.custom => |p| b.pathJoin(&.{ b.install_path, p }),
|
|
1933
|
-
};
|
|
1934
|
-
return b.pathResolve(&.{ base_dir, dest_rel_path });
|
|
1978
|
+
pub fn isRoot(b: *const Build) bool {
|
|
1979
|
+
return b.pkg_hash.len == 0;
|
|
1935
1980
|
}
|
|
1936
1981
|
|
|
1937
1982
|
pub const Dependency = struct {
|
|
@@ -1987,14 +2032,15 @@ fn findPkgHashOrFatal(b: *Build, name: []const u8) []const u8 {
|
|
|
1987
2032
|
for (b.available_deps) |dep| {
|
|
1988
2033
|
if (mem.eql(u8, dep[0], name)) return dep[1];
|
|
1989
2034
|
}
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
2035
|
+
std.log.info("all dependencies used by build.zig must be declared in corresponding build.zig.zon", .{});
|
|
2036
|
+
if (b.pkg_hash.len == 0) panic("no dependency named {s}", .{name});
|
|
2037
|
+
panic("no dependency named {s} in {s} ({s})", .{ name, b.dep_prefix, b.pkg_hash });
|
|
1993
2038
|
}
|
|
1994
2039
|
|
|
1995
2040
|
inline fn findImportPkgHashOrFatal(b: *Build, comptime asking_build_zig: type, comptime dep_name: []const u8) []const u8 {
|
|
1996
2041
|
const build_runner = @import("root");
|
|
1997
2042
|
const deps = build_runner.dependencies;
|
|
2043
|
+
const arena = b.graph.arena;
|
|
1998
2044
|
|
|
1999
2045
|
const b_pkg_hash, const b_pkg_deps = comptime for (@typeInfo(deps.packages).@"struct".decls) |decl| {
|
|
2000
2046
|
const pkg_hash = decl.name;
|
|
@@ -2002,14 +2048,19 @@ inline fn findImportPkgHashOrFatal(b: *Build, comptime asking_build_zig: type, c
|
|
|
2002
2048
|
if (@hasDecl(pkg, "build_zig") and pkg.build_zig == asking_build_zig) break .{ pkg_hash, pkg.deps };
|
|
2003
2049
|
} else .{ "", deps.root_deps };
|
|
2004
2050
|
if (!std.mem.eql(u8, b_pkg_hash, b.pkg_hash)) {
|
|
2005
|
-
|
|
2051
|
+
const build_zig_path = b.root.join(arena, "build.zig") catch @panic("OOM");
|
|
2052
|
+
panic("{} is not the struct that corresponds to {f}", .{
|
|
2053
|
+
asking_build_zig, build_zig_path,
|
|
2054
|
+
});
|
|
2006
2055
|
}
|
|
2007
2056
|
comptime for (b_pkg_deps) |dep| {
|
|
2008
2057
|
if (std.mem.eql(u8, dep[0], dep_name)) return dep[1];
|
|
2009
2058
|
};
|
|
2010
2059
|
|
|
2011
|
-
const full_path = b.
|
|
2012
|
-
|
|
2060
|
+
const full_path = b.root.join(arena, "build.zig.zon") catch @panic("OOM");
|
|
2061
|
+
panic("no dependency named {s} in {f}. All packages used in build.zig must be declared in this file", .{
|
|
2062
|
+
dep_name, full_path,
|
|
2063
|
+
});
|
|
2013
2064
|
}
|
|
2014
2065
|
|
|
2015
2066
|
fn markNeededLazyDep(b: *Build, pkg_hash: []const u8) void {
|
|
@@ -2026,6 +2077,7 @@ fn markNeededLazyDep(b: *Build, pkg_hash: []const u8) void {
|
|
|
2026
2077
|
/// In other words, if this function returns `null` it means that the only
|
|
2027
2078
|
/// purpose of completing the configure phase is to find out all the other lazy
|
|
2028
2079
|
/// dependencies that are also required.
|
|
2080
|
+
///
|
|
2029
2081
|
/// It is allowed to use this function for non-lazy dependencies, in which case
|
|
2030
2082
|
/// it will never return `null`. This allows toggling laziness via
|
|
2031
2083
|
/// build.zig.zon without changing build.zig logic.
|
|
@@ -2058,7 +2110,7 @@ pub fn dependency(b: *Build, name: []const u8, args: anytype) *Dependency {
|
|
|
2058
2110
|
if (mem.eql(u8, decl.name, pkg_hash)) {
|
|
2059
2111
|
const pkg = @field(deps.packages, decl.name);
|
|
2060
2112
|
if (@hasDecl(pkg, "available")) {
|
|
2061
|
-
|
|
2113
|
+
panic("dependency '{s}{s}' is marked as lazy in build.zig.zon which means it must use the lazyDependency function instead", .{ b.dep_prefix, name });
|
|
2062
2114
|
}
|
|
2063
2115
|
return dependencyInner(b, name, pkg.build_root, if (@hasDecl(pkg, "build_zig")) pkg.build_zig else null, pkg_hash, pkg.deps, args);
|
|
2064
2116
|
}
|
|
@@ -2111,6 +2163,8 @@ pub fn dependencyFromBuildZig(
|
|
|
2111
2163
|
) *Dependency {
|
|
2112
2164
|
const build_runner = @import("root");
|
|
2113
2165
|
const deps = build_runner.dependencies;
|
|
2166
|
+
const graph = b.graph;
|
|
2167
|
+
const arena = graph.arena;
|
|
2114
2168
|
|
|
2115
2169
|
find_dep: {
|
|
2116
2170
|
const pkg, const pkg_hash = inline for (@typeInfo(deps.packages).@"struct".decls) |decl| {
|
|
@@ -2124,8 +2178,8 @@ pub fn dependencyFromBuildZig(
|
|
|
2124
2178
|
return dependencyInner(b, dep_name, pkg.build_root, pkg.build_zig, pkg_hash, pkg.deps, args);
|
|
2125
2179
|
}
|
|
2126
2180
|
|
|
2127
|
-
const full_path = b.
|
|
2128
|
-
|
|
2181
|
+
const full_path = b.root.join(arena, "build.zig.zon") catch @panic("OOM");
|
|
2182
|
+
panic("{} is not a build.zig struct of a dependency in {f}", .{ build_zig, full_path });
|
|
2129
2183
|
}
|
|
2130
2184
|
|
|
2131
2185
|
fn userValuesAreSame(lhs: UserValue, rhs: UserValue) bool {
|
|
@@ -2188,10 +2242,10 @@ fn userLazyPathsAreTheSame(lhs_lp: LazyPath, rhs_lp: LazyPath) bool {
|
|
|
2188
2242
|
if (lhs_sp.owner != rhs_sp.owner) return false;
|
|
2189
2243
|
if (std.mem.eql(u8, lhs_sp.sub_path, rhs_sp.sub_path)) return false;
|
|
2190
2244
|
},
|
|
2191
|
-
.generated =>
|
|
2192
|
-
const rhs_gen = rhs_lp.generated;
|
|
2245
|
+
.generated => |*lhs_gen| {
|
|
2246
|
+
const rhs_gen = &rhs_lp.generated;
|
|
2193
2247
|
|
|
2194
|
-
if (lhs_gen.
|
|
2248
|
+
if (lhs_gen.index != rhs_gen.index) return false;
|
|
2195
2249
|
if (lhs_gen.up != rhs_gen.up) return false;
|
|
2196
2250
|
if (std.mem.eql(u8, lhs_gen.sub_path, rhs_gen.sub_path)) return false;
|
|
2197
2251
|
},
|
|
@@ -2200,6 +2254,7 @@ fn userLazyPathsAreTheSame(lhs_lp: LazyPath, rhs_lp: LazyPath) bool {
|
|
|
2200
2254
|
|
|
2201
2255
|
if (!std.mem.eql(u8, lhs_rel_path, rhs_rel_path)) return false;
|
|
2202
2256
|
},
|
|
2257
|
+
.relative => |lhs| return lhs.eql(rhs_lp.relative),
|
|
2203
2258
|
.dependency => |lhs_dep| {
|
|
2204
2259
|
const rhs_dep = rhs_lp.dependency;
|
|
2205
2260
|
|
|
@@ -2219,25 +2274,25 @@ fn dependencyInner(
|
|
|
2219
2274
|
pkg_deps: AvailableDeps,
|
|
2220
2275
|
args: anytype,
|
|
2221
2276
|
) *Dependency {
|
|
2222
|
-
const
|
|
2223
|
-
const
|
|
2224
|
-
|
|
2277
|
+
const graph = b.graph;
|
|
2278
|
+
const io = graph.io;
|
|
2279
|
+
const arena = graph.arena;
|
|
2280
|
+
const user_input_options = userInputOptionsFromArgs(arena, args);
|
|
2281
|
+
if (graph.dependency_cache.getContext(.{
|
|
2225
2282
|
.build_root_string = build_root_string,
|
|
2226
2283
|
.user_input_options = user_input_options,
|
|
2227
|
-
}, .{ .allocator =
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
build_root_string, @errorName(err),
|
|
2235
|
-
});
|
|
2236
|
-
process.exit(1);
|
|
2284
|
+
}, .{ .allocator = arena })) |dep| return dep;
|
|
2285
|
+
|
|
2286
|
+
const dep_root: Cache.Path = .{
|
|
2287
|
+
.root_dir = .{
|
|
2288
|
+
.path = build_root_string,
|
|
2289
|
+
.handle = Io.Dir.cwd().openDir(io, build_root_string, .{}) catch |err|
|
|
2290
|
+
process.fatal("unable to open {s}: {t}", .{ build_root_string, err }),
|
|
2237
2291
|
},
|
|
2238
2292
|
};
|
|
2239
2293
|
|
|
2240
|
-
const sub_builder = b.createChild(name,
|
|
2294
|
+
const sub_builder = b.createChild(name, dep_root, pkg_hash, pkg_deps, user_input_options) catch
|
|
2295
|
+
@panic("unhandled error");
|
|
2241
2296
|
if (build_zig) |bz| {
|
|
2242
2297
|
sub_builder.runBuild(bz) catch @panic("unhandled error");
|
|
2243
2298
|
|
|
@@ -2246,13 +2301,13 @@ fn dependencyInner(
|
|
|
2246
2301
|
}
|
|
2247
2302
|
}
|
|
2248
2303
|
|
|
2249
|
-
const dep =
|
|
2304
|
+
const dep = graph.create(Dependency);
|
|
2250
2305
|
dep.* = .{ .builder = sub_builder };
|
|
2251
2306
|
|
|
2252
|
-
|
|
2307
|
+
graph.dependency_cache.putContext(arena, .{
|
|
2253
2308
|
.build_root_string = build_root_string,
|
|
2254
2309
|
.user_input_options = user_input_options,
|
|
2255
|
-
}, dep, .{ .allocator =
|
|
2310
|
+
}, dep, .{ .allocator = arena }) catch @panic("OOM");
|
|
2256
2311
|
return dep;
|
|
2257
2312
|
}
|
|
2258
2313
|
|
|
@@ -2264,41 +2319,6 @@ pub fn runBuild(b: *Build, build_zig: anytype) anyerror!void {
|
|
|
2264
2319
|
}
|
|
2265
2320
|
}
|
|
2266
2321
|
|
|
2267
|
-
/// A file that is generated by a build step.
|
|
2268
|
-
/// This struct is an interface that is meant to be used with `@fieldParentPtr` to implement the actual path logic.
|
|
2269
|
-
pub const GeneratedFile = struct {
|
|
2270
|
-
/// The step that generates the file.
|
|
2271
|
-
step: *Step,
|
|
2272
|
-
/// The path to the generated file. Must be either absolute or relative to the build runner cwd.
|
|
2273
|
-
/// This value must be set in the `fn make()` of the `step` and must not be `null` afterwards.
|
|
2274
|
-
path: ?[]const u8 = null,
|
|
2275
|
-
|
|
2276
|
-
/// Deprecated, see `getPath3`.
|
|
2277
|
-
pub fn getPath(gen: GeneratedFile) []const u8 {
|
|
2278
|
-
return gen.step.owner.pathFromCwd(gen.path orelse std.debug.panic(
|
|
2279
|
-
"getPath() was called on a GeneratedFile that wasn't built yet. Is there a missing Step dependency on step '{s}'?",
|
|
2280
|
-
.{gen.step.name},
|
|
2281
|
-
));
|
|
2282
|
-
}
|
|
2283
|
-
|
|
2284
|
-
/// Deprecated, see `getPath3`.
|
|
2285
|
-
pub fn getPath2(gen: GeneratedFile, src_builder: *Build, asking_step: ?*Step) []const u8 {
|
|
2286
|
-
return getPath3(gen, src_builder, asking_step) catch |err| switch (err) {
|
|
2287
|
-
error.Canceled => std.process.exit(1),
|
|
2288
|
-
};
|
|
2289
|
-
}
|
|
2290
|
-
|
|
2291
|
-
pub fn getPath3(gen: GeneratedFile, src_builder: *Build, asking_step: ?*Step) Io.Cancelable![]const u8 {
|
|
2292
|
-
return gen.path orelse {
|
|
2293
|
-
const graph = gen.step.owner.graph;
|
|
2294
|
-
const io = graph.io;
|
|
2295
|
-
const stderr = try io.lockStderr(&.{}, graph.stderr_mode);
|
|
2296
|
-
dumpBadGetPathHelp(gen.step, stderr.terminal(), src_builder, asking_step) catch {};
|
|
2297
|
-
@panic("misconfigured build script");
|
|
2298
|
-
};
|
|
2299
|
-
}
|
|
2300
|
-
};
|
|
2301
|
-
|
|
2302
2322
|
// dirnameAllowEmpty is a variant of fs.path.dirname
|
|
2303
2323
|
// that allows "" to refer to the root for relative paths.
|
|
2304
2324
|
//
|
|
@@ -2338,7 +2358,7 @@ pub const LazyPath = union(enum) {
|
|
|
2338
2358
|
},
|
|
2339
2359
|
|
|
2340
2360
|
generated: struct {
|
|
2341
|
-
|
|
2361
|
+
index: Configuration.GeneratedFileIndex,
|
|
2342
2362
|
|
|
2343
2363
|
/// The number of parent directories to go up.
|
|
2344
2364
|
/// 0 means the generated file itself.
|
|
@@ -2350,14 +2370,7 @@ pub const LazyPath = union(enum) {
|
|
|
2350
2370
|
sub_path: []const u8 = "",
|
|
2351
2371
|
},
|
|
2352
2372
|
|
|
2353
|
-
///
|
|
2354
|
-
/// the build runner process.
|
|
2355
|
-
///
|
|
2356
|
-
/// This is uncommon but used for system environment paths such as `--zig-lib-dir` which
|
|
2357
|
-
/// ignore the file system path of build.zig and instead are relative to the directory from
|
|
2358
|
-
/// which `zig build` was invoked.
|
|
2359
|
-
///
|
|
2360
|
-
/// Use of this tag indicates a dependency on the host system.
|
|
2373
|
+
/// Deprecated; call `Graph.cwdRelativePath` instead.
|
|
2361
2374
|
cwd_relative: []const u8,
|
|
2362
2375
|
|
|
2363
2376
|
dependency: struct {
|
|
@@ -2365,13 +2378,30 @@ pub const LazyPath = union(enum) {
|
|
|
2365
2378
|
sub_path: []const u8,
|
|
2366
2379
|
},
|
|
2367
2380
|
|
|
2381
|
+
relative: struct {
|
|
2382
|
+
base: Configuration.Path.Base,
|
|
2383
|
+
sub_path: []const u8 = "",
|
|
2384
|
+
|
|
2385
|
+
pub fn eql(a: @This(), b: @This()) bool {
|
|
2386
|
+
return a.base == b.base and mem.eql(u8, a.sub_path, b.sub_path);
|
|
2387
|
+
}
|
|
2388
|
+
},
|
|
2389
|
+
|
|
2390
|
+
/// Path to the Zig executable being used to execute "zig build".
|
|
2391
|
+
pub const zig_exe: LazyPath = .{ .relative = .{ .base = .zig_exe } };
|
|
2392
|
+
/// Path to the "lib/" directory from the Zig installation being used to
|
|
2393
|
+
/// execute "zig build".
|
|
2394
|
+
pub const zig_lib: LazyPath = .{ .relative = .{ .base = .zig_lib } };
|
|
2395
|
+
/// Path to the project's local cache directory (usually called ".zig-cache").
|
|
2396
|
+
pub const cache_root: LazyPath = .{ .relative = .{ .base = .local_cache } };
|
|
2397
|
+
|
|
2368
2398
|
/// Returns a lazy path referring to the directory containing this path.
|
|
2369
2399
|
///
|
|
2370
|
-
/// The dirname is not allowed to escape the logical root for underlying
|
|
2371
|
-
/// For example, if the path is relative to the build root,
|
|
2372
|
-
///
|
|
2373
|
-
/// Similarly, if the path is a generated file inside zig-cache,
|
|
2374
|
-
///
|
|
2400
|
+
/// The dirname is not allowed to escape the logical root for underlying
|
|
2401
|
+
/// path. For example, if the path is relative to the build root, the
|
|
2402
|
+
/// dirname is not allowed to traverse outside of the build root.
|
|
2403
|
+
/// Similarly, if the path is a generated file inside zig-cache, the
|
|
2404
|
+
/// dirname is not allowed to traverse outside of zig-cache.
|
|
2375
2405
|
pub fn dirname(lazy_path: LazyPath) LazyPath {
|
|
2376
2406
|
return switch (lazy_path) {
|
|
2377
2407
|
.src_path => |sp| .{ .src_path = .{
|
|
@@ -2382,11 +2412,11 @@ pub const LazyPath = union(enum) {
|
|
|
2382
2412
|
},
|
|
2383
2413
|
} },
|
|
2384
2414
|
.generated => |generated| .{ .generated = if (dirnameAllowEmpty(generated.sub_path)) |sub_dirname| .{
|
|
2385
|
-
.
|
|
2415
|
+
.index = generated.index,
|
|
2386
2416
|
.up = generated.up,
|
|
2387
2417
|
.sub_path = sub_dirname,
|
|
2388
2418
|
} else .{
|
|
2389
|
-
.
|
|
2419
|
+
.index = generated.index,
|
|
2390
2420
|
.up = generated.up + 1,
|
|
2391
2421
|
.sub_path = "",
|
|
2392
2422
|
} },
|
|
@@ -2413,6 +2443,13 @@ pub const LazyPath = union(enum) {
|
|
|
2413
2443
|
}
|
|
2414
2444
|
},
|
|
2415
2445
|
},
|
|
2446
|
+
.relative => |r| .{ .relative = .{
|
|
2447
|
+
.base = r.base,
|
|
2448
|
+
.sub_path = dirnameAllowEmpty(r.sub_path) orelse {
|
|
2449
|
+
dumpBadDirnameHelp(null, null, "dirname() attempted to traverse outside the base path\n", .{}) catch {};
|
|
2450
|
+
@panic("misconfigured build script");
|
|
2451
|
+
},
|
|
2452
|
+
} },
|
|
2416
2453
|
.dependency => |dep| .{ .dependency = .{
|
|
2417
2454
|
.dependency = dep.dependency,
|
|
2418
2455
|
.sub_path = dirnameAllowEmpty(dep.sub_path) orelse {
|
|
@@ -2427,7 +2464,9 @@ pub const LazyPath = union(enum) {
|
|
|
2427
2464
|
}
|
|
2428
2465
|
|
|
2429
2466
|
pub fn path(lazy_path: LazyPath, b: *Build, sub_path: []const u8) LazyPath {
|
|
2430
|
-
|
|
2467
|
+
const graph = b.graph;
|
|
2468
|
+
const arena = graph.arena;
|
|
2469
|
+
return lazy_path.join(arena, sub_path) catch @panic("OOM");
|
|
2431
2470
|
}
|
|
2432
2471
|
|
|
2433
2472
|
pub fn join(lazy_path: LazyPath, arena: Allocator, sub_path: []const u8) Allocator.Error!LazyPath {
|
|
@@ -2437,13 +2476,17 @@ pub const LazyPath = union(enum) {
|
|
|
2437
2476
|
.sub_path = try fs.path.resolve(arena, &.{ src.sub_path, sub_path }),
|
|
2438
2477
|
} },
|
|
2439
2478
|
.generated => |gen| .{ .generated = .{
|
|
2440
|
-
.
|
|
2479
|
+
.index = gen.index,
|
|
2441
2480
|
.up = gen.up,
|
|
2442
2481
|
.sub_path = try fs.path.resolve(arena, &.{ gen.sub_path, sub_path }),
|
|
2443
2482
|
} },
|
|
2444
2483
|
.cwd_relative => |cwd_relative| .{
|
|
2445
2484
|
.cwd_relative = try fs.path.resolve(arena, &.{ cwd_relative, sub_path }),
|
|
2446
2485
|
},
|
|
2486
|
+
.relative => |r| .{ .relative = .{
|
|
2487
|
+
.base = r.base,
|
|
2488
|
+
.sub_path = try fs.path.resolve(arena, &.{ r.sub_path, sub_path }),
|
|
2489
|
+
} },
|
|
2447
2490
|
.dependency => |dep| .{ .dependency = .{
|
|
2448
2491
|
.dependency = dep.dependency,
|
|
2449
2492
|
.sub_path = try fs.path.resolve(arena, &.{ dep.sub_path, sub_path }),
|
|
@@ -2451,148 +2494,59 @@ pub const LazyPath = union(enum) {
|
|
|
2451
2494
|
};
|
|
2452
2495
|
}
|
|
2453
2496
|
|
|
2454
|
-
///
|
|
2455
|
-
/// Either returns the path, `"generated"`, or `"dependency"`.
|
|
2497
|
+
/// Deprecated, use `format` instead.
|
|
2456
2498
|
pub fn getDisplayName(lazy_path: LazyPath) []const u8 {
|
|
2457
2499
|
return switch (lazy_path) {
|
|
2458
2500
|
.src_path => |sp| sp.sub_path,
|
|
2459
2501
|
.cwd_relative => |p| p,
|
|
2460
2502
|
.generated => "generated",
|
|
2461
2503
|
.dependency => "dependency",
|
|
2504
|
+
.relative => |r| @tagName(r.base),
|
|
2462
2505
|
};
|
|
2463
2506
|
}
|
|
2464
2507
|
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
.
|
|
2469
|
-
.generated =>
|
|
2508
|
+
pub fn format(lp: LazyPath, w: *Io.Writer) Io.Writer.Error!void {
|
|
2509
|
+
switch (lp) {
|
|
2510
|
+
.src_path => |sp| try w.writeAll(sp.sub_path),
|
|
2511
|
+
.cwd_relative => |p| try w.writeAll(p),
|
|
2512
|
+
.generated => try w.writeAll("generated"),
|
|
2513
|
+
.dependency => try w.writeAll("dependency"),
|
|
2514
|
+
.relative => |r| try w.print("{t} {s}", .{ r.base, r.sub_path }),
|
|
2470
2515
|
}
|
|
2471
2516
|
}
|
|
2472
2517
|
|
|
2473
|
-
///
|
|
2474
|
-
pub fn
|
|
2475
|
-
return getPath2(lazy_path, src_builder, null);
|
|
2476
|
-
}
|
|
2477
|
-
|
|
2478
|
-
/// Deprecated, see `getPath4`.
|
|
2479
|
-
pub fn getPath2(lazy_path: LazyPath, src_builder: *Build, asking_step: ?*Step) []const u8 {
|
|
2480
|
-
const p = getPath3(lazy_path, src_builder, asking_step);
|
|
2481
|
-
return src_builder.pathResolve(&.{ p.root_dir.path orelse ".", p.sub_path });
|
|
2482
|
-
}
|
|
2483
|
-
|
|
2484
|
-
/// Deprecated, see `getPath4`.
|
|
2485
|
-
pub fn getPath3(lazy_path: LazyPath, src_builder: *Build, asking_step: ?*Step) Cache.Path {
|
|
2486
|
-
return getPath4(lazy_path, src_builder, asking_step) catch |err| switch (err) {
|
|
2487
|
-
error.Canceled => std.process.exit(1),
|
|
2488
|
-
};
|
|
2489
|
-
}
|
|
2490
|
-
|
|
2491
|
-
/// Intended to be used during the make phase only.
|
|
2492
|
-
///
|
|
2493
|
-
/// `asking_step` is only used for debugging purposes; it's the step being
|
|
2494
|
-
/// run that is asking for the path.
|
|
2495
|
-
pub fn getPath4(lazy_path: LazyPath, src_builder: *Build, asking_step: ?*Step) Io.Cancelable!Cache.Path {
|
|
2518
|
+
/// Adds dependencies this file source implies to the given step.
|
|
2519
|
+
pub fn addStepDependencies(lazy_path: LazyPath, other_step: *Step) void {
|
|
2496
2520
|
switch (lazy_path) {
|
|
2497
|
-
.src_path
|
|
2498
|
-
.root_dir = sp.owner.build_root,
|
|
2499
|
-
.sub_path = sp.sub_path,
|
|
2500
|
-
},
|
|
2501
|
-
.cwd_relative => |sub_path| return .{
|
|
2502
|
-
.root_dir = Cache.Directory.cwd(),
|
|
2503
|
-
.sub_path = sub_path,
|
|
2504
|
-
},
|
|
2521
|
+
.src_path, .cwd_relative, .relative, .dependency => {},
|
|
2505
2522
|
.generated => |gen| {
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
const graph = src_builder.graph;
|
|
2510
|
-
|
|
2511
|
-
var file_path: Cache.Path = .{
|
|
2512
|
-
.root_dir = Cache.Directory.cwd(),
|
|
2513
|
-
.sub_path = gen.file.path orelse {
|
|
2514
|
-
const io = graph.io;
|
|
2515
|
-
const stderr = try io.lockStderr(&.{}, graph.stderr_mode);
|
|
2516
|
-
dumpBadGetPathHelp(gen.file.step, stderr.terminal(), src_builder, asking_step) catch {};
|
|
2517
|
-
io.unlockStderr();
|
|
2518
|
-
@panic("misconfigured build script");
|
|
2519
|
-
},
|
|
2520
|
-
};
|
|
2521
|
-
|
|
2522
|
-
if (gen.up > 0) {
|
|
2523
|
-
const cache_root_path = src_builder.cache_root.path orelse
|
|
2524
|
-
(src_builder.cache_root.join(src_builder.allocator, &.{"."}) catch @panic("OOM"));
|
|
2525
|
-
|
|
2526
|
-
for (0..gen.up) |_| {
|
|
2527
|
-
if (mem.eql(u8, file_path.sub_path, cache_root_path)) {
|
|
2528
|
-
// If we hit the cache root and there's still more to go,
|
|
2529
|
-
// the script attempted to go too far.
|
|
2530
|
-
dumpBadDirnameHelp(gen.file.step, asking_step,
|
|
2531
|
-
\\dirname() attempted to traverse outside the cache root.
|
|
2532
|
-
\\This is not allowed.
|
|
2533
|
-
\\
|
|
2534
|
-
, .{}) catch {};
|
|
2535
|
-
@panic("misconfigured build script");
|
|
2536
|
-
}
|
|
2537
|
-
|
|
2538
|
-
// path is absolute.
|
|
2539
|
-
// dirname will return null only if we're at root.
|
|
2540
|
-
// Typically, we'll stop well before that at the cache root.
|
|
2541
|
-
file_path.sub_path = fs.path.dirname(file_path.sub_path) orelse {
|
|
2542
|
-
dumpBadDirnameHelp(gen.file.step, asking_step,
|
|
2543
|
-
\\dirname() reached root.
|
|
2544
|
-
\\No more directories left to go up.
|
|
2545
|
-
\\
|
|
2546
|
-
, .{}) catch {};
|
|
2547
|
-
@panic("misconfigured build script");
|
|
2548
|
-
};
|
|
2549
|
-
}
|
|
2550
|
-
}
|
|
2551
|
-
|
|
2552
|
-
return file_path.join(src_builder.allocator, gen.sub_path) catch @panic("OOM");
|
|
2553
|
-
},
|
|
2554
|
-
.dependency => |dep| return .{
|
|
2555
|
-
.root_dir = dep.dependency.builder.build_root,
|
|
2556
|
-
.sub_path = dep.sub_path,
|
|
2523
|
+
const graph = other_step.owner.graph;
|
|
2524
|
+
const generated_owner_step = graph.generated_files.items[@intFromEnum(gen.index)];
|
|
2525
|
+
other_step.dependOn(generated_owner_step);
|
|
2557
2526
|
},
|
|
2558
2527
|
}
|
|
2559
2528
|
}
|
|
2560
2529
|
|
|
2561
|
-
pub fn basename(lazy_path: LazyPath, src_builder: *Build, asking_step: ?*Step) []const u8 {
|
|
2562
|
-
return fs.path.basename(switch (lazy_path) {
|
|
2563
|
-
.src_path => |sp| sp.sub_path,
|
|
2564
|
-
.cwd_relative => |sub_path| sub_path,
|
|
2565
|
-
.generated => |gen| if (gen.sub_path.len > 0)
|
|
2566
|
-
gen.sub_path
|
|
2567
|
-
else
|
|
2568
|
-
gen.file.getPath2(src_builder, asking_step),
|
|
2569
|
-
.dependency => |dep| dep.sub_path,
|
|
2570
|
-
});
|
|
2571
|
-
}
|
|
2572
|
-
|
|
2573
2530
|
/// Copies the internal strings.
|
|
2574
2531
|
///
|
|
2575
|
-
/// The `
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
return lazy_path.dupeInner(b.allocator);
|
|
2532
|
+
/// The `graph` parameter is only used for the global arena allocator.
|
|
2533
|
+
pub fn dupe(lazy_path: LazyPath, graph: *const Graph) LazyPath {
|
|
2534
|
+
return dupeInner(lazy_path, graph.arena);
|
|
2579
2535
|
}
|
|
2580
2536
|
|
|
2581
|
-
fn dupeInner(lazy_path: LazyPath,
|
|
2537
|
+
fn dupeInner(lazy_path: LazyPath, arena: Allocator) LazyPath {
|
|
2582
2538
|
return switch (lazy_path) {
|
|
2583
|
-
.src_path => |sp| .{ .src_path = .{
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
} },
|
|
2587
|
-
.cwd_relative => |p| .{ .cwd_relative = dupePathInner(allocator, p) },
|
|
2539
|
+
.src_path => |sp| .{ .src_path = .{ .owner = sp.owner, .sub_path = sp.owner.dupePath(sp.sub_path) } },
|
|
2540
|
+
.cwd_relative => |p| .{ .cwd_relative = Graph.dupePathInner(arena, p) },
|
|
2541
|
+
.relative => |r| .{ .relative = r },
|
|
2588
2542
|
.generated => |gen| .{ .generated = .{
|
|
2589
|
-
.
|
|
2543
|
+
.index = gen.index,
|
|
2590
2544
|
.up = gen.up,
|
|
2591
|
-
.sub_path = dupePathInner(
|
|
2545
|
+
.sub_path = Graph.dupePathInner(arena, gen.sub_path),
|
|
2592
2546
|
} },
|
|
2593
2547
|
.dependency => |dep| .{ .dependency = .{
|
|
2594
2548
|
.dependency = dep.dependency,
|
|
2595
|
-
.sub_path = dupePathInner(
|
|
2549
|
+
.sub_path = Graph.dupePathInner(arena, dep.sub_path),
|
|
2596
2550
|
} },
|
|
2597
2551
|
};
|
|
2598
2552
|
}
|
|
@@ -2631,36 +2585,6 @@ fn dumpBadDirnameHelp(
|
|
|
2631
2585
|
stderr.setColor(.reset) catch {};
|
|
2632
2586
|
}
|
|
2633
2587
|
|
|
2634
|
-
/// In this function the stderr mutex has already been locked.
|
|
2635
|
-
pub fn dumpBadGetPathHelp(s: *Step, t: Io.Terminal, src_builder: *Build, asking_step: ?*Step) anyerror!void {
|
|
2636
|
-
const w = t.writer;
|
|
2637
|
-
try w.print(
|
|
2638
|
-
\\getPath() was called on a GeneratedFile that wasn't built yet.
|
|
2639
|
-
\\ source package path: {s}
|
|
2640
|
-
\\ Is there a missing Step dependency on step '{s}'?
|
|
2641
|
-
\\
|
|
2642
|
-
, .{
|
|
2643
|
-
src_builder.build_root.path orelse ".",
|
|
2644
|
-
s.name,
|
|
2645
|
-
});
|
|
2646
|
-
|
|
2647
|
-
t.setColor(.red) catch {};
|
|
2648
|
-
try w.writeAll(" The step was created by this stack trace:\n");
|
|
2649
|
-
t.setColor(.reset) catch {};
|
|
2650
|
-
|
|
2651
|
-
s.dump(t);
|
|
2652
|
-
if (asking_step) |as| {
|
|
2653
|
-
t.setColor(.red) catch {};
|
|
2654
|
-
try w.print(" The step '{s}' that is missing a dependency on the above step was created by this stack trace:\n", .{as.name});
|
|
2655
|
-
t.setColor(.reset) catch {};
|
|
2656
|
-
|
|
2657
|
-
as.dump(t);
|
|
2658
|
-
}
|
|
2659
|
-
t.setColor(.red) catch {};
|
|
2660
|
-
try w.writeAll(" Proceeding to panic.\n");
|
|
2661
|
-
t.setColor(.reset) catch {};
|
|
2662
|
-
}
|
|
2663
|
-
|
|
2664
2588
|
pub const InstallDir = union(enum) {
|
|
2665
2589
|
prefix: void,
|
|
2666
2590
|
lib: void,
|
|
@@ -2670,18 +2594,18 @@ pub const InstallDir = union(enum) {
|
|
|
2670
2594
|
custom: []const u8,
|
|
2671
2595
|
|
|
2672
2596
|
/// Duplicates the install directory including the path if set to custom.
|
|
2673
|
-
pub fn dupe(dir: InstallDir,
|
|
2597
|
+
pub fn dupe(dir: InstallDir, graph: *const Graph) InstallDir {
|
|
2674
2598
|
if (dir == .custom) {
|
|
2675
|
-
return .{ .custom =
|
|
2599
|
+
return .{ .custom = graph.dupeString(dir.custom) };
|
|
2676
2600
|
} else {
|
|
2677
2601
|
return dir;
|
|
2678
2602
|
}
|
|
2679
2603
|
}
|
|
2680
2604
|
};
|
|
2681
2605
|
|
|
2682
|
-
/// Creates a path leading to a directory inside "tmp" subdirectory of
|
|
2683
|
-
///
|
|
2684
|
-
///
|
|
2606
|
+
/// Creates a path leading to a directory inside "tmp" subdirectory of local
|
|
2607
|
+
/// cache which is created on demand and cleaned up by the build runner upon
|
|
2608
|
+
/// success.
|
|
2685
2609
|
pub fn tmpPath(b: *Build) LazyPath {
|
|
2686
2610
|
const wf = b.addTempFiles();
|
|
2687
2611
|
return wf.getDirectory();
|
|
@@ -2725,7 +2649,9 @@ pub fn systemIntegrationOption(
|
|
|
2725
2649
|
name: []const u8,
|
|
2726
2650
|
config: SystemIntegrationOptionConfig,
|
|
2727
2651
|
) bool {
|
|
2728
|
-
const
|
|
2652
|
+
const graph = b.graph;
|
|
2653
|
+
const arena = graph.arena;
|
|
2654
|
+
const gop = graph.system_integration_options.getOrPut(arena, name) catch @panic("OOM");
|
|
2729
2655
|
if (gop.found_existing) switch (gop.value_ptr.*) {
|
|
2730
2656
|
.user_disabled => {
|
|
2731
2657
|
gop.value_ptr.* = .declared_disabled;
|
|
@@ -2738,8 +2664,8 @@ pub fn systemIntegrationOption(
|
|
|
2738
2664
|
.declared_disabled => return false,
|
|
2739
2665
|
.declared_enabled => return true,
|
|
2740
2666
|
} else {
|
|
2741
|
-
gop.key_ptr.* =
|
|
2742
|
-
if (config.default orelse
|
|
2667
|
+
gop.key_ptr.* = graph.dupeString(name);
|
|
2668
|
+
if (config.default orelse graph.system_package_mode) {
|
|
2743
2669
|
gop.value_ptr.* = .declared_enabled;
|
|
2744
2670
|
return true;
|
|
2745
2671
|
} else {
|