@zigc/lib 0.17.0-dev.76 → 0.17.0-dev.813
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/math.zig +41 -2
- package/c/pthread.zig +57 -0
- package/c/stdlib.zig +32 -22
- package/c/string.zig +20 -0
- package/c/unistd.zig +1 -0
- package/c/wchar.zig +10 -0
- package/c.zig +1 -0
- package/{std/Build → compiler/Maker}/Fuzz.zig +177 -89
- package/compiler/Maker/Graph.zig +85 -0
- package/compiler/Maker/PkgConfig.zig +122 -0
- package/compiler/Maker/ScannedConfig.zig +372 -0
- package/compiler/Maker/Step/CheckFile.zig +63 -0
- package/compiler/Maker/Step/Compile.zig +1388 -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 +2390 -0
- package/compiler/Maker/Step/TranslateC.zig +157 -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 +36 -26
- 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/Attribute.zig +52 -51
- package/compiler/aro/aro/CodeGen.zig +7 -8
- package/compiler/aro/aro/Compilation.zig +22 -22
- package/compiler/aro/aro/Diagnostics.zig +7 -7
- package/compiler/aro/aro/Driver.zig +18 -16
- package/compiler/aro/aro/Parser.zig +22 -17
- package/compiler/aro/aro/Pragma.zig +3 -2
- package/compiler/aro/aro/Preprocessor.zig +11 -8
- package/compiler/aro/aro/Tree.zig +11 -11
- package/compiler/aro/aro/features.zig +4 -4
- package/compiler/aro/aro/pragmas/message.zig +3 -2
- package/compiler/aro/aro/text_literal.zig +5 -4
- package/compiler/aro/assembly_backend/x86_64.zig +4 -4
- package/compiler/aro/backend/Interner.zig +14 -13
- 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/bmp.zig +3 -2
- package/compiler/resinator/code_pages.zig +14 -12
- package/compiler/resinator/compile.zig +1 -1
- package/compiler/resinator/cvtres.zig +15 -14
- package/compiler/resinator/errors.zig +25 -29
- package/compiler/resinator/ico.zig +4 -4
- package/compiler/resinator/lang.zig +7 -7
- package/compiler/resinator/parse.zig +3 -3
- 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 +22 -29
- 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 -34
- package/compiler_rt/log.zig +230 -3
- package/compiler_rt/log10.zig +228 -3
- package/compiler_rt/log2.zig +221 -3
- package/compiler_rt/log_f128.zig +173 -0
- 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/Document.zig +3 -3
- package/docs/wasm/markdown/Parser.zig +19 -23
- 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-linux-gnu/bits/struct_mutex.h +2 -2
- 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/s390x-linux-gnu/bits/fenv.h +2 -2
- package/libc/include/s390x-linux-gnu/bits/struct_mutex.h +2 -2
- 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-linux-gnu/bits/struct_mutex.h +2 -2
- 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 +42 -43
- package/std/Build/Cache.zig +19 -9
- package/std/Build/Configuration.zig +3479 -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 +56 -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 +55 -284
- 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 +725 -770
- 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 +5 -5
- package/std/Io/Reader.zig +66 -23
- package/std/Io/RwLock.zig +2 -0
- package/std/Io/Terminal.zig +1 -1
- package/std/Io/Threaded.zig +36 -30
- package/std/Io/Uring.zig +11 -9
- package/std/Io/Writer.zig +125 -37
- package/std/Io/net/HostName.zig +11 -6
- package/std/Io/net.zig +3 -1
- package/std/Io.zig +29 -19
- package/std/Progress.zig +2 -2
- 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 +622 -79
- package/std/Target/alpha.zig +2 -2
- package/std/Target/amdgcn.zig +423 -23
- package/std/Target/arc.zig +2 -2
- package/std/Target/arm.zig +42 -8
- package/std/Target/avr.zig +2 -2
- package/std/Target/bpf.zig +8 -2
- package/std/Target/csky.zig +2 -2
- package/std/Target/hexagon.zig +43 -8
- package/std/Target/hppa.zig +2 -2
- package/std/Target/kvx.zig +2 -2
- package/std/Target/lanai.zig +2 -2
- package/std/Target/loongarch.zig +20 -2
- package/std/Target/m68k.zig +2 -2
- package/std/Target/mips.zig +8 -2
- package/std/Target/msp430.zig +2 -2
- package/std/Target/nvptx.zig +60 -37
- package/std/Target/powerpc.zig +29 -21
- package/std/Target/propeller.zig +2 -2
- package/std/Target/riscv.zig +514 -179
- package/std/Target/s390x.zig +2 -2
- package/std/Target/sparc.zig +19 -2
- package/std/Target/spirv.zig +3 -3
- package/std/Target/ve.zig +2 -2
- package/std/Target/wasm.zig +9 -2
- package/std/Target/x86.zig +202 -33
- package/std/Target/xcore.zig +2 -2
- package/std/Target/xtensa.zig +67 -2
- package/std/Target.zig +101 -62
- package/std/Thread.zig +39 -6
- package/std/array_hash_map.zig +104 -59
- 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/darwin.zig +7 -1
- package/std/c.zig +88 -29
- package/std/coff.zig +1 -1
- package/std/compress/flate/Compress.zig +4 -2
- 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/aesni.zig +1 -1
- package/std/crypto/aes/armcrypto.zig +4 -4
- package/std/crypto/aes/soft.zig +4 -4
- package/std/crypto/aes.zig +12 -0
- 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/aes_siv.zig +4 -2
- 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 +22 -11
- package/std/crypto/codecs/asn1/der/Decoder.zig +51 -20
- package/std/crypto/codecs/asn1/der/Encoder.zig +111 -46
- package/std/crypto/codecs/asn1/der.zig +42 -0
- package/std/crypto/codecs/asn1.zig +97 -38
- package/std/crypto/codecs/base64_hex_ct.zig +3 -5
- package/std/crypto/codecs.zig +6 -0
- package/std/crypto/ecdsa.zig +9 -9
- package/std/crypto/ff.zig +7 -6
- 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/phc_encoding.zig +23 -20
- 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 +11 -10
- package/std/crypto/tls/Client.zig +107 -16
- package/std/crypto/tls.zig +2 -2
- package/std/crypto.zig +4 -3
- package/std/debug/Dwarf/Unwind/VirtualMachine.zig +11 -5
- package/std/debug/Dwarf.zig +21 -12
- package/std/debug/ElfFile.zig +12 -8
- package/std/debug/MachOFile.zig +2 -2
- package/std/debug/Pdb.zig +86 -51
- package/std/debug/SelfInfo/Elf.zig +13 -9
- package/std/debug/SelfInfo/MachO.zig +44 -17
- package/std/debug/SelfInfo/Windows.zig +5 -7
- package/std/debug/cpu_context.zig +231 -39
- package/std/debug.zig +16 -8
- package/std/deque.zig +1 -1
- package/std/elf.zig +29 -12
- package/std/enums.zig +74 -87
- 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/gpu.zig +1 -1
- package/std/hash/Adler32.zig +3 -3
- package/std/hash/auto_hash.zig +8 -8
- package/std/hash/benchmark.zig +2 -2
- package/std/hash/verify.zig +3 -3
- 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/BrkAllocator.zig +1 -1
- 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/Client.zig +2 -2
- package/std/http.zig +4 -5
- package/std/json/Scanner.zig +2 -2
- package/std/json/Stringify.zig +14 -14
- package/std/json/static.zig +49 -32
- package/std/json.zig +1 -1
- package/std/{builtin → lang}/assembly.zig +71 -0
- package/std/{builtin.zig → lang.zig} +70 -100
- 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 +6 -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/log1p.zig +13 -19
- 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 +28 -28
- package/std/mem/Allocator.zig +14 -18
- package/std/mem.zig +137 -176
- package/std/meta/trailer_flags.zig +27 -20
- package/std/meta.zig +134 -215
- package/std/multi_array_list.zig +70 -54
- 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/csky.zig +165 -0
- package/std/os/linux/ioctl.zig +3 -2
- package/std/os/linux/microblaze.zig +170 -0
- package/std/os/linux/sh.zig +239 -0
- package/std/os/linux/sparc.zig +277 -0
- package/std/os/linux/sparc64.zig +44 -30
- package/std/os/linux/syscalls.zig +2246 -13
- package/std/os/linux/tls.zig +12 -1
- package/std/os/linux/x86.zig +2 -2
- package/std/os/linux/xtensa.zig +193 -0
- package/std/os/linux.zig +829 -58
- package/std/os/plan9.zig +1 -1
- package/std/os/uefi/hii.zig +1 -1
- package/std/os/uefi/protocol/device_path.zig +8 -7
- package/std/os/uefi/protocol/file.zig +16 -0
- 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 +139 -16
- package/std/os.zig +0 -15
- package/std/pie.zig +19 -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/sort/pdq.zig +91 -13
- package/std/start.zig +63 -22
- package/std/static_string_map.zig +59 -1
- package/std/std.zig +8 -1
- package/std/tar/Writer.zig +39 -33
- package/std/tar.zig +8 -4
- package/std/testing/Smith.zig +35 -21
- package/std/testing.zig +83 -30
- package/std/unicode.zig +13 -8
- package/std/zig/Ast/Render.zig +6 -30
- package/std/zig/Ast.zig +16 -41
- package/std/zig/AstGen.zig +216 -300
- package/std/zig/AstRlAnnotate.zig +1 -11
- package/std/zig/AstSmith.zig +5 -11
- package/std/zig/ErrorBundle.zig +22 -15
- package/std/zig/LibCDirs.zig +14 -7
- package/std/zig/LibCInstallation.zig +61 -26
- package/std/zig/Parse.zig +18 -83
- package/std/zig/PkgConfig.zig +151 -0
- package/std/zig/TokenSmith.zig +0 -6
- package/std/zig/WindowsSdk.zig +18 -18
- package/std/zig/Zir.zig +22 -76
- package/std/zig/ZonGen.zig +19 -27
- package/std/zig/c_translation/helpers.zig +2 -2
- package/std/zig/llvm/BitcodeReader.zig +3 -3
- package/std/zig/llvm/Builder.zig +163 -126
- package/std/zig/llvm/bitcode_writer.zig +7 -7
- package/std/zig/llvm/ir.zig +8 -8
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/darwin/macos.zig +11 -7
- package/std/zig/system/linux.zig +4 -0
- package/std/zig/system/loongarch.zig +25 -9
- package/std/zig/system/windows.zig +45 -12
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +23 -30
- package/std/zig/target.zig +3 -5
- package/std/zig/tokenizer.zig +4 -43
- package/std/zig.zig +114 -26
- package/std/zip.zig +5 -5
- package/std/zon/Serializer.zig +34 -25
- package/std/zon/parse.zig +84 -62
- package/ubsan_rt.zig +3 -3
- package/zig.h +61 -11
- 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/log1p.s +0 -25
- package/libc/musl/src/math/i386/log1pf.s +0 -26
- 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/log1p.c +0 -122
- package/libc/musl/src/math/log1pf.c +0 -77
- 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/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,67 +358,41 @@ 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
|
}
|
|
417
389
|
|
|
418
390
|
fn userInputOptionsFromArgs(arena: Allocator, args: anytype) UserInputOptionsMap {
|
|
419
391
|
var map = UserInputOptionsMap.init(arena);
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
392
|
+
const args_info = @typeInfo(@TypeOf(args)).@"struct";
|
|
393
|
+
inline for (args_info.field_names, args_info.field_types) |field_name, field_type| {
|
|
394
|
+
if (field_type == @TypeOf(null)) continue;
|
|
395
|
+
addUserInputOptionFromArg(arena, &map, field_name, field_type, @field(args, field_name));
|
|
423
396
|
}
|
|
424
397
|
return map;
|
|
425
398
|
}
|
|
@@ -427,15 +400,15 @@ fn userInputOptionsFromArgs(arena: Allocator, args: anytype) UserInputOptionsMap
|
|
|
427
400
|
fn addUserInputOptionFromArg(
|
|
428
401
|
arena: Allocator,
|
|
429
402
|
map: *UserInputOptionsMap,
|
|
430
|
-
|
|
403
|
+
field_name: [:0]const u8,
|
|
431
404
|
comptime T: type,
|
|
432
405
|
/// If null, the value won't be added, but `T` will still be type-checked.
|
|
433
406
|
maybe_value: ?T,
|
|
434
407
|
) void {
|
|
435
408
|
switch (T) {
|
|
436
409
|
Target.Query => return if (maybe_value) |v| {
|
|
437
|
-
map.put(
|
|
438
|
-
.name =
|
|
410
|
+
map.put(field_name, .{
|
|
411
|
+
.name = field_name,
|
|
439
412
|
.value = .{ .scalar = v.zigTriple(arena) catch @panic("OOM") },
|
|
440
413
|
.used = false,
|
|
441
414
|
}) catch @panic("OOM");
|
|
@@ -446,8 +419,8 @@ fn addUserInputOptionFromArg(
|
|
|
446
419
|
}) catch @panic("OOM");
|
|
447
420
|
},
|
|
448
421
|
ResolvedTarget => return if (maybe_value) |v| {
|
|
449
|
-
map.put(
|
|
450
|
-
.name =
|
|
422
|
+
map.put(field_name, .{
|
|
423
|
+
.name = field_name,
|
|
451
424
|
.value = .{ .scalar = v.query.zigTriple(arena) catch @panic("OOM") },
|
|
452
425
|
.used = false,
|
|
453
426
|
}) catch @panic("OOM");
|
|
@@ -458,15 +431,15 @@ fn addUserInputOptionFromArg(
|
|
|
458
431
|
}) catch @panic("OOM");
|
|
459
432
|
},
|
|
460
433
|
std.zig.BuildId => return if (maybe_value) |v| {
|
|
461
|
-
map.put(
|
|
462
|
-
.name =
|
|
434
|
+
map.put(field_name, .{
|
|
435
|
+
.name = field_name,
|
|
463
436
|
.value = .{ .scalar = std.fmt.allocPrint(arena, "{f}", .{v}) catch @panic("OOM") },
|
|
464
437
|
.used = false,
|
|
465
438
|
}) catch @panic("OOM");
|
|
466
439
|
},
|
|
467
440
|
LazyPath => return if (maybe_value) |v| {
|
|
468
|
-
map.put(
|
|
469
|
-
.name =
|
|
441
|
+
map.put(field_name, .{
|
|
442
|
+
.name = field_name,
|
|
470
443
|
.value = .{ .lazy_path = v.dupeInner(arena) },
|
|
471
444
|
.used = false,
|
|
472
445
|
}) catch @panic("OOM");
|
|
@@ -474,15 +447,15 @@ fn addUserInputOptionFromArg(
|
|
|
474
447
|
[]const LazyPath => return if (maybe_value) |v| {
|
|
475
448
|
var list = std.array_list.Managed(LazyPath).initCapacity(arena, v.len) catch @panic("OOM");
|
|
476
449
|
for (v) |lp| list.appendAssumeCapacity(lp.dupeInner(arena));
|
|
477
|
-
map.put(
|
|
478
|
-
.name =
|
|
450
|
+
map.put(field_name, .{
|
|
451
|
+
.name = field_name,
|
|
479
452
|
.value = .{ .lazy_path_list = list },
|
|
480
453
|
.used = false,
|
|
481
454
|
}) catch @panic("OOM");
|
|
482
455
|
},
|
|
483
456
|
[]const u8 => return if (maybe_value) |v| {
|
|
484
|
-
map.put(
|
|
485
|
-
.name =
|
|
457
|
+
map.put(field_name, .{
|
|
458
|
+
.name = field_name,
|
|
486
459
|
.value = .{ .scalar = arena.dupe(u8, v) catch @panic("OOM") },
|
|
487
460
|
.used = false,
|
|
488
461
|
}) catch @panic("OOM");
|
|
@@ -490,37 +463,37 @@ fn addUserInputOptionFromArg(
|
|
|
490
463
|
[]const []const u8 => return if (maybe_value) |v| {
|
|
491
464
|
var list = std.array_list.Managed([]const u8).initCapacity(arena, v.len) catch @panic("OOM");
|
|
492
465
|
for (v) |s| list.appendAssumeCapacity(arena.dupe(u8, s) catch @panic("OOM"));
|
|
493
|
-
map.put(
|
|
494
|
-
.name =
|
|
466
|
+
map.put(field_name, .{
|
|
467
|
+
.name = field_name,
|
|
495
468
|
.value = .{ .list = list },
|
|
496
469
|
.used = false,
|
|
497
470
|
}) catch @panic("OOM");
|
|
498
471
|
},
|
|
499
472
|
else => switch (@typeInfo(T)) {
|
|
500
473
|
.bool => return if (maybe_value) |v| {
|
|
501
|
-
map.put(
|
|
502
|
-
.name =
|
|
474
|
+
map.put(field_name, .{
|
|
475
|
+
.name = field_name,
|
|
503
476
|
.value = .{ .scalar = if (v) "true" else "false" },
|
|
504
477
|
.used = false,
|
|
505
478
|
}) catch @panic("OOM");
|
|
506
479
|
},
|
|
507
480
|
.@"enum", .enum_literal => return if (maybe_value) |v| {
|
|
508
|
-
map.put(
|
|
509
|
-
.name =
|
|
481
|
+
map.put(field_name, .{
|
|
482
|
+
.name = field_name,
|
|
510
483
|
.value = .{ .scalar = @tagName(v) },
|
|
511
484
|
.used = false,
|
|
512
485
|
}) catch @panic("OOM");
|
|
513
486
|
},
|
|
514
487
|
.comptime_int, .int => return if (maybe_value) |v| {
|
|
515
|
-
map.put(
|
|
516
|
-
.name =
|
|
488
|
+
map.put(field_name, .{
|
|
489
|
+
.name = field_name,
|
|
517
490
|
.value = .{ .scalar = std.fmt.allocPrint(arena, "{d}", .{v}) catch @panic("OOM") },
|
|
518
491
|
.used = false,
|
|
519
492
|
}) catch @panic("OOM");
|
|
520
493
|
},
|
|
521
494
|
.comptime_float, .float => return if (maybe_value) |v| {
|
|
522
|
-
map.put(
|
|
523
|
-
.name =
|
|
495
|
+
map.put(field_name, .{
|
|
496
|
+
.name = field_name,
|
|
524
497
|
.value = .{ .scalar = std.fmt.allocPrint(arena, "{x}", .{v}) catch @panic("OOM") },
|
|
525
498
|
.used = false,
|
|
526
499
|
}) catch @panic("OOM");
|
|
@@ -531,7 +504,7 @@ fn addUserInputOptionFromArg(
|
|
|
531
504
|
addUserInputOptionFromArg(
|
|
532
505
|
arena,
|
|
533
506
|
map,
|
|
534
|
-
|
|
507
|
+
field_name,
|
|
535
508
|
@Pointer(.slice, .{ .@"const" = true }, array_info.child, null),
|
|
536
509
|
maybe_value orelse null,
|
|
537
510
|
);
|
|
@@ -543,8 +516,8 @@ fn addUserInputOptionFromArg(
|
|
|
543
516
|
.@"enum" => return if (maybe_value) |v| {
|
|
544
517
|
var list = std.array_list.Managed([]const u8).initCapacity(arena, v.len) catch @panic("OOM");
|
|
545
518
|
for (v) |tag| list.appendAssumeCapacity(@tagName(tag));
|
|
546
|
-
map.put(
|
|
547
|
-
.name =
|
|
519
|
+
map.put(field_name, .{
|
|
520
|
+
.name = field_name,
|
|
548
521
|
.value = .{ .list = list },
|
|
549
522
|
.used = false,
|
|
550
523
|
}) catch @panic("OOM");
|
|
@@ -553,7 +526,7 @@ fn addUserInputOptionFromArg(
|
|
|
553
526
|
addUserInputOptionFromArg(
|
|
554
527
|
arena,
|
|
555
528
|
map,
|
|
556
|
-
|
|
529
|
+
field_name,
|
|
557
530
|
@Pointer(ptr_info.size, .{ .@"const" = true }, ptr_info.child, null),
|
|
558
531
|
maybe_value orelse null,
|
|
559
532
|
);
|
|
@@ -569,7 +542,7 @@ fn addUserInputOptionFromArg(
|
|
|
569
542
|
addUserInputOptionFromArg(
|
|
570
543
|
arena,
|
|
571
544
|
map,
|
|
572
|
-
|
|
545
|
+
field_name,
|
|
573
546
|
info.child,
|
|
574
547
|
maybe_value orelse null,
|
|
575
548
|
);
|
|
@@ -579,7 +552,7 @@ fn addUserInputOptionFromArg(
|
|
|
579
552
|
else => {},
|
|
580
553
|
},
|
|
581
554
|
}
|
|
582
|
-
@compileError("option '" ++
|
|
555
|
+
@compileError("option '" ++ field_name ++ "' has unsupported type: " ++ @typeName(T));
|
|
583
556
|
}
|
|
584
557
|
|
|
585
558
|
const OrderedUserValue = union(enum) {
|
|
@@ -624,13 +597,17 @@ const OrderedUserValue = union(enum) {
|
|
|
624
597
|
hasher.update(sp.sub_path);
|
|
625
598
|
},
|
|
626
599
|
.generated => |gen| {
|
|
627
|
-
hasher.update(gen.
|
|
628
|
-
hasher.update(
|
|
600
|
+
hasher.update(@ptrCast(&gen.index));
|
|
601
|
+
hasher.update(@ptrCast(&gen.up));
|
|
629
602
|
hasher.update(gen.sub_path);
|
|
630
603
|
},
|
|
631
604
|
.cwd_relative => |rel_path| {
|
|
632
605
|
hasher.update(rel_path);
|
|
633
606
|
},
|
|
607
|
+
.relative => |r| {
|
|
608
|
+
hasher.update(@ptrCast(&r.base));
|
|
609
|
+
hasher.update(@ptrCast(&r.sub_path));
|
|
610
|
+
},
|
|
634
611
|
.dependency => |dep| {
|
|
635
612
|
hasher.update(dep.dependency.builder.pkg_hash);
|
|
636
613
|
hasher.update(dep.sub_path);
|
|
@@ -702,59 +679,6 @@ fn hashUserInputOptionsMap(allocator: Allocator, user_input_options: UserInputOp
|
|
|
702
679
|
user_option.hash(hasher);
|
|
703
680
|
}
|
|
704
681
|
|
|
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
682
|
/// Create a set of key-value pairs that can be converted into a Zig source
|
|
759
683
|
/// file and then inserted into a Zig compilation's module table for importing.
|
|
760
684
|
/// In other words, this provides a way to expose build.zig values to Zig
|
|
@@ -769,7 +693,7 @@ pub const ExecutableOptions = struct {
|
|
|
769
693
|
root_module: *Module,
|
|
770
694
|
version: ?std.SemanticVersion = null,
|
|
771
695
|
linkage: ?std.builtin.LinkMode = null,
|
|
772
|
-
max_rss:
|
|
696
|
+
max_rss: u64 = 0,
|
|
773
697
|
use_llvm: ?bool = null,
|
|
774
698
|
use_lld: ?bool = null,
|
|
775
699
|
zig_lib_dir: ?LazyPath = null,
|
|
@@ -799,7 +723,7 @@ pub fn addExecutable(b: *Build, options: ExecutableOptions) *Step.Compile {
|
|
|
799
723
|
pub const ObjectOptions = struct {
|
|
800
724
|
name: []const u8,
|
|
801
725
|
root_module: *Module,
|
|
802
|
-
max_rss:
|
|
726
|
+
max_rss: u64 = 0,
|
|
803
727
|
use_llvm: ?bool = null,
|
|
804
728
|
use_lld: ?bool = null,
|
|
805
729
|
zig_lib_dir: ?LazyPath = null,
|
|
@@ -822,7 +746,7 @@ pub const LibraryOptions = struct {
|
|
|
822
746
|
name: []const u8,
|
|
823
747
|
root_module: *Module,
|
|
824
748
|
version: ?std.SemanticVersion = null,
|
|
825
|
-
max_rss:
|
|
749
|
+
max_rss: u64 = 0,
|
|
826
750
|
use_llvm: ?bool = null,
|
|
827
751
|
use_lld: ?bool = null,
|
|
828
752
|
zig_lib_dir: ?LazyPath = null,
|
|
@@ -855,7 +779,7 @@ pub fn addLibrary(b: *Build, options: LibraryOptions) *Step.Compile {
|
|
|
855
779
|
pub const TestOptions = struct {
|
|
856
780
|
name: []const u8 = "test",
|
|
857
781
|
root_module: *Module,
|
|
858
|
-
max_rss:
|
|
782
|
+
max_rss: u64 = 0,
|
|
859
783
|
filters: []const []const u8 = &.{},
|
|
860
784
|
test_runner: ?Step.Compile.TestRunner = null,
|
|
861
785
|
use_llvm: ?bool = null,
|
|
@@ -896,7 +820,7 @@ pub const AssemblyOptions = struct {
|
|
|
896
820
|
/// `host` field of the package's `Build` instance.
|
|
897
821
|
target: ResolvedTarget,
|
|
898
822
|
optimize: std.builtin.OptimizeMode,
|
|
899
|
-
max_rss:
|
|
823
|
+
max_rss: u64 = 0,
|
|
900
824
|
zig_lib_dir: ?LazyPath = null,
|
|
901
825
|
};
|
|
902
826
|
|
|
@@ -904,8 +828,20 @@ pub const AssemblyOptions = struct {
|
|
|
904
828
|
/// it available to other packages which depend on this one.
|
|
905
829
|
/// `createModule` can be used instead to create a private module.
|
|
906
830
|
pub fn addModule(b: *Build, name: []const u8, options: Module.CreateOptions) *Module {
|
|
831
|
+
const graph = b.graph;
|
|
832
|
+
const arena = graph.arena;
|
|
907
833
|
const module = Module.create(b, options);
|
|
908
|
-
b.modules.
|
|
834
|
+
const gop = b.modules.getOrPutValue(
|
|
835
|
+
arena,
|
|
836
|
+
graph.dupeString(name),
|
|
837
|
+
module,
|
|
838
|
+
) catch @panic("OOM");
|
|
839
|
+
if (gop.found_existing) {
|
|
840
|
+
panic(
|
|
841
|
+
"A module with the name '{s}' has already been added to the package. Consider creating a private module with std.Build.createModule",
|
|
842
|
+
.{name},
|
|
843
|
+
);
|
|
844
|
+
}
|
|
909
845
|
return module;
|
|
910
846
|
}
|
|
911
847
|
|
|
@@ -916,11 +852,23 @@ pub fn createModule(b: *Build, options: Module.CreateOptions) *Module {
|
|
|
916
852
|
return Module.create(b, options);
|
|
917
853
|
}
|
|
918
854
|
|
|
919
|
-
///
|
|
920
|
-
///
|
|
921
|
-
/// `
|
|
922
|
-
///
|
|
923
|
-
///
|
|
855
|
+
/// Creates a step that executes a process on the host system.
|
|
856
|
+
///
|
|
857
|
+
/// `argv` is one or more command line arguments passed to the executed
|
|
858
|
+
/// process. The first element is the name of the executable to run. More
|
|
859
|
+
/// command line arguments can be added with methods of `Step.Run`, such as:
|
|
860
|
+
/// * `Step.Run.addArgs`
|
|
861
|
+
/// * `Step.Run.addArtifactArg`
|
|
862
|
+
/// * `Step.Run.addFileArg`
|
|
863
|
+
/// * `Step.Run.addOutputFileArg`
|
|
864
|
+
///
|
|
865
|
+
/// This function introduces a system dependency, compromising reproducibility
|
|
866
|
+
/// and making it more difficult to set up one's computer in order to build the
|
|
867
|
+
/// project from source.
|
|
868
|
+
///
|
|
869
|
+
/// See also:
|
|
870
|
+
/// * `addRunArtifact`
|
|
871
|
+
/// * `addRunFile`
|
|
924
872
|
pub fn addSystemCommand(b: *Build, argv: []const []const u8) *Step.Run {
|
|
925
873
|
assert(argv.len >= 1);
|
|
926
874
|
const run_step = Step.Run.create(b, b.fmt("run {s}", .{argv[0]}));
|
|
@@ -930,16 +878,22 @@ pub fn addSystemCommand(b: *Build, argv: []const []const u8) *Step.Run {
|
|
|
930
878
|
|
|
931
879
|
/// Creates a `Step.Run` with an executable built with `addExecutable`.
|
|
932
880
|
/// Add command line arguments with methods of `Step.Run`.
|
|
881
|
+
///
|
|
882
|
+
/// It doesn't have to target the host. In some cases cross-compiled binaries
|
|
883
|
+
/// can even be executed.
|
|
884
|
+
///
|
|
885
|
+
/// This is declarative; it constructs a build step that may or may not be run
|
|
886
|
+
/// depending on the options provided by the user to the build command.
|
|
887
|
+
///
|
|
888
|
+
/// See also:
|
|
889
|
+
/// * `addSystemCommand`
|
|
890
|
+
/// * `addRunFile`
|
|
933
891
|
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
892
|
// Avoid the common case of the step name looking like "run test test".
|
|
939
893
|
const step_name = if (exe.kind.isTest() and mem.eql(u8, exe.name, "test"))
|
|
940
|
-
b.fmt("run {
|
|
894
|
+
b.fmt("run {t}", .{exe.kind})
|
|
941
895
|
else
|
|
942
|
-
b.fmt("run {
|
|
896
|
+
b.fmt("run {t} {s}", .{ exe.kind, exe.name });
|
|
943
897
|
|
|
944
898
|
const run_step = Step.Run.create(b, step_name);
|
|
945
899
|
run_step.producer = exe;
|
|
@@ -994,6 +948,19 @@ pub fn addRunArtifact(b: *Build, exe: *Step.Compile) *Step.Run {
|
|
|
994
948
|
return run_step;
|
|
995
949
|
}
|
|
996
950
|
|
|
951
|
+
/// Creates a step that executes the provided file.
|
|
952
|
+
///
|
|
953
|
+
/// Add more command line arguments via methods of `Step.Run`.
|
|
954
|
+
///
|
|
955
|
+
/// See also:
|
|
956
|
+
/// * `addSystemCommand`
|
|
957
|
+
/// * `addRunArtifact`
|
|
958
|
+
pub fn addRunFile(b: *Build, executable: LazyPath) *Step.Run {
|
|
959
|
+
const run_step = Step.Run.create(b, b.fmt("run {f}", .{executable}));
|
|
960
|
+
run_step.addFileArg(executable);
|
|
961
|
+
return run_step;
|
|
962
|
+
}
|
|
963
|
+
|
|
997
964
|
/// Using the `values` provided, produces a C header file, possibly based on a
|
|
998
965
|
/// template input file (e.g. config.h.in).
|
|
999
966
|
/// When an input template file is provided, this function will fail the build
|
|
@@ -1013,36 +980,18 @@ pub fn addConfigHeader(
|
|
|
1013
980
|
return config_header_step;
|
|
1014
981
|
}
|
|
1015
982
|
|
|
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");
|
|
983
|
+
pub fn dupe(b: *Build, bytes: []const u8) []const u8 {
|
|
984
|
+
return b.graph.dupeString(bytes);
|
|
1023
985
|
}
|
|
1024
986
|
|
|
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;
|
|
987
|
+
/// Deprecated, call `Graph.dupeStrings` instead.
|
|
988
|
+
pub fn dupeStrings(b: *Build, strings: []const []const u8) []const []const u8 {
|
|
989
|
+
return b.graph.dupeStrings(strings);
|
|
1030
990
|
}
|
|
1031
991
|
|
|
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;
|
|
992
|
+
/// Deprecated, call `Graph.dupePath` instead.
|
|
993
|
+
pub fn dupePath(b: *Build, bytes: []const u8) []const u8 {
|
|
994
|
+
return b.graph.dupePath(bytes);
|
|
1046
995
|
}
|
|
1047
996
|
|
|
1048
997
|
pub fn addWriteFile(b: *Build, file_path: []const u8, data: []const u8) *Step.WriteFile {
|
|
@@ -1052,13 +1001,35 @@ pub fn addWriteFile(b: *Build, file_path: []const u8, data: []const u8) *Step.Wr
|
|
|
1052
1001
|
}
|
|
1053
1002
|
|
|
1054
1003
|
pub fn addNamedWriteFiles(b: *Build, name: []const u8) *Step.WriteFile {
|
|
1004
|
+
const graph = b.graph;
|
|
1055
1005
|
const wf = Step.WriteFile.create(b);
|
|
1056
|
-
b.named_writefiles.
|
|
1006
|
+
const gop = b.named_writefiles.getOrPutValue(
|
|
1007
|
+
graph.arena,
|
|
1008
|
+
graph.dupeString(name),
|
|
1009
|
+
wf,
|
|
1010
|
+
) catch @panic("OOM");
|
|
1011
|
+
if (gop.found_existing) {
|
|
1012
|
+
panic(
|
|
1013
|
+
"A WriteFile step with the name '{s}' has already been added to the package. Consider creating a private WriteFile step with std.Build.addWriteFiles",
|
|
1014
|
+
.{name},
|
|
1015
|
+
);
|
|
1016
|
+
}
|
|
1057
1017
|
return wf;
|
|
1058
1018
|
}
|
|
1059
1019
|
|
|
1060
1020
|
pub fn addNamedLazyPath(b: *Build, name: []const u8, lp: LazyPath) void {
|
|
1061
|
-
|
|
1021
|
+
const graph = b.graph;
|
|
1022
|
+
const gop = b.named_lazy_paths.getOrPutValue(
|
|
1023
|
+
graph.arena,
|
|
1024
|
+
graph.dupeString(name),
|
|
1025
|
+
lp.dupe(graph),
|
|
1026
|
+
) catch @panic("OOM");
|
|
1027
|
+
if (gop.found_existing) {
|
|
1028
|
+
panic(
|
|
1029
|
+
"A LazyPath with the name '{s}' has already been added to the package.",
|
|
1030
|
+
.{name},
|
|
1031
|
+
);
|
|
1032
|
+
}
|
|
1062
1033
|
}
|
|
1063
1034
|
|
|
1064
1035
|
/// Creates a step for mutating files inside a temporary directory created lazily
|
|
@@ -1097,6 +1068,16 @@ pub fn addWriteFiles(b: *Build) *Step.WriteFile {
|
|
|
1097
1068
|
return Step.WriteFile.create(b);
|
|
1098
1069
|
}
|
|
1099
1070
|
|
|
1071
|
+
/// Creates a step for writing data to paths relative to the build root,
|
|
1072
|
+
/// mutating the project's source files.
|
|
1073
|
+
///
|
|
1074
|
+
/// This build step was designed not to be used during the normal build
|
|
1075
|
+
/// process, but rather as a utility run by a developer with intention to
|
|
1076
|
+
/// update source files, which will then be committed to version control.
|
|
1077
|
+
///
|
|
1078
|
+
/// Example use cases:
|
|
1079
|
+
/// * precompiling assets which are tracked by version control
|
|
1080
|
+
/// * snapshot testing
|
|
1100
1081
|
pub fn addUpdateSourceFiles(b: *Build) *Step.UpdateSourceFiles {
|
|
1101
1082
|
return Step.UpdateSourceFiles.create(b);
|
|
1102
1083
|
}
|
|
@@ -1121,31 +1102,24 @@ pub fn getUninstallStep(b: *Build) *Step {
|
|
|
1121
1102
|
return &b.uninstall_tls.step;
|
|
1122
1103
|
}
|
|
1123
1104
|
|
|
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
1105
|
/// Creates a configuration option to be passed to the build.zig script.
|
|
1134
1106
|
/// When a user directly runs `zig build`, they can set these options with `-D` arguments.
|
|
1135
1107
|
/// When a project depends on a Zig package as a dependency, it programmatically sets
|
|
1136
1108
|
/// these options when calling the dependency's build.zig script as a function.
|
|
1137
1109
|
/// `null` is returned when an option is left to default.
|
|
1138
1110
|
pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw: []const u8) ?T {
|
|
1139
|
-
const
|
|
1140
|
-
const
|
|
1111
|
+
const graph = b.graph;
|
|
1112
|
+
const arena = graph.arena;
|
|
1113
|
+
const name = graph.dupeString(name_raw);
|
|
1114
|
+
const description = graph.dupeString(description_raw);
|
|
1141
1115
|
const type_id = comptime typeToEnum(T);
|
|
1142
1116
|
const enum_options = if (type_id == .@"enum" or type_id == .enum_list) blk: {
|
|
1143
1117
|
const EnumType = if (type_id == .enum_list) @typeInfo(T).pointer.child else T;
|
|
1144
|
-
const
|
|
1145
|
-
var options = std.array_list.Managed([]const u8).initCapacity(b.allocator,
|
|
1118
|
+
const field_names = comptime std.meta.fieldNames(EnumType);
|
|
1119
|
+
var options = std.array_list.Managed([]const u8).initCapacity(b.allocator, field_names.len) catch @panic("OOM");
|
|
1146
1120
|
|
|
1147
|
-
inline for (
|
|
1148
|
-
options.appendAssumeCapacity(
|
|
1121
|
+
inline for (field_names) |field_name| {
|
|
1122
|
+
options.appendAssumeCapacity(field_name);
|
|
1149
1123
|
}
|
|
1150
1124
|
|
|
1151
1125
|
break :blk options.toOwnedSlice() catch @panic("OOM");
|
|
@@ -1156,10 +1130,9 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1156
1130
|
.description = description,
|
|
1157
1131
|
.enum_options = enum_options,
|
|
1158
1132
|
};
|
|
1159
|
-
if ((b.available_options_map.fetchPut(name, available_option) catch @panic("OOM")) != null) {
|
|
1160
|
-
panic("
|
|
1133
|
+
if ((b.available_options_map.fetchPut(arena, name, available_option) catch @panic("OOM")) != null) {
|
|
1134
|
+
panic("option '{s}' declared twice", .{name});
|
|
1161
1135
|
}
|
|
1162
|
-
b.available_options_list.append(available_option) catch @panic("OOM");
|
|
1163
1136
|
|
|
1164
1137
|
const option_ptr = b.user_input_options.getPtr(name) orelse return null;
|
|
1165
1138
|
option_ptr.used = true;
|
|
@@ -1172,36 +1145,32 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1172
1145
|
} else if (mem.eql(u8, s, "false")) {
|
|
1173
1146
|
return false;
|
|
1174
1147
|
} else {
|
|
1175
|
-
log.err("
|
|
1148
|
+
log.err("expected -D{s} to be a boolean; received: {s}", .{ name, s });
|
|
1176
1149
|
b.markInvalidUserInput();
|
|
1177
1150
|
return null;
|
|
1178
1151
|
}
|
|
1179
1152
|
},
|
|
1180
1153
|
.list, .map, .lazy_path, .lazy_path_list => {
|
|
1181
|
-
log.err("
|
|
1182
|
-
name, @tagName(option_ptr.value),
|
|
1183
|
-
});
|
|
1154
|
+
log.err("expected -D{s} to be a boolean; received: {t}", .{ name, option_ptr.value });
|
|
1184
1155
|
b.markInvalidUserInput();
|
|
1185
1156
|
return null;
|
|
1186
1157
|
},
|
|
1187
1158
|
},
|
|
1188
1159
|
.int => switch (option_ptr.value) {
|
|
1189
1160
|
.flag, .list, .map, .lazy_path, .lazy_path_list => {
|
|
1190
|
-
log.err("
|
|
1191
|
-
name, @tagName(option_ptr.value),
|
|
1192
|
-
});
|
|
1161
|
+
log.err("expected -D{s} to be an integer; received: {t}", .{ name, option_ptr.value });
|
|
1193
1162
|
b.markInvalidUserInput();
|
|
1194
1163
|
return null;
|
|
1195
1164
|
},
|
|
1196
1165
|
.scalar => |s| {
|
|
1197
1166
|
const n = std.fmt.parseInt(T, s, 10) catch |err| switch (err) {
|
|
1198
1167
|
error.Overflow => {
|
|
1199
|
-
log.err("-D{s} value {s} cannot fit into type {s}
|
|
1168
|
+
log.err("-D{s} value {s} cannot fit into type {s}", .{ name, s, @typeName(T) });
|
|
1200
1169
|
b.markInvalidUserInput();
|
|
1201
1170
|
return null;
|
|
1202
1171
|
},
|
|
1203
1172
|
else => {
|
|
1204
|
-
log.err("
|
|
1173
|
+
log.err("expected -D{s} to be an integer of type {s}", .{ name, @typeName(T) });
|
|
1205
1174
|
b.markInvalidUserInput();
|
|
1206
1175
|
return null;
|
|
1207
1176
|
},
|
|
@@ -1211,15 +1180,13 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1211
1180
|
},
|
|
1212
1181
|
.float => switch (option_ptr.value) {
|
|
1213
1182
|
.flag, .map, .list, .lazy_path, .lazy_path_list => {
|
|
1214
|
-
log.err("
|
|
1215
|
-
name, @tagName(option_ptr.value),
|
|
1216
|
-
});
|
|
1183
|
+
log.err("expected -D{s} to be a float; received: {t}", .{ name, option_ptr.value });
|
|
1217
1184
|
b.markInvalidUserInput();
|
|
1218
1185
|
return null;
|
|
1219
1186
|
},
|
|
1220
1187
|
.scalar => |s| {
|
|
1221
1188
|
const n = std.fmt.parseFloat(T, s) catch {
|
|
1222
|
-
log.err("
|
|
1189
|
+
log.err("expected -D{s} to be a float of type {s}", .{ name, @typeName(T) });
|
|
1223
1190
|
b.markInvalidUserInput();
|
|
1224
1191
|
return null;
|
|
1225
1192
|
};
|
|
@@ -1228,9 +1195,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1228
1195
|
},
|
|
1229
1196
|
.@"enum" => switch (option_ptr.value) {
|
|
1230
1197
|
.flag, .map, .list, .lazy_path, .lazy_path_list => {
|
|
1231
|
-
log.err("
|
|
1232
|
-
name, @tagName(option_ptr.value),
|
|
1233
|
-
});
|
|
1198
|
+
log.err("expected -D{s} to be an enum; received: {t}.", .{ name, option_ptr.value });
|
|
1234
1199
|
b.markInvalidUserInput();
|
|
1235
1200
|
return null;
|
|
1236
1201
|
},
|
|
@@ -1238,7 +1203,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1238
1203
|
if (std.meta.stringToEnum(T, s)) |enum_lit| {
|
|
1239
1204
|
return enum_lit;
|
|
1240
1205
|
} else {
|
|
1241
|
-
log.err("
|
|
1206
|
+
log.err("expected -D{s} to be of type {s}", .{ name, @typeName(T) });
|
|
1242
1207
|
b.markInvalidUserInput();
|
|
1243
1208
|
return null;
|
|
1244
1209
|
}
|
|
@@ -1246,9 +1211,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1246
1211
|
},
|
|
1247
1212
|
.string => switch (option_ptr.value) {
|
|
1248
1213
|
.flag, .list, .map, .lazy_path, .lazy_path_list => {
|
|
1249
|
-
log.err("
|
|
1250
|
-
name, @tagName(option_ptr.value),
|
|
1251
|
-
});
|
|
1214
|
+
log.err("expected -D{s} to be a string; received: {t}", .{ name, option_ptr.value });
|
|
1252
1215
|
b.markInvalidUserInput();
|
|
1253
1216
|
return null;
|
|
1254
1217
|
},
|
|
@@ -1256,9 +1219,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1256
1219
|
},
|
|
1257
1220
|
.build_id => switch (option_ptr.value) {
|
|
1258
1221
|
.flag, .map, .list, .lazy_path, .lazy_path_list => {
|
|
1259
|
-
log.err("
|
|
1260
|
-
name, @tagName(option_ptr.value),
|
|
1261
|
-
});
|
|
1222
|
+
log.err("expected -D{s} to be an enum; received: {t}.", .{ name, option_ptr.value });
|
|
1262
1223
|
b.markInvalidUserInput();
|
|
1263
1224
|
return null;
|
|
1264
1225
|
},
|
|
@@ -1266,7 +1227,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1266
1227
|
if (std.zig.BuildId.parse(s)) |build_id| {
|
|
1267
1228
|
return build_id;
|
|
1268
1229
|
} else |err| {
|
|
1269
|
-
log.err("
|
|
1230
|
+
log.err("failed to parse option -D{s}: {t}", .{ name, err });
|
|
1270
1231
|
b.markInvalidUserInput();
|
|
1271
1232
|
return null;
|
|
1272
1233
|
}
|
|
@@ -1274,42 +1235,38 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1274
1235
|
},
|
|
1275
1236
|
.list => switch (option_ptr.value) {
|
|
1276
1237
|
.flag, .map, .lazy_path, .lazy_path_list => {
|
|
1277
|
-
log.err("
|
|
1278
|
-
name, @tagName(option_ptr.value),
|
|
1279
|
-
});
|
|
1238
|
+
log.err("expected -D{s} to be a list; received: {t}", .{ name, option_ptr.value });
|
|
1280
1239
|
b.markInvalidUserInput();
|
|
1281
1240
|
return null;
|
|
1282
1241
|
},
|
|
1283
1242
|
.scalar => |s| {
|
|
1284
|
-
return
|
|
1243
|
+
return arena.dupe([]const u8, &[_][]const u8{s}) catch @panic("OOM");
|
|
1285
1244
|
},
|
|
1286
1245
|
.list => |lst| return lst.items,
|
|
1287
1246
|
},
|
|
1288
1247
|
.enum_list => switch (option_ptr.value) {
|
|
1289
1248
|
.flag, .map, .lazy_path, .lazy_path_list => {
|
|
1290
|
-
log.err("
|
|
1291
|
-
name, @tagName(option_ptr.value),
|
|
1292
|
-
});
|
|
1249
|
+
log.err("expected -D{s} to be a list; received: {t}", .{ name, option_ptr.value });
|
|
1293
1250
|
b.markInvalidUserInput();
|
|
1294
1251
|
return null;
|
|
1295
1252
|
},
|
|
1296
1253
|
.scalar => |s| {
|
|
1297
1254
|
const Child = @typeInfo(T).pointer.child;
|
|
1298
1255
|
const value = std.meta.stringToEnum(Child, s) orelse {
|
|
1299
|
-
log.err("
|
|
1256
|
+
log.err("expected -D{s} to be of type {s}", .{ name, @typeName(Child) });
|
|
1300
1257
|
b.markInvalidUserInput();
|
|
1301
1258
|
return null;
|
|
1302
1259
|
};
|
|
1303
|
-
return
|
|
1260
|
+
return arena.dupe(Child, &[_]Child{value}) catch @panic("OOM");
|
|
1304
1261
|
},
|
|
1305
1262
|
.list => |lst| {
|
|
1306
1263
|
const Child = @typeInfo(T).pointer.child;
|
|
1307
|
-
const new_list =
|
|
1264
|
+
const new_list = graph.alloc(Child, lst.items.len);
|
|
1308
1265
|
for (new_list, lst.items) |*new_item, str| {
|
|
1309
1266
|
new_item.* = std.meta.stringToEnum(Child, str) orelse {
|
|
1310
|
-
log.err("
|
|
1267
|
+
log.err("expected -D{s} to be of type {s}", .{ name, @typeName(Child) });
|
|
1311
1268
|
b.markInvalidUserInput();
|
|
1312
|
-
|
|
1269
|
+
arena.free(new_list);
|
|
1313
1270
|
return null;
|
|
1314
1271
|
};
|
|
1315
1272
|
}
|
|
@@ -1320,18 +1277,16 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1320
1277
|
.scalar => |s| return .{ .cwd_relative = s },
|
|
1321
1278
|
.lazy_path => |lp| return lp,
|
|
1322
1279
|
.flag, .map, .list, .lazy_path_list => {
|
|
1323
|
-
log.err("
|
|
1324
|
-
name, @tagName(option_ptr.value),
|
|
1325
|
-
});
|
|
1280
|
+
log.err("expected -D{s} to be a path; received: {t}", .{ name, option_ptr.value });
|
|
1326
1281
|
b.markInvalidUserInput();
|
|
1327
1282
|
return null;
|
|
1328
1283
|
},
|
|
1329
1284
|
},
|
|
1330
1285
|
.lazy_path_list => switch (option_ptr.value) {
|
|
1331
|
-
.scalar => |s| return
|
|
1332
|
-
.lazy_path => |lp| return
|
|
1286
|
+
.scalar => |s| return arena.dupe(LazyPath, &[_]LazyPath{.{ .cwd_relative = s }}) catch @panic("OOM"),
|
|
1287
|
+
.lazy_path => |lp| return arena.dupe(LazyPath, &[_]LazyPath{lp}) catch @panic("OOM"),
|
|
1333
1288
|
.list => |lst| {
|
|
1334
|
-
const new_list =
|
|
1289
|
+
const new_list = graph.alloc(LazyPath, lst.items.len);
|
|
1335
1290
|
for (new_list, lst.items) |*new_item, str| {
|
|
1336
1291
|
new_item.* = .{ .cwd_relative = str };
|
|
1337
1292
|
}
|
|
@@ -1339,9 +1294,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1339
1294
|
},
|
|
1340
1295
|
.lazy_path_list => |lp_list| return lp_list.items,
|
|
1341
1296
|
.flag, .map => {
|
|
1342
|
-
log.err("
|
|
1343
|
-
name, @tagName(option_ptr.value),
|
|
1344
|
-
});
|
|
1297
|
+
log.err("expected -D{s} to be a path; received: {t}", .{ name, option_ptr.value });
|
|
1345
1298
|
b.markInvalidUserInput();
|
|
1346
1299
|
return null;
|
|
1347
1300
|
},
|
|
@@ -1350,17 +1303,19 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
|
|
|
1350
1303
|
}
|
|
1351
1304
|
|
|
1352
1305
|
pub fn step(b: *Build, name: []const u8, description: []const u8) *Step {
|
|
1353
|
-
const
|
|
1306
|
+
const graph = b.graph;
|
|
1307
|
+
const arena = graph.arena;
|
|
1308
|
+
const step_info = arena.create(Step.TopLevel) catch @panic("OOM");
|
|
1354
1309
|
step_info.* = .{
|
|
1355
1310
|
.step = .init(.{
|
|
1356
|
-
.
|
|
1311
|
+
.tag = .top_level,
|
|
1357
1312
|
.name = name,
|
|
1358
1313
|
.owner = b,
|
|
1359
1314
|
}),
|
|
1360
|
-
.description =
|
|
1315
|
+
.description = graph.dupeString(description),
|
|
1361
1316
|
};
|
|
1362
|
-
const gop = b.top_level_steps.getOrPut(
|
|
1363
|
-
if (gop.found_existing)
|
|
1317
|
+
const gop = b.top_level_steps.getOrPut(arena, name) catch @panic("OOM");
|
|
1318
|
+
if (gop.found_existing) panic("A top-level step with name \"{s}\" already exists", .{name});
|
|
1364
1319
|
|
|
1365
1320
|
gop.key_ptr.* = step_info.step.name;
|
|
1366
1321
|
gop.value_ptr.* = step_info;
|
|
@@ -1373,8 +1328,10 @@ pub const StandardOptimizeOptionOptions = struct {
|
|
|
1373
1328
|
};
|
|
1374
1329
|
|
|
1375
1330
|
pub fn standardOptimizeOption(b: *Build, options: StandardOptimizeOptionOptions) std.builtin.OptimizeMode {
|
|
1331
|
+
const graph = b.graph;
|
|
1332
|
+
|
|
1376
1333
|
if (options.preferred_optimize_mode) |mode| {
|
|
1377
|
-
if (b.option(bool, "release", "optimize for end users") orelse (
|
|
1334
|
+
if (b.option(bool, "release", "optimize for end users") orelse (graph.release_mode != .off)) {
|
|
1378
1335
|
return mode;
|
|
1379
1336
|
} else {
|
|
1380
1337
|
return .Debug;
|
|
@@ -1389,7 +1346,7 @@ pub fn standardOptimizeOption(b: *Build, options: StandardOptimizeOptionOptions)
|
|
|
1389
1346
|
return mode;
|
|
1390
1347
|
}
|
|
1391
1348
|
|
|
1392
|
-
return switch (
|
|
1349
|
+
return switch (graph.release_mode) {
|
|
1393
1350
|
.off => .Debug,
|
|
1394
1351
|
.any => {
|
|
1395
1352
|
std.debug.print("the project does not declare a preferred optimization mode. choose: --release=fast, --release=safe, or --release=small\n", .{});
|
|
@@ -1424,8 +1381,8 @@ pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFaile
|
|
|
1424
1381
|
opts_copy.diagnostics = &diags;
|
|
1425
1382
|
return std.Target.Query.parse(opts_copy) catch |err| switch (err) {
|
|
1426
1383
|
error.UnknownCpuModel => {
|
|
1427
|
-
std.debug.print("unknown CPU: '{s}'\navailable CPUs for architecture '{
|
|
1428
|
-
diags.cpu_name.?,
|
|
1384
|
+
std.debug.print("unknown CPU: '{s}'\navailable CPUs for architecture '{t}':\n", .{
|
|
1385
|
+
diags.cpu_name.?, diags.arch.?,
|
|
1429
1386
|
});
|
|
1430
1387
|
for (diags.arch.?.allCpuModels()) |cpu| {
|
|
1431
1388
|
std.debug.print(" {s}\n", .{cpu.name});
|
|
@@ -1435,11 +1392,10 @@ pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFaile
|
|
|
1435
1392
|
error.UnknownCpuFeature => {
|
|
1436
1393
|
std.debug.print(
|
|
1437
1394
|
\\unknown CPU feature: '{s}'
|
|
1438
|
-
\\available CPU features for architecture '{
|
|
1395
|
+
\\available CPU features for architecture '{t}':
|
|
1439
1396
|
\\
|
|
1440
1397
|
, .{
|
|
1441
|
-
diags.unknown_feature_name.?,
|
|
1442
|
-
@tagName(diags.arch.?),
|
|
1398
|
+
diags.unknown_feature_name.?, diags.arch.?,
|
|
1443
1399
|
});
|
|
1444
1400
|
for (diags.arch.?.allFeaturesList()) |feature| {
|
|
1445
1401
|
std.debug.print(" {s}: {s}\n", .{ feature.name, feature.description });
|
|
@@ -1452,8 +1408,8 @@ pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFaile
|
|
|
1452
1408
|
\\available operating systems:
|
|
1453
1409
|
\\
|
|
1454
1410
|
, .{diags.os_name.?});
|
|
1455
|
-
inline for (std.meta.
|
|
1456
|
-
std.debug.print(" {s}\n", .{
|
|
1411
|
+
inline for (comptime std.meta.fieldNames(Target.Os.Tag)) |field_name| {
|
|
1412
|
+
std.debug.print(" {s}\n", .{field_name});
|
|
1457
1413
|
}
|
|
1458
1414
|
return error.ParseFailed;
|
|
1459
1415
|
},
|
|
@@ -1468,6 +1424,9 @@ pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFaile
|
|
|
1468
1424
|
|
|
1469
1425
|
/// Exposes standard `zig build` options for choosing a target.
|
|
1470
1426
|
pub fn standardTargetOptionsQueryOnly(b: *Build, args: StandardTargetOptionsArgs) Target.Query {
|
|
1427
|
+
const graph = b.graph;
|
|
1428
|
+
const arena = graph.arena;
|
|
1429
|
+
|
|
1471
1430
|
const maybe_triple = b.option(
|
|
1472
1431
|
[]const u8,
|
|
1473
1432
|
"target",
|
|
@@ -1516,20 +1475,22 @@ pub fn standardTargetOptionsQueryOnly(b: *Build, args: StandardTargetOptionsArgs
|
|
|
1516
1475
|
|
|
1517
1476
|
for (whitelist) |q| {
|
|
1518
1477
|
log.info("allowed target: -Dtarget={s} -Dcpu={s}", .{
|
|
1519
|
-
q.zigTriple(
|
|
1520
|
-
q.serializeCpuAlloc(
|
|
1478
|
+
q.zigTriple(arena) catch @panic("OOM"),
|
|
1479
|
+
q.serializeCpuAlloc(arena) catch @panic("OOM"),
|
|
1521
1480
|
});
|
|
1522
1481
|
}
|
|
1523
1482
|
log.err("chosen target '{s}' does not match one of the allowed targets", .{
|
|
1524
|
-
selected_target.zigTriple(
|
|
1483
|
+
selected_target.zigTriple(arena) catch @panic("OOM"),
|
|
1525
1484
|
});
|
|
1526
1485
|
b.markInvalidUserInput();
|
|
1527
1486
|
return args.default_target;
|
|
1528
1487
|
}
|
|
1529
1488
|
|
|
1530
1489
|
pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8) error{OutOfMemory}!bool {
|
|
1531
|
-
const
|
|
1532
|
-
const
|
|
1490
|
+
const graph = b.graph;
|
|
1491
|
+
const arena = graph.arena;
|
|
1492
|
+
const name = graph.dupeString(name_raw);
|
|
1493
|
+
const value = graph.dupeString(value_raw);
|
|
1533
1494
|
const gop = try b.user_input_options.getOrPut(name);
|
|
1534
1495
|
if (!gop.found_existing) {
|
|
1535
1496
|
gop.value_ptr.* = UserInputOption{
|
|
@@ -1544,7 +1505,7 @@ pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8
|
|
|
1544
1505
|
switch (gop.value_ptr.value) {
|
|
1545
1506
|
.scalar => |s| {
|
|
1546
1507
|
// turn it into a list
|
|
1547
|
-
var list = std.array_list.Managed([]const u8).init(
|
|
1508
|
+
var list = std.array_list.Managed([]const u8).init(arena);
|
|
1548
1509
|
try list.append(s);
|
|
1549
1510
|
try list.append(value);
|
|
1550
1511
|
try b.user_input_options.put(name, .{
|
|
@@ -1572,7 +1533,9 @@ pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8
|
|
|
1572
1533
|
return true;
|
|
1573
1534
|
},
|
|
1574
1535
|
.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}", .{
|
|
1536
|
+
log.warn("the lazy path value type isn't added from the CLI, but somehow '{s}' is a .{f}", .{
|
|
1537
|
+
name, std.zig.fmtId(@tagName(gop.value_ptr.value)),
|
|
1538
|
+
});
|
|
1576
1539
|
return true;
|
|
1577
1540
|
},
|
|
1578
1541
|
}
|
|
@@ -1580,7 +1543,8 @@ pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8
|
|
|
1580
1543
|
}
|
|
1581
1544
|
|
|
1582
1545
|
pub fn addUserInputFlag(b: *Build, name_raw: []const u8) error{OutOfMemory}!bool {
|
|
1583
|
-
const
|
|
1546
|
+
const graph = b.graph;
|
|
1547
|
+
const name = graph.dupeString(name_raw);
|
|
1584
1548
|
const gop = try b.user_input_options.getOrPut(name);
|
|
1585
1549
|
if (!gop.found_existing) {
|
|
1586
1550
|
gop.value_ptr.* = .{
|
|
@@ -1602,7 +1566,7 @@ pub fn addUserInputFlag(b: *Build, name_raw: []const u8) error{OutOfMemory}!bool
|
|
|
1602
1566
|
return true;
|
|
1603
1567
|
},
|
|
1604
1568
|
.lazy_path => |lp| {
|
|
1605
|
-
log.err("Flag '-D{s}' conflicts with option '-D{s}={
|
|
1569
|
+
log.err("Flag '-D{s}' conflicts with option '-D{s}={f}'.", .{ name, name, lp });
|
|
1606
1570
|
return true;
|
|
1607
1571
|
},
|
|
1608
1572
|
|
|
@@ -1611,7 +1575,7 @@ pub fn addUserInputFlag(b: *Build, name_raw: []const u8) error{OutOfMemory}!bool
|
|
|
1611
1575
|
return false;
|
|
1612
1576
|
}
|
|
1613
1577
|
|
|
1614
|
-
fn typeToEnum(comptime T: type)
|
|
1578
|
+
fn typeToEnum(comptime T: type) Configuration.AvailableOption.Type {
|
|
1615
1579
|
return switch (T) {
|
|
1616
1580
|
std.zig.BuildId => .build_id,
|
|
1617
1581
|
LazyPath => .lazy_path,
|
|
@@ -1732,26 +1696,10 @@ pub fn addCheckFile(
|
|
|
1732
1696
|
return Step.CheckFile.create(b, file_source, options);
|
|
1733
1697
|
}
|
|
1734
1698
|
|
|
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
1699
|
/// References a file or directory relative to the source root.
|
|
1752
1700
|
pub fn path(b: *Build, sub_path: []const u8) LazyPath {
|
|
1753
1701
|
if (fs.path.isAbsolute(sub_path)) {
|
|
1754
|
-
|
|
1702
|
+
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
1703
|
sub_path,
|
|
1756
1704
|
});
|
|
1757
1705
|
}
|
|
@@ -1761,45 +1709,127 @@ pub fn path(b: *Build, sub_path: []const u8) LazyPath {
|
|
|
1761
1709
|
} };
|
|
1762
1710
|
}
|
|
1763
1711
|
|
|
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 });
|
|
1712
|
+
/// Creates a list of files and/or directories relative to the source root.
|
|
1713
|
+
pub fn pathList(b: *Build, sub_paths: []const []const u8) []const LazyPath {
|
|
1714
|
+
const graph = b.graph;
|
|
1715
|
+
const result = graph.alloc(LazyPath, sub_paths.len);
|
|
1716
|
+
for (result, sub_paths) |*d, s| d.* = path(b, s);
|
|
1717
|
+
return result;
|
|
1773
1718
|
}
|
|
1774
1719
|
|
|
1775
1720
|
pub fn pathJoin(b: *Build, paths: []const []const u8) []u8 {
|
|
1776
|
-
|
|
1721
|
+
const graph = b.graph;
|
|
1722
|
+
const arena = graph.arena;
|
|
1723
|
+
return fs.path.join(arena, paths) catch @panic("OOM");
|
|
1777
1724
|
}
|
|
1778
1725
|
|
|
1779
1726
|
pub fn pathResolve(b: *Build, paths: []const []const u8) []u8 {
|
|
1780
|
-
|
|
1727
|
+
const graph = b.graph;
|
|
1728
|
+
const arena = graph.arena;
|
|
1729
|
+
return fs.path.resolve(arena, paths) catch @panic("OOM");
|
|
1781
1730
|
}
|
|
1782
1731
|
|
|
1783
1732
|
pub fn fmt(b: *Build, comptime format: []const u8, args: anytype) []u8 {
|
|
1784
|
-
|
|
1733
|
+
const graph = b.graph;
|
|
1734
|
+
const arena = graph.arena;
|
|
1735
|
+
return std.fmt.allocPrint(arena, format, args) catch @panic("OOM");
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
/// Creates an anonymous `Step` that searches for an executable on the host that
|
|
1739
|
+
/// has more than one possible name.
|
|
1740
|
+
///
|
|
1741
|
+
/// Returns the `LazyPath` of the found executable. The search only takes place
|
|
1742
|
+
/// if the `LazyPath` will be used by a depending `Step`.
|
|
1743
|
+
///
|
|
1744
|
+
/// This API is useful in the following cases:
|
|
1745
|
+
/// * The binary is not named the same across all systems (for example "python"
|
|
1746
|
+
/// vs "python3").
|
|
1747
|
+
/// * The binary may be produced by building from source rather than being
|
|
1748
|
+
/// globally installed and will therefore be possibly found in one of the
|
|
1749
|
+
/// search prefix paths.
|
|
1750
|
+
///
|
|
1751
|
+
/// Names are searched in order, observing search prefixes first and then PATH
|
|
1752
|
+
/// environment variable.
|
|
1753
|
+
///
|
|
1754
|
+
/// Windows file name extensions are searched automatically, respecting the
|
|
1755
|
+
/// PATHEXT environment variable, so they need not be included in this list.
|
|
1756
|
+
/// However, even on Windows, the names will be checked without appending
|
|
1757
|
+
/// extensions first, so that can be used as a priority system.
|
|
1758
|
+
///
|
|
1759
|
+
/// See also:
|
|
1760
|
+
/// * `findProgram`
|
|
1761
|
+
pub fn findProgramLazy(b: *Build, options: Step.FindProgram.Options) LazyPath {
|
|
1762
|
+
return .{ .generated = .{ .index = Step.FindProgram.create(b, options).found_path } };
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1765
|
+
pub const FindProgramOptions = Step.FindProgram.Options;
|
|
1766
|
+
|
|
1767
|
+
/// Immediately (in the configure phase), searches for an executable on the host
|
|
1768
|
+
/// that has more than one possible name.
|
|
1769
|
+
///
|
|
1770
|
+
/// Calling this function poisons the configuration cache, so it is only
|
|
1771
|
+
/// appropriate when the existence of the program or its output needs to be
|
|
1772
|
+
/// observed by configuration logic. For more information, see
|
|
1773
|
+
/// `Graph.CachePoison` documentation.
|
|
1774
|
+
///
|
|
1775
|
+
/// Names are searched in order, observing search prefixes first and then PATH
|
|
1776
|
+
/// environment variable.
|
|
1777
|
+
///
|
|
1778
|
+
/// Windows file name extensions are searched automatically, respecting the
|
|
1779
|
+
/// PATHEXT environment variable, so they need not be included in this list.
|
|
1780
|
+
/// However, even on Windows, the names will be checked without appending
|
|
1781
|
+
/// extensions first, so that can be used as a priority system.
|
|
1782
|
+
///
|
|
1783
|
+
/// See also:
|
|
1784
|
+
/// * `findProgramLazy`
|
|
1785
|
+
pub fn findProgram(b: *Build, options: FindProgramOptions) ?[]const u8 {
|
|
1786
|
+
const graph = b.graph;
|
|
1787
|
+
|
|
1788
|
+
// Because it observes search prefixes and contents of directories in PATH.
|
|
1789
|
+
graph.poisonCache();
|
|
1790
|
+
|
|
1791
|
+
for (options.names) |name| {
|
|
1792
|
+
if (Io.Dir.path.isAbsolute(name)) {
|
|
1793
|
+
if (tryFindProgram(b, name)) |found| return found;
|
|
1794
|
+
}
|
|
1795
|
+
for (graph.search_prefixes.items) |search_prefix| {
|
|
1796
|
+
const full_path = b.pathJoin(&.{ search_prefix, "bin", name });
|
|
1797
|
+
if (tryFindProgram(b, full_path)) |found| return found;
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
if (b.graph.environ_map.get("PATH")) |PATH| {
|
|
1802
|
+
for (options.names) |name| {
|
|
1803
|
+
var it = mem.tokenizeScalar(u8, PATH, Io.Dir.path.delimiter);
|
|
1804
|
+
while (it.next()) |p| {
|
|
1805
|
+
const full_path = b.pathJoin(&.{ p, name });
|
|
1806
|
+
if (tryFindProgram(b, full_path)) |found| return found;
|
|
1807
|
+
}
|
|
1808
|
+
}
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
return null;
|
|
1785
1812
|
}
|
|
1786
1813
|
|
|
1787
1814
|
fn supportedWindowsProgramExtension(ext: []const u8) bool {
|
|
1788
|
-
inline for (@typeInfo(std.process.WindowsExtension).@"enum".
|
|
1789
|
-
if (std.ascii.eqlIgnoreCase(ext, "." ++
|
|
1815
|
+
inline for (@typeInfo(std.process.WindowsExtension).@"enum".field_names) |field_name| {
|
|
1816
|
+
if (std.ascii.eqlIgnoreCase(ext, "." ++ field_name)) return true;
|
|
1790
1817
|
}
|
|
1791
1818
|
return false;
|
|
1792
1819
|
}
|
|
1793
1820
|
|
|
1794
1821
|
fn tryFindProgram(b: *Build, full_path: []const u8) ?[]const u8 {
|
|
1795
|
-
const
|
|
1796
|
-
const
|
|
1822
|
+
const graph = b.graph;
|
|
1823
|
+
const io = graph.io;
|
|
1824
|
+
const arena = graph.arena;
|
|
1797
1825
|
|
|
1798
|
-
if (
|
|
1799
|
-
return
|
|
1826
|
+
if (Io.Dir.cwd().access(io, full_path, .{ .execute = true })) |_| {
|
|
1827
|
+
return full_path;
|
|
1800
1828
|
} else |err| switch (err) {
|
|
1801
|
-
error.
|
|
1802
|
-
|
|
1829
|
+
error.FileNotFound, error.AccessDenied, error.PermissionDenied => |e| {
|
|
1830
|
+
if (graph.verbose) log.info("searched: {t} {s}", .{ e, full_path });
|
|
1831
|
+
},
|
|
1832
|
+
else => |e| return panic("failed accessing {s}: {t}", .{ full_path, e }),
|
|
1803
1833
|
}
|
|
1804
1834
|
|
|
1805
1835
|
if (builtin.os.tag == .windows) {
|
|
@@ -1809,14 +1839,16 @@ fn tryFindProgram(b: *Build, full_path: []const u8) ?[]const u8 {
|
|
|
1809
1839
|
while (it.next()) |ext| {
|
|
1810
1840
|
if (!supportedWindowsProgramExtension(ext)) continue;
|
|
1811
1841
|
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
error.
|
|
1818
|
-
|
|
1819
|
-
|
|
1842
|
+
const extended_path = try mem.concat(arena, &.{ full_path, ext });
|
|
1843
|
+
|
|
1844
|
+
if (Io.Dir.cwd().access(io, extended_path, .{ .execute = true })) |_| {
|
|
1845
|
+
return extended_path;
|
|
1846
|
+
} else |err| switch (err) {
|
|
1847
|
+
error.FileNotFound, error.AccessDenied, error.PermissionDenied => |e| {
|
|
1848
|
+
if (graph.verbose) log.info("searched: {t} {s}", .{ e, extended_path });
|
|
1849
|
+
},
|
|
1850
|
+
else => |e| return panic("failed accessing {s}: {t}", .{ extended_path, e }),
|
|
1851
|
+
}
|
|
1820
1852
|
}
|
|
1821
1853
|
}
|
|
1822
1854
|
}
|
|
@@ -1824,114 +1856,158 @@ fn tryFindProgram(b: *Build, full_path: []const u8) ?[]const u8 {
|
|
|
1824
1856
|
return null;
|
|
1825
1857
|
}
|
|
1826
1858
|
|
|
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
|
-
|
|
1859
|
+
/// Deprecated; use `runFallible`.
|
|
1859
1860
|
pub fn runAllowFail(
|
|
1860
1861
|
b: *Build,
|
|
1861
1862
|
argv: []const []const u8,
|
|
1862
|
-
|
|
1863
|
-
stderr_behavior:
|
|
1864
|
-
)
|
|
1865
|
-
|
|
1863
|
+
exit_code: *u8,
|
|
1864
|
+
stderr_behavior: process.SpawnOptions.StdIo,
|
|
1865
|
+
) anyerror![]u8 {
|
|
1866
|
+
if (!process.can_spawn) return error.ExecNotSupported;
|
|
1867
|
+
switch (runFallible(b, argv, .{
|
|
1868
|
+
.stderr_behavior = stderr_behavior,
|
|
1869
|
+
})) {
|
|
1870
|
+
.success => |stdout| return stdout,
|
|
1871
|
+
.spawn_failed => |err| return err,
|
|
1872
|
+
.bad_exit_code => |code| {
|
|
1873
|
+
exit_code.* = code;
|
|
1874
|
+
return error.ExitCodeFailure;
|
|
1875
|
+
},
|
|
1876
|
+
.crashed => {
|
|
1877
|
+
exit_code.* = 255;
|
|
1878
|
+
return error.ProcessTerminated;
|
|
1879
|
+
},
|
|
1880
|
+
}
|
|
1881
|
+
}
|
|
1866
1882
|
|
|
1867
|
-
|
|
1868
|
-
|
|
1883
|
+
pub const RunOptions = struct {
|
|
1884
|
+
stderr_behavior: process.SpawnOptions.StdIo = .inherit,
|
|
1885
|
+
/// Fail the configuration if stdout is larger than this.
|
|
1886
|
+
stdout_limit: Io.Limit = .limited(1_000_000),
|
|
1887
|
+
/// Set to change the current working directory when spawning the child
|
|
1888
|
+
/// process.
|
|
1889
|
+
cwd: process.Child.Cwd = .inherit,
|
|
1890
|
+
/// Replaces the child environment when provided. The PATH value from here
|
|
1891
|
+
/// is not used to resolve `argv[0]`; that resolution always uses parent
|
|
1892
|
+
/// environment.
|
|
1893
|
+
environ_map: ?*const process.Environ.Map = null,
|
|
1894
|
+
expand_arg0: process.ArgExpansion = .no_expand,
|
|
1895
|
+
};
|
|
1896
|
+
|
|
1897
|
+
pub const RunResult = union(enum) {
|
|
1898
|
+
/// Thild process exited with code 0, writing this stdout.
|
|
1899
|
+
success: []u8,
|
|
1900
|
+
/// The child process could not be created.
|
|
1901
|
+
spawn_failed: process.SpawnError,
|
|
1902
|
+
/// The child process indicated failure.
|
|
1903
|
+
bad_exit_code: u8,
|
|
1904
|
+
/// The child process terminated abnormally.
|
|
1905
|
+
crashed,
|
|
1906
|
+
};
|
|
1907
|
+
|
|
1908
|
+
/// Executes the provided command immediately, allowing failure.
|
|
1909
|
+
///
|
|
1910
|
+
/// If the program exits successfully, stdout is returned. Otherwise, returns
|
|
1911
|
+
/// an indication of failure.
|
|
1912
|
+
///
|
|
1913
|
+
/// See also:
|
|
1914
|
+
/// * `run`.
|
|
1915
|
+
pub fn runFallible(b: *Build, argv: []const []const u8, options: RunOptions) RunResult {
|
|
1916
|
+
assert(argv.len != 0);
|
|
1869
1917
|
|
|
1870
1918
|
const graph = b.graph;
|
|
1871
1919
|
const io = graph.io;
|
|
1920
|
+
const arena = graph.arena;
|
|
1921
|
+
|
|
1922
|
+
const print_opts: std.zig.AllocPrintCmdOptions = .{
|
|
1923
|
+
.cwd = switch (options.cwd) {
|
|
1924
|
+
.inherit => null,
|
|
1925
|
+
.path => |p| p,
|
|
1926
|
+
.dir => null, // Unknown without changing function signature of runFallible.
|
|
1927
|
+
},
|
|
1928
|
+
.child_env = options.environ_map,
|
|
1929
|
+
.parent_env = &graph.environ_map,
|
|
1930
|
+
};
|
|
1872
1931
|
|
|
1873
|
-
|
|
1874
|
-
|
|
1932
|
+
if (graph.verbose) {
|
|
1933
|
+
const text = std.zig.allocPrintCmd(arena, argv, print_opts) catch @panic("OOM");
|
|
1934
|
+
std.log.scoped(.verbose).info("{s}", .{text});
|
|
1935
|
+
}
|
|
1875
1936
|
|
|
1876
|
-
var child =
|
|
1937
|
+
var child = process.spawn(io, .{
|
|
1877
1938
|
.argv = argv,
|
|
1878
|
-
.environ_map = &graph.environ_map,
|
|
1879
1939
|
.stdin = .ignore,
|
|
1880
1940
|
.stdout = .pipe,
|
|
1881
|
-
.stderr = stderr_behavior,
|
|
1882
|
-
|
|
1941
|
+
.stderr = options.stderr_behavior,
|
|
1942
|
+
.cwd = options.cwd,
|
|
1943
|
+
.environ_map = &graph.environ_map,
|
|
1944
|
+
.expand_arg0 = options.expand_arg0,
|
|
1945
|
+
}) catch |err| return .{ .spawn_failed = err };
|
|
1883
1946
|
|
|
1884
1947
|
var stdout_reader = child.stdout.?.readerStreaming(io, &.{});
|
|
1885
|
-
const stdout = stdout_reader.interface.allocRemaining(
|
|
1886
|
-
|
|
1948
|
+
const stdout = stdout_reader.interface.allocRemaining(arena, options.stdout_limit) catch |err| switch (err) {
|
|
1949
|
+
error.ReadFailed => panic("failed to read from child: {t}", .{stdout_reader.err.?}),
|
|
1950
|
+
else => |e| panic("failed to read from child: {t}", .{e}),
|
|
1887
1951
|
};
|
|
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;
|
|
1952
|
+
|
|
1953
|
+
const term = child.wait(io) catch @panic("unexpected");
|
|
1954
|
+
|
|
1955
|
+
return switch (term) {
|
|
1956
|
+
.exited => |code| switch (code) {
|
|
1957
|
+
0 => .{ .success = stdout },
|
|
1958
|
+
else => .{ .bad_exit_code = code },
|
|
1906
1959
|
},
|
|
1907
|
-
|
|
1960
|
+
.signal, .stopped, .unknown => .crashed,
|
|
1961
|
+
};
|
|
1908
1962
|
}
|
|
1909
1963
|
|
|
1910
|
-
///
|
|
1911
|
-
///
|
|
1912
|
-
///
|
|
1964
|
+
/// Executes the provided command immediately.
|
|
1965
|
+
///
|
|
1966
|
+
/// If the program exits successfully, stdout is returned. Otherwise, fails the
|
|
1967
|
+
/// build with a helpful message.
|
|
1968
|
+
///
|
|
1969
|
+
/// See also:
|
|
1970
|
+
/// * `runFallible`.
|
|
1913
1971
|
pub fn run(b: *Build, argv: []const []const u8) []u8 {
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
.
|
|
1918
|
-
)
|
|
1972
|
+
const graph = b.graph;
|
|
1973
|
+
const arena = graph.arena;
|
|
1974
|
+
switch (b.runFallible(argv, .{
|
|
1975
|
+
.stderr_behavior = .inherit,
|
|
1976
|
+
})) {
|
|
1977
|
+
.success => |stdout| return stdout,
|
|
1978
|
+
.spawn_failed => |err| process.fatal("the following command failed with {t}:\n{s}", .{
|
|
1979
|
+
err, std.zig.allocPrintCmd(arena, argv, .{}) catch @panic("OOM"),
|
|
1980
|
+
}),
|
|
1981
|
+
.bad_exit_code => |code| process.fatal("the following command exited with code {d}:\n{s}", .{
|
|
1982
|
+
code, std.zig.allocPrintCmd(arena, argv, .{}) catch @panic("OOM"),
|
|
1983
|
+
}),
|
|
1984
|
+
.crashed => process.fatal("the following command crashed:\n{s}", .{
|
|
1985
|
+
std.zig.allocPrintCmd(arena, argv, .{}) catch @panic("OOM"),
|
|
1986
|
+
}),
|
|
1987
|
+
}
|
|
1919
1988
|
}
|
|
1920
1989
|
|
|
1990
|
+
/// Adds additional paths, equivalent to the `--search-prefix` arguments
|
|
1991
|
+
/// provided by the user. Paths added with this function have lower precedence
|
|
1992
|
+
/// than the ones specified by the user on the command line.
|
|
1993
|
+
///
|
|
1994
|
+
/// It is generally best practice to avoid calling this function, instead
|
|
1995
|
+
/// relying on the user to provide these paths via the standard build system
|
|
1996
|
+
/// interface. However, when integrating with other build systems, the user may
|
|
1997
|
+
/// have already provided the information to the other build system, and thus
|
|
1998
|
+
/// it is desirable to use that same information without requiring the user to
|
|
1999
|
+
/// provide it again.
|
|
1921
2000
|
pub fn addSearchPrefix(b: *Build, search_prefix: []const u8) void {
|
|
1922
|
-
|
|
2001
|
+
if (b.isRoot()) {
|
|
2002
|
+
const graph = b.graph;
|
|
2003
|
+
const wc = &graph.wip_configuration;
|
|
2004
|
+
const string = wc.addString(search_prefix) catch @panic("OOM");
|
|
2005
|
+
wc.search_prefixes.append(wc.gpa, string) catch @panic("OOM");
|
|
2006
|
+
}
|
|
1923
2007
|
}
|
|
1924
2008
|
|
|
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 });
|
|
2009
|
+
pub fn isRoot(b: *const Build) bool {
|
|
2010
|
+
return b.pkg_hash.len == 0;
|
|
1935
2011
|
}
|
|
1936
2012
|
|
|
1937
2013
|
pub const Dependency = struct {
|
|
@@ -1987,29 +2063,34 @@ fn findPkgHashOrFatal(b: *Build, name: []const u8) []const u8 {
|
|
|
1987
2063
|
for (b.available_deps) |dep| {
|
|
1988
2064
|
if (mem.eql(u8, dep[0], name)) return dep[1];
|
|
1989
2065
|
}
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
2066
|
+
std.log.info("all dependencies used by build.zig must be declared in corresponding build.zig.zon", .{});
|
|
2067
|
+
if (b.pkg_hash.len == 0) panic("no dependency named {s}", .{name});
|
|
2068
|
+
panic("no dependency named {s} in {s} ({s})", .{ name, b.dep_prefix, b.pkg_hash });
|
|
1993
2069
|
}
|
|
1994
2070
|
|
|
1995
2071
|
inline fn findImportPkgHashOrFatal(b: *Build, comptime asking_build_zig: type, comptime dep_name: []const u8) []const u8 {
|
|
1996
2072
|
const build_runner = @import("root");
|
|
1997
2073
|
const deps = build_runner.dependencies;
|
|
2074
|
+
const arena = b.graph.arena;
|
|
1998
2075
|
|
|
1999
|
-
const b_pkg_hash, const b_pkg_deps = comptime for (@typeInfo(deps.packages).@"struct".
|
|
2000
|
-
const pkg_hash = decl.name;
|
|
2076
|
+
const b_pkg_hash, const b_pkg_deps = comptime for (@typeInfo(deps.packages).@"struct".decl_names) |pkg_hash| {
|
|
2001
2077
|
const pkg = @field(deps.packages, pkg_hash);
|
|
2002
2078
|
if (@hasDecl(pkg, "build_zig") and pkg.build_zig == asking_build_zig) break .{ pkg_hash, pkg.deps };
|
|
2003
2079
|
} else .{ "", deps.root_deps };
|
|
2004
2080
|
if (!std.mem.eql(u8, b_pkg_hash, b.pkg_hash)) {
|
|
2005
|
-
|
|
2081
|
+
const build_zig_path = b.root.join(arena, "build.zig") catch @panic("OOM");
|
|
2082
|
+
panic("{} is not the struct that corresponds to {f}", .{
|
|
2083
|
+
asking_build_zig, build_zig_path,
|
|
2084
|
+
});
|
|
2006
2085
|
}
|
|
2007
2086
|
comptime for (b_pkg_deps) |dep| {
|
|
2008
2087
|
if (std.mem.eql(u8, dep[0], dep_name)) return dep[1];
|
|
2009
2088
|
};
|
|
2010
2089
|
|
|
2011
|
-
const full_path = b.
|
|
2012
|
-
|
|
2090
|
+
const full_path = b.root.join(arena, "build.zig.zon") catch @panic("OOM");
|
|
2091
|
+
panic("no dependency named {s} in {f}. All packages used in build.zig must be declared in this file", .{
|
|
2092
|
+
dep_name, full_path,
|
|
2093
|
+
});
|
|
2013
2094
|
}
|
|
2014
2095
|
|
|
2015
2096
|
fn markNeededLazyDep(b: *Build, pkg_hash: []const u8) void {
|
|
@@ -2026,6 +2107,7 @@ fn markNeededLazyDep(b: *Build, pkg_hash: []const u8) void {
|
|
|
2026
2107
|
/// In other words, if this function returns `null` it means that the only
|
|
2027
2108
|
/// purpose of completing the configure phase is to find out all the other lazy
|
|
2028
2109
|
/// dependencies that are also required.
|
|
2110
|
+
///
|
|
2029
2111
|
/// It is allowed to use this function for non-lazy dependencies, in which case
|
|
2030
2112
|
/// it will never return `null`. This allows toggling laziness via
|
|
2031
2113
|
/// build.zig.zon without changing build.zig logic.
|
|
@@ -2034,9 +2116,9 @@ pub fn lazyDependency(b: *Build, name: []const u8, args: anytype) ?*Dependency {
|
|
|
2034
2116
|
const deps = build_runner.dependencies;
|
|
2035
2117
|
const pkg_hash = findPkgHashOrFatal(b, name);
|
|
2036
2118
|
|
|
2037
|
-
inline for (@typeInfo(deps.packages).@"struct".
|
|
2038
|
-
if (mem.eql(u8,
|
|
2039
|
-
const pkg = @field(deps.packages,
|
|
2119
|
+
inline for (@typeInfo(deps.packages).@"struct".decl_names) |decl_name| {
|
|
2120
|
+
if (mem.eql(u8, decl_name, pkg_hash)) {
|
|
2121
|
+
const pkg = @field(deps.packages, decl_name);
|
|
2040
2122
|
const available = !@hasDecl(pkg, "available") or pkg.available;
|
|
2041
2123
|
if (!available) {
|
|
2042
2124
|
markNeededLazyDep(b, pkg_hash);
|
|
@@ -2054,11 +2136,11 @@ pub fn dependency(b: *Build, name: []const u8, args: anytype) *Dependency {
|
|
|
2054
2136
|
const deps = build_runner.dependencies;
|
|
2055
2137
|
const pkg_hash = findPkgHashOrFatal(b, name);
|
|
2056
2138
|
|
|
2057
|
-
inline for (@typeInfo(deps.packages).@"struct".
|
|
2058
|
-
if (mem.eql(u8,
|
|
2059
|
-
const pkg = @field(deps.packages,
|
|
2139
|
+
inline for (@typeInfo(deps.packages).@"struct".decl_names) |decl_name| {
|
|
2140
|
+
if (mem.eql(u8, decl_name, pkg_hash)) {
|
|
2141
|
+
const pkg = @field(deps.packages, decl_name);
|
|
2060
2142
|
if (@hasDecl(pkg, "available")) {
|
|
2061
|
-
|
|
2143
|
+
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
2144
|
}
|
|
2063
2145
|
return dependencyInner(b, name, pkg.build_root, if (@hasDecl(pkg, "build_zig")) pkg.build_zig else null, pkg_hash, pkg.deps, args);
|
|
2064
2146
|
}
|
|
@@ -2084,9 +2166,9 @@ pub inline fn lazyImport(
|
|
|
2084
2166
|
const deps = build_runner.dependencies;
|
|
2085
2167
|
const pkg_hash = findImportPkgHashOrFatal(b, asking_build_zig, dep_name);
|
|
2086
2168
|
|
|
2087
|
-
inline for (@typeInfo(deps.packages).@"struct".
|
|
2088
|
-
if (comptime mem.eql(u8,
|
|
2089
|
-
const pkg = @field(deps.packages,
|
|
2169
|
+
inline for (@typeInfo(deps.packages).@"struct".decl_names) |decl_name| {
|
|
2170
|
+
if (comptime mem.eql(u8, decl_name, pkg_hash)) {
|
|
2171
|
+
const pkg = @field(deps.packages, decl_name);
|
|
2090
2172
|
const available = !@hasDecl(pkg, "available") or pkg.available;
|
|
2091
2173
|
if (!available) {
|
|
2092
2174
|
markNeededLazyDep(b, pkg_hash);
|
|
@@ -2111,10 +2193,11 @@ pub fn dependencyFromBuildZig(
|
|
|
2111
2193
|
) *Dependency {
|
|
2112
2194
|
const build_runner = @import("root");
|
|
2113
2195
|
const deps = build_runner.dependencies;
|
|
2196
|
+
const graph = b.graph;
|
|
2197
|
+
const arena = graph.arena;
|
|
2114
2198
|
|
|
2115
2199
|
find_dep: {
|
|
2116
|
-
const pkg, const pkg_hash = inline for (@typeInfo(deps.packages).@"struct".
|
|
2117
|
-
const pkg_hash = decl.name;
|
|
2200
|
+
const pkg, const pkg_hash = inline for (@typeInfo(deps.packages).@"struct".decl_names) |pkg_hash| {
|
|
2118
2201
|
const pkg = @field(deps.packages, pkg_hash);
|
|
2119
2202
|
if (@hasDecl(pkg, "build_zig") and pkg.build_zig == build_zig) break .{ pkg, pkg_hash };
|
|
2120
2203
|
} else break :find_dep;
|
|
@@ -2124,8 +2207,8 @@ pub fn dependencyFromBuildZig(
|
|
|
2124
2207
|
return dependencyInner(b, dep_name, pkg.build_root, pkg.build_zig, pkg_hash, pkg.deps, args);
|
|
2125
2208
|
}
|
|
2126
2209
|
|
|
2127
|
-
const full_path = b.
|
|
2128
|
-
|
|
2210
|
+
const full_path = b.root.join(arena, "build.zig.zon") catch @panic("OOM");
|
|
2211
|
+
panic("{} is not a build.zig struct of a dependency in {f}", .{ build_zig, full_path });
|
|
2129
2212
|
}
|
|
2130
2213
|
|
|
2131
2214
|
fn userValuesAreSame(lhs: UserValue, rhs: UserValue) bool {
|
|
@@ -2188,10 +2271,10 @@ fn userLazyPathsAreTheSame(lhs_lp: LazyPath, rhs_lp: LazyPath) bool {
|
|
|
2188
2271
|
if (lhs_sp.owner != rhs_sp.owner) return false;
|
|
2189
2272
|
if (std.mem.eql(u8, lhs_sp.sub_path, rhs_sp.sub_path)) return false;
|
|
2190
2273
|
},
|
|
2191
|
-
.generated =>
|
|
2192
|
-
const rhs_gen = rhs_lp.generated;
|
|
2274
|
+
.generated => |*lhs_gen| {
|
|
2275
|
+
const rhs_gen = &rhs_lp.generated;
|
|
2193
2276
|
|
|
2194
|
-
if (lhs_gen.
|
|
2277
|
+
if (lhs_gen.index != rhs_gen.index) return false;
|
|
2195
2278
|
if (lhs_gen.up != rhs_gen.up) return false;
|
|
2196
2279
|
if (std.mem.eql(u8, lhs_gen.sub_path, rhs_gen.sub_path)) return false;
|
|
2197
2280
|
},
|
|
@@ -2200,6 +2283,7 @@ fn userLazyPathsAreTheSame(lhs_lp: LazyPath, rhs_lp: LazyPath) bool {
|
|
|
2200
2283
|
|
|
2201
2284
|
if (!std.mem.eql(u8, lhs_rel_path, rhs_rel_path)) return false;
|
|
2202
2285
|
},
|
|
2286
|
+
.relative => |lhs| return lhs.eql(rhs_lp.relative),
|
|
2203
2287
|
.dependency => |lhs_dep| {
|
|
2204
2288
|
const rhs_dep = rhs_lp.dependency;
|
|
2205
2289
|
|
|
@@ -2219,25 +2303,25 @@ fn dependencyInner(
|
|
|
2219
2303
|
pkg_deps: AvailableDeps,
|
|
2220
2304
|
args: anytype,
|
|
2221
2305
|
) *Dependency {
|
|
2222
|
-
const
|
|
2223
|
-
const
|
|
2224
|
-
|
|
2306
|
+
const graph = b.graph;
|
|
2307
|
+
const io = graph.io;
|
|
2308
|
+
const arena = graph.arena;
|
|
2309
|
+
const user_input_options = userInputOptionsFromArgs(arena, args);
|
|
2310
|
+
if (graph.dependency_cache.getContext(.{
|
|
2225
2311
|
.build_root_string = build_root_string,
|
|
2226
2312
|
.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);
|
|
2313
|
+
}, .{ .allocator = arena })) |dep| return dep;
|
|
2314
|
+
|
|
2315
|
+
const dep_root: Cache.Path = .{
|
|
2316
|
+
.root_dir = .{
|
|
2317
|
+
.path = build_root_string,
|
|
2318
|
+
.handle = Io.Dir.cwd().openDir(io, build_root_string, .{}) catch |err|
|
|
2319
|
+
process.fatal("unable to open {s}: {t}", .{ build_root_string, err }),
|
|
2237
2320
|
},
|
|
2238
2321
|
};
|
|
2239
2322
|
|
|
2240
|
-
const sub_builder = b.createChild(name,
|
|
2323
|
+
const sub_builder = b.createChild(name, dep_root, pkg_hash, pkg_deps, user_input_options) catch
|
|
2324
|
+
@panic("unhandled error");
|
|
2241
2325
|
if (build_zig) |bz| {
|
|
2242
2326
|
sub_builder.runBuild(bz) catch @panic("unhandled error");
|
|
2243
2327
|
|
|
@@ -2246,13 +2330,13 @@ fn dependencyInner(
|
|
|
2246
2330
|
}
|
|
2247
2331
|
}
|
|
2248
2332
|
|
|
2249
|
-
const dep =
|
|
2333
|
+
const dep = graph.create(Dependency);
|
|
2250
2334
|
dep.* = .{ .builder = sub_builder };
|
|
2251
2335
|
|
|
2252
|
-
|
|
2336
|
+
graph.dependency_cache.putContext(arena, .{
|
|
2253
2337
|
.build_root_string = build_root_string,
|
|
2254
2338
|
.user_input_options = user_input_options,
|
|
2255
|
-
}, dep, .{ .allocator =
|
|
2339
|
+
}, dep, .{ .allocator = arena }) catch @panic("OOM");
|
|
2256
2340
|
return dep;
|
|
2257
2341
|
}
|
|
2258
2342
|
|
|
@@ -2264,41 +2348,6 @@ pub fn runBuild(b: *Build, build_zig: anytype) anyerror!void {
|
|
|
2264
2348
|
}
|
|
2265
2349
|
}
|
|
2266
2350
|
|
|
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
2351
|
// dirnameAllowEmpty is a variant of fs.path.dirname
|
|
2303
2352
|
// that allows "" to refer to the root for relative paths.
|
|
2304
2353
|
//
|
|
@@ -2338,7 +2387,7 @@ pub const LazyPath = union(enum) {
|
|
|
2338
2387
|
},
|
|
2339
2388
|
|
|
2340
2389
|
generated: struct {
|
|
2341
|
-
|
|
2390
|
+
index: Configuration.GeneratedFileIndex,
|
|
2342
2391
|
|
|
2343
2392
|
/// The number of parent directories to go up.
|
|
2344
2393
|
/// 0 means the generated file itself.
|
|
@@ -2350,14 +2399,7 @@ pub const LazyPath = union(enum) {
|
|
|
2350
2399
|
sub_path: []const u8 = "",
|
|
2351
2400
|
},
|
|
2352
2401
|
|
|
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.
|
|
2402
|
+
/// Deprecated; call `Graph.cwdRelativePath` instead.
|
|
2361
2403
|
cwd_relative: []const u8,
|
|
2362
2404
|
|
|
2363
2405
|
dependency: struct {
|
|
@@ -2365,13 +2407,30 @@ pub const LazyPath = union(enum) {
|
|
|
2365
2407
|
sub_path: []const u8,
|
|
2366
2408
|
},
|
|
2367
2409
|
|
|
2410
|
+
relative: struct {
|
|
2411
|
+
base: Configuration.Path.Base,
|
|
2412
|
+
sub_path: []const u8 = "",
|
|
2413
|
+
|
|
2414
|
+
pub fn eql(a: @This(), b: @This()) bool {
|
|
2415
|
+
return a.base == b.base and mem.eql(u8, a.sub_path, b.sub_path);
|
|
2416
|
+
}
|
|
2417
|
+
},
|
|
2418
|
+
|
|
2419
|
+
/// Path to the Zig executable being used to execute "zig build".
|
|
2420
|
+
pub const zig_exe: LazyPath = .{ .relative = .{ .base = .zig_exe } };
|
|
2421
|
+
/// Path to the "lib/" directory from the Zig installation being used to
|
|
2422
|
+
/// execute "zig build".
|
|
2423
|
+
pub const zig_lib: LazyPath = .{ .relative = .{ .base = .zig_lib } };
|
|
2424
|
+
/// Path to the project's local cache directory (usually called ".zig-cache").
|
|
2425
|
+
pub const cache_root: LazyPath = .{ .relative = .{ .base = .local_cache } };
|
|
2426
|
+
|
|
2368
2427
|
/// Returns a lazy path referring to the directory containing this path.
|
|
2369
2428
|
///
|
|
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
|
-
///
|
|
2429
|
+
/// The dirname is not allowed to escape the logical root for underlying
|
|
2430
|
+
/// path. For example, if the path is relative to the build root, the
|
|
2431
|
+
/// dirname is not allowed to traverse outside of the build root.
|
|
2432
|
+
/// Similarly, if the path is a generated file inside zig-cache, the
|
|
2433
|
+
/// dirname is not allowed to traverse outside of zig-cache.
|
|
2375
2434
|
pub fn dirname(lazy_path: LazyPath) LazyPath {
|
|
2376
2435
|
return switch (lazy_path) {
|
|
2377
2436
|
.src_path => |sp| .{ .src_path = .{
|
|
@@ -2382,11 +2441,11 @@ pub const LazyPath = union(enum) {
|
|
|
2382
2441
|
},
|
|
2383
2442
|
} },
|
|
2384
2443
|
.generated => |generated| .{ .generated = if (dirnameAllowEmpty(generated.sub_path)) |sub_dirname| .{
|
|
2385
|
-
.
|
|
2444
|
+
.index = generated.index,
|
|
2386
2445
|
.up = generated.up,
|
|
2387
2446
|
.sub_path = sub_dirname,
|
|
2388
2447
|
} else .{
|
|
2389
|
-
.
|
|
2448
|
+
.index = generated.index,
|
|
2390
2449
|
.up = generated.up + 1,
|
|
2391
2450
|
.sub_path = "",
|
|
2392
2451
|
} },
|
|
@@ -2413,6 +2472,13 @@ pub const LazyPath = union(enum) {
|
|
|
2413
2472
|
}
|
|
2414
2473
|
},
|
|
2415
2474
|
},
|
|
2475
|
+
.relative => |r| .{ .relative = .{
|
|
2476
|
+
.base = r.base,
|
|
2477
|
+
.sub_path = dirnameAllowEmpty(r.sub_path) orelse {
|
|
2478
|
+
dumpBadDirnameHelp(null, null, "dirname() attempted to traverse outside the base path\n", .{}) catch {};
|
|
2479
|
+
@panic("misconfigured build script");
|
|
2480
|
+
},
|
|
2481
|
+
} },
|
|
2416
2482
|
.dependency => |dep| .{ .dependency = .{
|
|
2417
2483
|
.dependency = dep.dependency,
|
|
2418
2484
|
.sub_path = dirnameAllowEmpty(dep.sub_path) orelse {
|
|
@@ -2427,7 +2493,9 @@ pub const LazyPath = union(enum) {
|
|
|
2427
2493
|
}
|
|
2428
2494
|
|
|
2429
2495
|
pub fn path(lazy_path: LazyPath, b: *Build, sub_path: []const u8) LazyPath {
|
|
2430
|
-
|
|
2496
|
+
const graph = b.graph;
|
|
2497
|
+
const arena = graph.arena;
|
|
2498
|
+
return lazy_path.join(arena, sub_path) catch @panic("OOM");
|
|
2431
2499
|
}
|
|
2432
2500
|
|
|
2433
2501
|
pub fn join(lazy_path: LazyPath, arena: Allocator, sub_path: []const u8) Allocator.Error!LazyPath {
|
|
@@ -2437,13 +2505,17 @@ pub const LazyPath = union(enum) {
|
|
|
2437
2505
|
.sub_path = try fs.path.resolve(arena, &.{ src.sub_path, sub_path }),
|
|
2438
2506
|
} },
|
|
2439
2507
|
.generated => |gen| .{ .generated = .{
|
|
2440
|
-
.
|
|
2508
|
+
.index = gen.index,
|
|
2441
2509
|
.up = gen.up,
|
|
2442
2510
|
.sub_path = try fs.path.resolve(arena, &.{ gen.sub_path, sub_path }),
|
|
2443
2511
|
} },
|
|
2444
2512
|
.cwd_relative => |cwd_relative| .{
|
|
2445
2513
|
.cwd_relative = try fs.path.resolve(arena, &.{ cwd_relative, sub_path }),
|
|
2446
2514
|
},
|
|
2515
|
+
.relative => |r| .{ .relative = .{
|
|
2516
|
+
.base = r.base,
|
|
2517
|
+
.sub_path = try fs.path.resolve(arena, &.{ r.sub_path, sub_path }),
|
|
2518
|
+
} },
|
|
2447
2519
|
.dependency => |dep| .{ .dependency = .{
|
|
2448
2520
|
.dependency = dep.dependency,
|
|
2449
2521
|
.sub_path = try fs.path.resolve(arena, &.{ dep.sub_path, sub_path }),
|
|
@@ -2451,148 +2523,59 @@ pub const LazyPath = union(enum) {
|
|
|
2451
2523
|
};
|
|
2452
2524
|
}
|
|
2453
2525
|
|
|
2454
|
-
///
|
|
2455
|
-
/// Either returns the path, `"generated"`, or `"dependency"`.
|
|
2526
|
+
/// Deprecated, use `format` instead.
|
|
2456
2527
|
pub fn getDisplayName(lazy_path: LazyPath) []const u8 {
|
|
2457
2528
|
return switch (lazy_path) {
|
|
2458
2529
|
.src_path => |sp| sp.sub_path,
|
|
2459
2530
|
.cwd_relative => |p| p,
|
|
2460
2531
|
.generated => "generated",
|
|
2461
2532
|
.dependency => "dependency",
|
|
2533
|
+
.relative => |r| @tagName(r.base),
|
|
2462
2534
|
};
|
|
2463
2535
|
}
|
|
2464
2536
|
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
.
|
|
2469
|
-
.generated =>
|
|
2537
|
+
pub fn format(lp: LazyPath, w: *Io.Writer) Io.Writer.Error!void {
|
|
2538
|
+
switch (lp) {
|
|
2539
|
+
.src_path => |sp| try w.writeAll(sp.sub_path),
|
|
2540
|
+
.cwd_relative => |p| try w.writeAll(p),
|
|
2541
|
+
.generated => try w.writeAll("generated"),
|
|
2542
|
+
.dependency => try w.writeAll("dependency"),
|
|
2543
|
+
.relative => |r| try w.print("{t} {s}", .{ r.base, r.sub_path }),
|
|
2470
2544
|
}
|
|
2471
2545
|
}
|
|
2472
2546
|
|
|
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 {
|
|
2547
|
+
/// Adds dependencies this file source implies to the given step.
|
|
2548
|
+
pub fn addStepDependencies(lazy_path: LazyPath, other_step: *Step) void {
|
|
2496
2549
|
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
|
-
},
|
|
2550
|
+
.src_path, .cwd_relative, .relative, .dependency => {},
|
|
2505
2551
|
.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,
|
|
2552
|
+
const graph = other_step.owner.graph;
|
|
2553
|
+
const generated_owner_step = graph.generated_files.items[@intFromEnum(gen.index)];
|
|
2554
|
+
other_step.dependOn(generated_owner_step);
|
|
2557
2555
|
},
|
|
2558
2556
|
}
|
|
2559
2557
|
}
|
|
2560
2558
|
|
|
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
2559
|
/// Copies the internal strings.
|
|
2574
2560
|
///
|
|
2575
|
-
/// The `
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
return lazy_path.dupeInner(b.allocator);
|
|
2561
|
+
/// The `graph` parameter is only used for the global arena allocator.
|
|
2562
|
+
pub fn dupe(lazy_path: LazyPath, graph: *const Graph) LazyPath {
|
|
2563
|
+
return dupeInner(lazy_path, graph.arena);
|
|
2579
2564
|
}
|
|
2580
2565
|
|
|
2581
|
-
fn dupeInner(lazy_path: LazyPath,
|
|
2566
|
+
fn dupeInner(lazy_path: LazyPath, arena: Allocator) LazyPath {
|
|
2582
2567
|
return switch (lazy_path) {
|
|
2583
|
-
.src_path => |sp| .{ .src_path = .{
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
} },
|
|
2587
|
-
.cwd_relative => |p| .{ .cwd_relative = dupePathInner(allocator, p) },
|
|
2568
|
+
.src_path => |sp| .{ .src_path = .{ .owner = sp.owner, .sub_path = sp.owner.dupePath(sp.sub_path) } },
|
|
2569
|
+
.cwd_relative => |p| .{ .cwd_relative = Graph.dupePathInner(arena, p) },
|
|
2570
|
+
.relative => |r| .{ .relative = r },
|
|
2588
2571
|
.generated => |gen| .{ .generated = .{
|
|
2589
|
-
.
|
|
2572
|
+
.index = gen.index,
|
|
2590
2573
|
.up = gen.up,
|
|
2591
|
-
.sub_path = dupePathInner(
|
|
2574
|
+
.sub_path = Graph.dupePathInner(arena, gen.sub_path),
|
|
2592
2575
|
} },
|
|
2593
2576
|
.dependency => |dep| .{ .dependency = .{
|
|
2594
2577
|
.dependency = dep.dependency,
|
|
2595
|
-
.sub_path = dupePathInner(
|
|
2578
|
+
.sub_path = Graph.dupePathInner(arena, dep.sub_path),
|
|
2596
2579
|
} },
|
|
2597
2580
|
};
|
|
2598
2581
|
}
|
|
@@ -2631,36 +2614,6 @@ fn dumpBadDirnameHelp(
|
|
|
2631
2614
|
stderr.setColor(.reset) catch {};
|
|
2632
2615
|
}
|
|
2633
2616
|
|
|
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
2617
|
pub const InstallDir = union(enum) {
|
|
2665
2618
|
prefix: void,
|
|
2666
2619
|
lib: void,
|
|
@@ -2670,18 +2623,18 @@ pub const InstallDir = union(enum) {
|
|
|
2670
2623
|
custom: []const u8,
|
|
2671
2624
|
|
|
2672
2625
|
/// Duplicates the install directory including the path if set to custom.
|
|
2673
|
-
pub fn dupe(dir: InstallDir,
|
|
2626
|
+
pub fn dupe(dir: InstallDir, graph: *const Graph) InstallDir {
|
|
2674
2627
|
if (dir == .custom) {
|
|
2675
|
-
return .{ .custom =
|
|
2628
|
+
return .{ .custom = graph.dupeString(dir.custom) };
|
|
2676
2629
|
} else {
|
|
2677
2630
|
return dir;
|
|
2678
2631
|
}
|
|
2679
2632
|
}
|
|
2680
2633
|
};
|
|
2681
2634
|
|
|
2682
|
-
/// Creates a path leading to a directory inside "tmp" subdirectory of
|
|
2683
|
-
///
|
|
2684
|
-
///
|
|
2635
|
+
/// Creates a path leading to a directory inside "tmp" subdirectory of local
|
|
2636
|
+
/// cache which is created on demand and cleaned up by the build runner upon
|
|
2637
|
+
/// success.
|
|
2685
2638
|
pub fn tmpPath(b: *Build) LazyPath {
|
|
2686
2639
|
const wf = b.addTempFiles();
|
|
2687
2640
|
return wf.getDirectory();
|
|
@@ -2725,7 +2678,9 @@ pub fn systemIntegrationOption(
|
|
|
2725
2678
|
name: []const u8,
|
|
2726
2679
|
config: SystemIntegrationOptionConfig,
|
|
2727
2680
|
) bool {
|
|
2728
|
-
const
|
|
2681
|
+
const graph = b.graph;
|
|
2682
|
+
const arena = graph.arena;
|
|
2683
|
+
const gop = graph.system_integration_options.getOrPut(arena, name) catch @panic("OOM");
|
|
2729
2684
|
if (gop.found_existing) switch (gop.value_ptr.*) {
|
|
2730
2685
|
.user_disabled => {
|
|
2731
2686
|
gop.value_ptr.* = .declared_disabled;
|
|
@@ -2738,8 +2693,8 @@ pub fn systemIntegrationOption(
|
|
|
2738
2693
|
.declared_disabled => return false,
|
|
2739
2694
|
.declared_enabled => return true,
|
|
2740
2695
|
} else {
|
|
2741
|
-
gop.key_ptr.* =
|
|
2742
|
-
if (config.default orelse
|
|
2696
|
+
gop.key_ptr.* = graph.dupeString(name);
|
|
2697
|
+
if (config.default orelse graph.system_package_mode) {
|
|
2743
2698
|
gop.value_ptr.* = .declared_enabled;
|
|
2744
2699
|
return true;
|
|
2745
2700
|
} else {
|