@zigc/lib 0.17.0-dev.56 → 0.17.0-dev.607
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/c/fcntl.zig +5 -0
- package/c/inttypes.zig +0 -10
- package/c/math.zig +25 -96
- package/c/pthread.zig +57 -0
- package/c/search.zig +1 -27
- package/c/stdlib/drand48.zig +0 -57
- package/c/stdlib.zig +31 -121
- package/c/string.zig +20 -7
- package/c/strings.zig +0 -38
- package/c/unistd.zig +28 -26
- package/c/wchar.zig +10 -0
- package/c.zig +2 -2
- package/{std/Build → compiler/Maker}/Fuzz.zig +177 -89
- package/compiler/Maker/Graph.zig +85 -0
- package/compiler/Maker/PkgConfig.zig +114 -0
- package/compiler/Maker/ScannedConfig.zig +370 -0
- package/compiler/Maker/Step/CheckFile.zig +63 -0
- package/compiler/Maker/Step/Compile.zig +1390 -0
- package/compiler/Maker/Step/ConfigHeader.zig +610 -0
- package/compiler/Maker/Step/FindProgram.zig +120 -0
- package/compiler/Maker/Step/Fmt.zig +65 -0
- package/compiler/Maker/Step/InstallArtifact.zig +141 -0
- package/compiler/Maker/Step/InstallDir.zig +99 -0
- package/compiler/Maker/Step/InstallFile.zig +26 -0
- package/compiler/Maker/Step/ObjCopy.zig +173 -0
- package/compiler/Maker/Step/Options.zig +104 -0
- package/compiler/Maker/Step/Run.zig +2372 -0
- package/compiler/Maker/Step/TranslateC.zig +152 -0
- package/compiler/Maker/Step/UpdateSourceFiles.zig +89 -0
- package/compiler/Maker/Step/WriteFile.zig +294 -0
- package/compiler/Maker/Step.zig +863 -0
- package/{std/Build → compiler/Maker}/Watch/FsEvents.zig +33 -24
- package/{std/Build → compiler/Maker}/Watch.zig +89 -68
- package/{std/Build → compiler/Maker}/WebServer.zig +145 -118
- package/compiler/Maker.zig +2051 -0
- package/compiler/aro/aro/CodeGen.zig +7 -8
- package/compiler/aro/aro/Compilation.zig +17 -17
- package/compiler/aro/aro/Driver.zig +18 -16
- package/compiler/aro/aro/Parser.zig +20 -15
- package/compiler/aro/aro/Pragma.zig +3 -2
- package/compiler/aro/aro/Preprocessor.zig +11 -8
- package/compiler/aro/aro/pragmas/message.zig +3 -2
- package/compiler/aro/aro/text_literal.zig +3 -2
- package/compiler/aro/assembly_backend/x86_64.zig +4 -4
- package/compiler/aro/backend/Ir/x86/Renderer.zig +3 -3
- package/compiler/configurer.zig +1402 -0
- package/compiler/reduce/Walk.zig +8 -13
- package/compiler/resinator/compile.zig +1 -1
- package/compiler/resinator/cvtres.zig +4 -4
- package/compiler/resinator/errors.zig +7 -7
- package/compiler/resinator/ico.zig +4 -4
- package/compiler/resinator/parse.zig +2 -2
- package/compiler/resinator/res.zig +1 -1
- package/compiler/std-docs.zig +17 -38
- package/compiler/test_runner.zig +25 -15
- package/compiler/translate-c/MacroTranslator.zig +1 -1
- package/compiler/translate-c/Translator.zig +2 -2
- package/compiler/translate-c/ast.zig +16 -23
- package/compiler/translate-c/main.zig +1 -1
- package/compiler_rt/addf3.zig +1 -1
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/atomics.zig +1 -1
- package/compiler_rt/comparef.zig +3 -3
- package/compiler_rt/cos.zig +1 -1
- package/compiler_rt/count0bits.zig +1 -1
- package/compiler_rt/divdf3.zig +2 -2
- package/compiler_rt/divsf3.zig +1 -1
- package/compiler_rt/divtf3.zig +1 -1
- package/compiler_rt/divxf3.zig +1 -1
- package/compiler_rt/extendf.zig +5 -5
- package/compiler_rt/fabs.zig +1 -1
- package/compiler_rt/float_from_int.zig +4 -5
- package/compiler_rt/fmax.zig +1 -1
- package/compiler_rt/fmin.zig +1 -1
- package/compiler_rt/fmod.zig +2 -2
- package/compiler_rt/int_from_float.zig +1 -1
- package/compiler_rt/limb64.zig +3 -2
- package/compiler_rt/mulf3.zig +2 -2
- package/compiler_rt/rem_pio2l.zig +1 -1
- package/compiler_rt/sin.zig +1 -1
- package/compiler_rt/sincos.zig +1 -1
- package/compiler_rt/ssp.zig +2 -2
- package/compiler_rt/tan.zig +1 -1
- package/compiler_rt/truncf.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +5 -26
- package/docs/main.js +8 -8
- package/docs/wasm/Walk.zig +1 -3
- package/docs/wasm/html_render.zig +1 -2
- package/docs/wasm/markdown/Parser.zig +16 -20
- package/fuzzer.zig +5 -3
- package/include/__clang_spirv_builtins.h +12 -12
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/amo.h +131 -0
- package/include/amxavx512intrin.h +215 -1
- package/include/amxintrin.h +0 -2
- package/include/arm_acle.h +37 -27
- package/include/arm_neon.h +218 -82
- package/include/arm_sme.h +8 -8
- package/include/arm_sve.h +4162 -3782
- package/include/avx10_2_512bf16intrin.h +19 -12
- package/include/avx10_2_512convertintrin.h +1 -1
- package/include/avx10_2_512niintrin.h +31 -31
- package/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/include/avx10_2bf16intrin.h +54 -45
- package/include/avx10_2convertintrin.h +2 -2
- package/include/avx10_2copyintrin.h +1 -1
- package/include/avx10_2niintrin.h +14 -14
- package/include/avx10_2satcvtdsintrin.h +2 -2
- package/include/avx2intrin.h +275 -377
- package/include/avx512bf16intrin.h +25 -16
- package/include/avx512bitalgintrin.h +19 -30
- package/include/avx512bwintrin.h +386 -505
- package/include/avx512cdintrin.h +42 -55
- package/include/avx512dqintrin.h +132 -161
- package/include/avx512fintrin.h +1015 -1424
- package/include/avx512fp16intrin.h +112 -110
- package/include/avx512ifmaintrin.h +32 -34
- package/include/avx512ifmavlintrin.h +73 -46
- package/include/avx512vbmi2intrin.h +43 -32
- package/include/avx512vbmiintrin.h +19 -27
- package/include/avx512vbmivlintrin.h +35 -49
- package/include/avx512vlbf16intrin.h +32 -22
- package/include/avx512vlbitalgintrin.h +37 -53
- package/include/avx512vlbwintrin.h +470 -573
- package/include/avx512vlcdintrin.h +74 -102
- package/include/avx512vldqintrin.h +110 -127
- package/include/avx512vlfp16intrin.h +130 -111
- package/include/avx512vlintrin.h +945 -1299
- package/include/avx512vlvbmi2intrin.h +78 -63
- package/include/avx512vlvnniintrin.h +21 -18
- package/include/avx512vlvp2intersectintrin.h +2 -2
- package/include/avx512vnniintrin.h +10 -10
- package/include/avx512vp2intersectintrin.h +1 -2
- package/include/avx512vpopcntdqintrin.h +8 -10
- package/include/avx512vpopcntdqvlintrin.h +17 -15
- package/include/avxifmaintrin.h +16 -0
- package/include/avxintrin.h +165 -241
- package/include/avxvnniint16intrin.h +118 -99
- package/include/avxvnniint8intrin.h +56 -32
- package/include/avxvnniintrin.h +16 -8
- package/include/cpuid.h +101 -4
- package/include/emmintrin.h +168 -168
- package/include/f16cintrin.h +23 -9
- package/include/float.h +16 -155
- package/include/fma4intrin.h +98 -96
- package/include/fmaintrin.h +96 -66
- package/include/gfniintrin.h +21 -16
- package/include/hexagon_types.h +23 -20
- package/include/hvx_hexagon_protos.h +649 -860
- package/include/immintrin.h +0 -12
- package/include/intrin.h +4 -0
- package/include/lasxintrin.h +113 -0
- package/include/llvm_libc_wrappers/assert.h +3 -5
- package/include/llvm_libc_wrappers/ctype.h +3 -115
- package/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/include/llvm_libc_wrappers/stdio.h +10 -38
- package/include/llvm_libc_wrappers/stdlib.h +3 -24
- package/include/llvm_libc_wrappers/string.h +2 -70
- package/include/llvm_libc_wrappers/time.h +4 -10
- package/include/mmintrin.h +188 -257
- package/include/module.modulemap +23 -4
- package/include/movrs_avx10_2_512intrin.h +2 -2
- package/include/movrs_avx10_2intrin.h +4 -4
- package/include/pmmintrin.h +12 -24
- package/include/ptrauth.h +16 -2
- package/include/riscv_mips.h +34 -0
- package/include/riscv_nds.h +89 -0
- package/include/sifive_vector.h +58 -2
- package/include/sm4evexintrin.h +2 -2
- package/include/smmintrin.h +77 -59
- package/include/spirvintrin.h +194 -0
- package/include/stddefer.h +19 -0
- package/include/tmmintrin.h +116 -147
- package/include/vaesintrin.h +1 -2
- package/include/xmmintrin.h +44 -70
- package/include/xopintrin.h +20 -10
- package/init/build.zig +1 -3
- package/libc/darwin/SDKSettings.json +1 -1
- package/libc/darwin/libSystem.tbd +88 -87
- package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
- package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/aarch64-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/csky-linux-any/asm/unistd_32.h +1 -0
- 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/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/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-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/riscv64-openbsd-none/machine/cpu.h +4 -8
- package/libc/include/riscv64-openbsd-none/machine/cpufunc.h +4 -4
- package/libc/include/riscv64-openbsd-none/machine/pmap.h +5 -1
- package/libc/include/riscv64-openbsd-none/machine/pte.h +9 -1
- package/libc/include/riscv64-openbsd-none/riscv64/cpu.h +4 -8
- package/libc/include/riscv64-openbsd-none/riscv64/cpufunc.h +4 -4
- package/libc/include/riscv64-openbsd-none/riscv64/pmap.h +5 -1
- package/libc/include/riscv64-openbsd-none/riscv64/pte.h +9 -1
- package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/sparc-linux-any/asm/errno.h +2 -0
- package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
- package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/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-openbsd-none/i386/specialreg.h +3 -1
- package/libc/include/x86-openbsd-none/machine/specialreg.h +3 -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/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 +9 -2
- package/std/Build/Cache.zig +16 -7
- package/std/Build/Configuration.zig +3436 -0
- package/std/Build/Module.zig +99 -225
- package/std/Build/Step/CheckFile.zig +17 -63
- package/std/Build/Step/Compile.zig +97 -1420
- package/std/Build/Step/ConfigHeader.zig +55 -944
- package/std/Build/Step/Fail.zig +10 -20
- package/std/Build/Step/FindProgram.zig +31 -0
- package/std/Build/Step/Fmt.zig +22 -57
- package/std/Build/Step/InstallArtifact.zig +26 -141
- package/std/Build/Step/InstallDir.zig +14 -67
- package/std/Build/Step/InstallFile.zig +12 -21
- package/std/Build/Step/ObjCopy.zig +82 -199
- package/std/Build/Step/Options.zig +26 -261
- package/std/Build/Step/Run.zig +139 -2214
- package/std/Build/Step/TranslateC.zig +55 -164
- package/std/Build/Step/UpdateSourceFiles.zig +38 -91
- package/std/Build/Step/WriteFile.zig +113 -328
- package/std/Build/Step.zig +45 -916
- package/std/Build/abi.zig +1 -1
- package/std/Build.zig +644 -718
- package/std/Io/Dir.zig +12 -7
- package/std/Io/Dispatch.zig +5 -5
- package/std/Io/File/Writer.zig +8 -6
- package/std/Io/File.zig +6 -9
- package/std/Io/Kqueue.zig +3 -3
- package/std/Io/Reader.zig +8 -14
- package/std/Io/RwLock.zig +2 -0
- package/std/Io/Semaphore.zig +112 -17
- package/std/Io/Terminal.zig +1 -1
- package/std/Io/Threaded.zig +19 -16
- package/std/Io/Uring.zig +7 -7
- package/std/Io/Writer.zig +75 -10
- package/std/Io/net/HostName.zig +11 -6
- package/std/Io.zig +92 -28
- package/std/Random/ChaCha.zig +2 -2
- package/std/Random/benchmark.zig +2 -2
- package/std/Random.zig +6 -6
- package/std/SemanticVersion.zig +1 -1
- package/std/Target/Query.zig +4 -5
- package/std/Target/aarch64.zig +620 -77
- package/std/Target/amdgcn.zig +421 -21
- package/std/Target/arm.zig +40 -6
- package/std/Target/bpf.zig +6 -0
- package/std/Target/hexagon.zig +41 -6
- package/std/Target/loongarch.zig +18 -0
- package/std/Target/mips.zig +6 -0
- package/std/Target/nvptx.zig +58 -35
- package/std/Target/powerpc.zig +27 -19
- package/std/Target/riscv.zig +512 -177
- package/std/Target/sparc.zig +17 -0
- package/std/Target/spirv.zig +1 -1
- package/std/Target/wasm.zig +7 -0
- package/std/Target/x86.zig +200 -31
- package/std/Target/xtensa.zig +65 -0
- package/std/Target.zig +94 -57
- package/std/Thread.zig +17 -4
- package/std/array_hash_map.zig +103 -57
- package/std/array_list.zig +20 -35
- package/std/ascii.zig +0 -9
- package/std/atomic.zig +2 -0
- package/std/base64.zig +5 -5
- package/std/bit_set.zig +85 -93
- package/std/c/serenity.zig +1 -6
- package/std/c.zig +117 -36
- package/std/compress/flate/Decompress.zig +3 -4
- package/std/compress/zstd/Decompress.zig +7 -9
- package/std/crypto/25519/curve25519.zig +2 -2
- package/std/crypto/25519/edwards25519.zig +3 -3
- package/std/crypto/25519/ristretto255.zig +2 -2
- package/std/crypto/25519/scalar.zig +6 -6
- package/std/crypto/25519/x25519.zig +1 -1
- package/std/crypto/Certificate.zig +14 -2
- package/std/crypto/Sha1.zig +1 -1
- package/std/crypto/aegis.zig +45 -39
- package/std/crypto/aes_ccm.zig +22 -22
- package/std/crypto/aes_gcm.zig +10 -12
- package/std/crypto/aes_ocb.zig +9 -9
- package/std/crypto/argon2.zig +15 -15
- package/std/crypto/ascon.zig +75 -35
- package/std/crypto/bcrypt.zig +20 -10
- package/std/crypto/benchmark.zig +7 -7
- package/std/crypto/blake2.zig +100 -64
- package/std/crypto/cbc_mac.zig +1 -1
- package/std/crypto/chacha20.zig +10 -10
- package/std/crypto/cmac.zig +3 -3
- package/std/crypto/codecs/asn1/Oid.zig +12 -1
- package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
- package/std/crypto/codecs/asn1.zig +1 -1
- package/std/crypto/codecs/base64_hex_ct.zig +3 -5
- package/std/crypto/ecdsa.zig +9 -9
- package/std/crypto/ff.zig +4 -5
- package/std/crypto/ghash_polyval.zig +4 -4
- package/std/crypto/hkdf.zig +1 -1
- package/std/crypto/isap.zig +3 -3
- package/std/crypto/kangarootwelve.zig +1 -1
- package/std/crypto/keccak_p.zig +8 -8
- package/std/crypto/md5.zig +1 -1
- package/std/crypto/ml_dsa.zig +39 -39
- package/std/crypto/ml_kem.zig +12 -34
- package/std/crypto/modes.zig +2 -2
- package/std/crypto/pbkdf2.zig +1 -1
- package/std/crypto/pcurves/common.zig +4 -5
- package/std/crypto/pcurves/p256/scalar.zig +3 -3
- package/std/crypto/pcurves/p384/scalar.zig +2 -2
- package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
- package/std/crypto/pcurves/tests/p256.zig +5 -5
- package/std/crypto/pcurves/tests/p384.zig +5 -5
- package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
- package/std/crypto/salsa20.zig +8 -14
- package/std/crypto/sha2.zig +2 -2
- package/std/crypto/sha3.zig +2 -4
- package/std/crypto/siphash.zig +1 -1
- package/std/crypto/timing_safe.zig +10 -9
- package/std/crypto/tls/Client.zig +89 -13
- package/std/crypto/tls.zig +1 -1
- package/std/crypto.zig +4 -3
- package/std/debug/Dwarf.zig +21 -12
- package/std/debug/Pdb.zig +25 -17
- package/std/debug/SelfInfo/Elf.zig +1 -0
- package/std/debug/cpu_context.zig +168 -24
- package/std/debug.zig +16 -8
- package/std/deque.zig +1 -1
- package/std/elf.zig +22 -5
- package/std/enums.zig +8 -20
- package/std/fmt/float.zig +2 -0
- package/std/fmt/parse_float/decimal.zig +1 -1
- package/std/fmt/parse_float.zig +1 -1
- package/std/fmt.zig +7 -8
- package/std/fs/path.zig +7 -5
- package/std/hash/Adler32.zig +3 -3
- package/std/hash/benchmark.zig +2 -2
- package/std/hash/wyhash.zig +2 -2
- package/std/hash/xxhash.zig +0 -6
- package/std/hash_map.zig +22 -2
- package/std/heap/ArenaAllocator.zig +3 -5
- package/std/heap/BufferFirstAllocator.zig +165 -0
- package/std/heap/SafeAllocator.zig +2180 -0
- package/std/heap/debug_allocator.zig +2 -2
- package/std/heap/memory_pool.zig +34 -197
- package/std/heap.zig +20 -133
- package/std/http.zig +4 -5
- package/std/json/Scanner.zig +2 -2
- package/std/json/static.zig +2 -2
- package/std/json.zig +1 -1
- package/std/{builtin → lang}/assembly.zig +71 -0
- package/std/{builtin.zig → lang.zig} +5 -3
- package/std/leb128.zig +2 -2
- package/std/math/acos.zig +6 -0
- package/std/math/asin.zig +6 -0
- package/std/math/atan.zig +5 -0
- package/std/math/big/int.zig +5 -5
- package/std/math/big.zig +4 -4
- package/std/math/copysign.zig +1 -1
- package/std/math/float.zig +62 -0
- package/std/math/frexp.zig +4 -4
- package/std/math/hypot.zig +4 -0
- package/std/math/ilogb.zig +1 -1
- package/std/math/isfinite.zig +1 -1
- package/std/math/isinf.zig +1 -1
- package/std/math/isnan.zig +1 -2
- package/std/math/isnormal.zig +2 -2
- package/std/math/iszero.zig +2 -2
- package/std/math/ldexp.zig +2 -2
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +1 -2
- package/std/math/nextafter.zig +3 -4
- package/std/math/pow.zig +1 -1
- package/std/math/powi.zig +2 -3
- package/std/math/signbit.zig +0 -1
- package/std/math.zig +21 -26
- package/std/mem/Allocator.zig +5 -9
- package/std/mem.zig +52 -75
- package/std/meta/trailer_flags.zig +1 -1
- package/std/meta.zig +4 -36
- package/std/multi_array_list.zig +24 -0
- package/std/os/emscripten.zig +7 -6
- package/std/os/linux/IoUring.zig +2 -0
- package/std/os/linux/alpha.zig +358 -0
- package/std/os/linux/arm.zig +0 -26
- package/std/os/linux/bpf.zig +6 -0
- package/std/os/linux/ioctl.zig +3 -2
- package/std/os/linux/syscalls.zig +528 -1
- package/std/os/linux/tls.zig +12 -1
- package/std/os/linux/x86.zig +2 -2
- package/std/os/linux/xtensa.zig +171 -0
- package/std/os/linux.zig +794 -52
- package/std/os/plan9.zig +1 -1
- package/std/os/uefi/hii.zig +1 -1
- package/std/os/uefi/tables/boot_services.zig +9 -8
- package/std/os/uefi/tables/runtime_services.zig +1 -1
- package/std/os/windows.zig +130 -1
- package/std/os.zig +36 -0
- package/std/pie.zig +21 -0
- package/std/posix.zig +2 -2
- package/std/process/Child.zig +20 -0
- package/std/process/Environ.zig +28 -4
- package/std/process.zig +13 -5
- package/std/simd.zig +4 -21
- package/std/start.zig +45 -12
- package/std/std.zig +8 -1
- package/std/tar/Writer.zig +39 -33
- package/std/tar.zig +8 -4
- package/std/testing.zig +68 -15
- package/std/unicode.zig +13 -8
- package/std/zig/Ast/Render.zig +6 -30
- package/std/zig/Ast.zig +12 -37
- package/std/zig/AstGen.zig +174 -258
- package/std/zig/AstRlAnnotate.zig +1 -11
- package/std/zig/AstSmith.zig +5 -11
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/LibCDirs.zig +14 -7
- package/std/zig/LibCInstallation.zig +49 -14
- package/std/zig/Parse.zig +11 -76
- package/std/zig/PkgConfig.zig +146 -0
- package/std/zig/TokenSmith.zig +0 -6
- package/std/zig/WindowsSdk.zig +18 -18
- package/std/zig/Zir.zig +15 -69
- package/std/zig/ZonGen.zig +19 -27
- package/std/zig/llvm/Builder.zig +39 -33
- package/std/zig/llvm/bitcode_writer.zig +3 -3
- package/std/zig/llvm/ir.zig +8 -8
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/linux.zig +4 -0
- package/std/zig/system/loongarch.zig +25 -9
- package/std/zig/system/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +18 -25
- package/std/zig/target.zig +1 -4
- package/std/zig/tokenizer.zig +4 -43
- package/std/zig.zig +98 -22
- package/std/zip.zig +5 -5
- package/std/zon/Serializer.zig +6 -2
- package/std/zon/parse.zig +1 -1
- package/zig.h +24 -2
- package/compiler/build_runner.zig +0 -1857
- package/compiler_rt/long_double.zig +0 -37
- package/include/amxbf16transposeintrin.h +0 -94
- package/include/amxcomplextransposeintrin.h +0 -303
- package/include/amxfp16transposeintrin.h +0 -94
- package/include/amxmovrstransposeintrin.h +0 -200
- package/include/amxtf32transposeintrin.h +0 -105
- package/include/amxtransposeintrin.h +0 -248
- package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
- package/libc/include/mips64el-openbsd-none/loongson/hibernate.h +0 -33
- package/libc/include/mips64el-openbsd-none/loongson/hibernate_var.h +0 -39
- package/libc/include/mips64el-openbsd-none/machine/hibernate.h +0 -33
- package/libc/include/mips64el-openbsd-none/machine/hibernate_var.h +0 -39
- package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
- package/libc/mingw/math/lrintl.c +0 -18
- package/libc/mingw/math/rintl.c +0 -16
- package/libc/mingw/winpthreads/spinlock.c +0 -82
- package/libc/musl/src/linux/tee.c +0 -8
- package/libc/musl/src/math/i386/lrintl.c +0 -8
- package/libc/musl/src/math/i386/rintl.c +0 -7
- package/libc/musl/src/math/lrintl.c +0 -36
- package/libc/musl/src/math/rintl.c +0 -29
- package/libc/musl/src/math/s390x/rintl.c +0 -15
- package/libc/musl/src/math/x32/lrintl.s +0 -7
- package/libc/musl/src/math/x32/rintl.s +0 -6
- package/libc/musl/src/math/x86_64/lrintl.c +0 -8
- package/libc/musl/src/math/x86_64/rintl.c +0 -7
- package/libc/musl/src/string/strdup.c +0 -10
- package/libc/musl/src/string/strndup.c +0 -12
- package/libc/musl/src/string/wcsdup.c +0 -10
- package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
- package/libc/musl/src/thread/pthread_spin_init.c +0 -6
- package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
- package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
- package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
- package/libc/musl/src/unistd/dup2.c +0 -20
- package/libc/musl/src/unistd/dup3.c +0 -26
- package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
package/std/os/plan9.zig
CHANGED
|
@@ -299,7 +299,7 @@ pub fn openat(dirfd: i32, path: [*:0]const u8, flags: u32, _: mode_t) usize {
|
|
|
299
299
|
const dir_path = std.mem.span(@as([*:0]u8, @ptrCast(&dir_path_buf)));
|
|
300
300
|
const total_path = std.fs.path.join(alloc, &.{ dir_path, std.mem.span(path) }) catch unreachable; // the allocation shouldn't fail because it should not exceed max_path_bytes
|
|
301
301
|
fba.reset();
|
|
302
|
-
const total_path_z = alloc.
|
|
302
|
+
const total_path_z = alloc.dupeSentinel(u8, total_path, 0) catch unreachable; // should not exceed max_path_bytes + 1
|
|
303
303
|
return open(total_path_z.ptr, flags);
|
|
304
304
|
}
|
|
305
305
|
|
package/std/os/uefi/hii.zig
CHANGED
|
@@ -158,12 +158,10 @@ pub const BootServices = extern struct {
|
|
|
158
158
|
_locateProtocol: *const fn (protocol: *const Guid, registration: ?EventRegistration, interface: *?*const anyopaque) callconv(cc) Status,
|
|
159
159
|
|
|
160
160
|
/// Installs one or more protocol interfaces into the boot services environment
|
|
161
|
-
|
|
162
|
-
_installMultipleProtocolInterfaces: *const fn (handle: *Handle, ...) callconv(.c) Status,
|
|
161
|
+
_installMultipleProtocolInterfaces: *const fn (handle: *?Handle, ...) callconv(cc) Status,
|
|
163
162
|
|
|
164
163
|
/// Removes one or more protocol interfaces into the boot services environment
|
|
165
|
-
|
|
166
|
-
_uninstallMultipleProtocolInterfaces: *const fn (handle: *Handle, ...) callconv(.c) Status,
|
|
164
|
+
_uninstallMultipleProtocolInterfaces: *const fn (handle: Handle, ...) callconv(cc) Status,
|
|
167
165
|
|
|
168
166
|
/// Computes and returns a 32-bit CRC for a data buffer.
|
|
169
167
|
_calculateCrc32: *const fn (data: [*]const u8, data_size: usize, *u32) callconv(cc) Status,
|
|
@@ -1238,8 +1236,9 @@ fn protocolInterfaces(
|
|
|
1238
1236
|
@TypeOf(interfaces),
|
|
1239
1237
|
) = undefined;
|
|
1240
1238
|
result[0] = handle_arg;
|
|
1239
|
+
result[result.len - 1] = null;
|
|
1241
1240
|
|
|
1242
|
-
var idx: usize = 1;
|
|
1241
|
+
comptime var idx: usize = 1;
|
|
1243
1242
|
inline for (interfaces) |interface| {
|
|
1244
1243
|
const InterfacePtr = @TypeOf(interface);
|
|
1245
1244
|
const Interface = switch (@typeInfo(InterfacePtr)) {
|
|
@@ -1272,13 +1271,15 @@ fn ProtocolInterfaces(HandleType: type, Interfaces: type) type {
|
|
|
1272
1271
|
@compileError("expected tuple of protocol interfaces, got " ++ @typeName(Interfaces));
|
|
1273
1272
|
const interfaces_info = interfaces_type_info.@"struct";
|
|
1274
1273
|
|
|
1275
|
-
var tuple_types: [interfaces_info.fields.len * 2 +
|
|
1274
|
+
var tuple_types: [interfaces_info.fields.len * 2 + 2]type = undefined;
|
|
1276
1275
|
tuple_types[0] = HandleType;
|
|
1276
|
+
tuple_types[tuple_types.len - 1] = ?*const Guid;
|
|
1277
|
+
|
|
1277
1278
|
var idx = 1;
|
|
1278
|
-
while (idx < tuple_types.len) : (idx += 2) {
|
|
1279
|
+
while (idx < tuple_types.len - 1) : (idx += 2) {
|
|
1279
1280
|
tuple_types[idx] = *const Guid;
|
|
1280
1281
|
tuple_types[idx + 1] = *const anyopaque;
|
|
1281
1282
|
}
|
|
1282
1283
|
|
|
1283
|
-
return
|
|
1284
|
+
return @Tuple(tuple_types[0..]);
|
|
1284
1285
|
}
|
|
@@ -419,7 +419,7 @@ pub const RuntimeServices = extern struct {
|
|
|
419
419
|
pub const DebugDisposition = enum(usize) {
|
|
420
420
|
const Bits = packed struct(usize) {
|
|
421
421
|
optional_ptr: bool = false,
|
|
422
|
-
_pad:
|
|
422
|
+
_pad: @Int(.unsigned, @bitSizeOf(usize) - 1) = 0,
|
|
423
423
|
};
|
|
424
424
|
|
|
425
425
|
pointer = @bitCast(Bits{}),
|
package/std/os/windows.zig
CHANGED
|
@@ -5665,7 +5665,136 @@ pub const PF = enum(DWORD) {
|
|
|
5665
5665
|
ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE = 44,
|
|
5666
5666
|
|
|
5667
5667
|
/// This Arm processor implements the Arm v8.3 LRCPC instructions (for example, LDAPR). Note that certain Arm v8.2 CPUs may optionally support the LRCPC instructions.
|
|
5668
|
-
ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE,
|
|
5668
|
+
ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE = 45,
|
|
5669
|
+
|
|
5670
|
+
/// This Arm processor implements the SVE (Scalable Vector Extension) instructions (FEAT_SVE).
|
|
5671
|
+
ARM_SVE_INSTRUCTIONS_AVAILABLE = 46,
|
|
5672
|
+
|
|
5673
|
+
/// This Arm processor implements the SVE2 instructions (FEAT_SVE2).
|
|
5674
|
+
ARM_SVE2_INSTRUCTIONS_AVAILABLE = 47,
|
|
5675
|
+
|
|
5676
|
+
/// This Arm processor implements the SVE2.1 instructions (FEAT_SVE2p1).
|
|
5677
|
+
ARM_SVE2_1_INSTRUCTIONS_AVAILABLE = 48,
|
|
5678
|
+
|
|
5679
|
+
/// This Arm processor implements the SVE AES instructions (FEAT_SVE_AES).
|
|
5680
|
+
ARM_SVE_AES_INSTRUCTIONS_AVAILABLE = 49,
|
|
5681
|
+
|
|
5682
|
+
/// This Arm processor implements the SVE 128-bit polynomial multiply long instructions (FEAT_SVE_PMULL128).
|
|
5683
|
+
ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE = 50,
|
|
5684
|
+
|
|
5685
|
+
/// This Arm processor implements the SVE bit permute instructions (FEAT_SVE_BitPerm).
|
|
5686
|
+
ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE = 51,
|
|
5687
|
+
|
|
5688
|
+
/// This Arm processor implements the SVE BF16 (BFloat16) instructions (FEAT_BF16).
|
|
5689
|
+
ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE = 52,
|
|
5690
|
+
|
|
5691
|
+
/// This Arm processor implements the SVE EBF16 (Extended BFloat16) instructions (FEAT_EBF16).
|
|
5692
|
+
ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE = 53,
|
|
5693
|
+
|
|
5694
|
+
/// This Arm processor implements the SVE B16B16 instructions (FEAT_SVE_B16B16).
|
|
5695
|
+
ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE = 54,
|
|
5696
|
+
|
|
5697
|
+
/// This Arm processor implements the SVE SHA-3 cryptographic instructions (FEAT_SVE_SHA3).
|
|
5698
|
+
ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE = 55,
|
|
5699
|
+
|
|
5700
|
+
/// This Arm processor implements the SVE SM4 cryptographic instructions (FEAT_SVE_SM4).
|
|
5701
|
+
ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE = 56,
|
|
5702
|
+
|
|
5703
|
+
/// This Arm processor implements the SVE I8MM (Int8 matrix multiply) instructions (FEAT_I8MM).
|
|
5704
|
+
ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE = 57,
|
|
5705
|
+
|
|
5706
|
+
/// This Arm processor implements the SVE F32MM (FP32 matrix multiply) instructions (FEAT_F32MM).
|
|
5707
|
+
ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE = 58,
|
|
5708
|
+
|
|
5709
|
+
/// This Arm processor implements the SVE F64MM (FP64 matrix multiply) instructions (FEAT_F64MM).
|
|
5710
|
+
ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE = 59,
|
|
5711
|
+
|
|
5712
|
+
/// This x64 processor implements the BMI2 instruction set.
|
|
5713
|
+
BMI2_INSTRUCTIONS_AVAILABLE = 60,
|
|
5714
|
+
|
|
5715
|
+
/// This x64 processor implements the MOVDIR64B instruction.
|
|
5716
|
+
MOVDIR64B_INSTRUCTION_AVAILABLE = 61,
|
|
5717
|
+
|
|
5718
|
+
/// This Arm processor implements the LSE2 atomic instructions (FEAT_LSE2).
|
|
5719
|
+
ARM_LSE2_AVAILABLE = 62,
|
|
5720
|
+
|
|
5721
|
+
/// This Arm processor implements the SHA-3 cryptographic instructions (FEAT_SHA3).
|
|
5722
|
+
ARM_SHA3_INSTRUCTIONS_AVAILABLE = 64,
|
|
5723
|
+
|
|
5724
|
+
/// This Arm processor implements the SHA-512 cryptographic instructions (FEAT_SHA512).
|
|
5725
|
+
ARM_SHA512_INSTRUCTIONS_AVAILABLE = 65,
|
|
5726
|
+
|
|
5727
|
+
/// This Arm processor implements the I8MM (Int8 matrix multiply) NEON instructions (FEAT_I8MM).
|
|
5728
|
+
ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE = 66,
|
|
5729
|
+
|
|
5730
|
+
/// This Arm processor implements the FP16 (half-precision floating point) NEON instructions (FEAT_FP16).
|
|
5731
|
+
ARM_V82_FP16_INSTRUCTIONS_AVAILABLE = 67,
|
|
5732
|
+
|
|
5733
|
+
/// This Arm processor implements the BF16 (BFloat16) NEON instructions (FEAT_BF16).
|
|
5734
|
+
ARM_V86_BF16_INSTRUCTIONS_AVAILABLE = 68,
|
|
5735
|
+
|
|
5736
|
+
/// This Arm processor implements the EBF16 (Extended BFloat16) NEON instructions (FEAT_EBF16).
|
|
5737
|
+
ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE = 69,
|
|
5738
|
+
|
|
5739
|
+
/// This Arm processor implements the SME (Scalable Matrix Extension) instructions (FEAT_SME).
|
|
5740
|
+
ARM_SME_INSTRUCTIONS_AVAILABLE = 70,
|
|
5741
|
+
|
|
5742
|
+
/// This Arm processor implements the SME2 instructions (FEAT_SME2).
|
|
5743
|
+
ARM_SME2_INSTRUCTIONS_AVAILABLE = 71,
|
|
5744
|
+
|
|
5745
|
+
/// This Arm processor implements the SME2.1 instructions (FEAT_SME2p1).
|
|
5746
|
+
ARM_SME2_1_INSTRUCTIONS_AVAILABLE = 72,
|
|
5747
|
+
|
|
5748
|
+
/// This Arm processor implements the SME2.2 instructions (FEAT_SME2p2).
|
|
5749
|
+
ARM_SME2_2_INSTRUCTIONS_AVAILABLE = 73,
|
|
5750
|
+
|
|
5751
|
+
/// This Arm processor implements the SVE AES instructions when in Streaming SVE mode (FEAT_SSVE_AES).
|
|
5752
|
+
ARM_SME_AES_INSTRUCTIONS_AVAILABLE = 74,
|
|
5753
|
+
|
|
5754
|
+
/// This Arm processor implements the SVE bit permute instructions when in Streaming SVE mode (FEAT_SSVE_BitPerm).
|
|
5755
|
+
ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE = 75,
|
|
5756
|
+
|
|
5757
|
+
/// This Arm processor implements the SVE FMMLA (widening, 4-way, FP8 to FP16) instruction when in Streaming SVE mode (FEAT_SSVE_F8F16MM).
|
|
5758
|
+
ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE = 76,
|
|
5759
|
+
|
|
5760
|
+
/// This Arm processor implements the SVE FMMLA (widening, 8-way, FP8 to FP32) instruction when in Streaming SVE mode (FEAT_SSVE_F8F32MM).
|
|
5761
|
+
ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE = 77,
|
|
5762
|
+
|
|
5763
|
+
/// This Arm processor implements the SVE2 FP8DOT2 instructions when in Streaming SVE mode (FEAT_SSVE_FP8DOT2).
|
|
5764
|
+
ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE = 78,
|
|
5765
|
+
|
|
5766
|
+
/// This Arm processor implements the SVE2 FP8DOT4 instructions when in Streaming SVE mode (FEAT_SSVE_FP8DOT4).
|
|
5767
|
+
ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE = 79,
|
|
5768
|
+
|
|
5769
|
+
/// This Arm processor implements the SVE2 FP8FMA instructions when in Streaming SVE mode (FEAT_SSVE_FP8FMA).
|
|
5770
|
+
ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE = 80,
|
|
5771
|
+
|
|
5772
|
+
/// This Arm processor implements the SME F8F32 instructions (FEAT_SME_F8F32).
|
|
5773
|
+
ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE = 81,
|
|
5774
|
+
|
|
5775
|
+
/// This Arm processor implements the SME F8F16 instructions (FEAT_SME_F8F16).
|
|
5776
|
+
ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE = 82,
|
|
5777
|
+
|
|
5778
|
+
/// This Arm processor implements the SME F16F16 instructions (FEAT_SME_F16F16).
|
|
5779
|
+
ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE = 83,
|
|
5780
|
+
|
|
5781
|
+
/// This Arm processor implements the SME B16B16 instructions (FEAT_SME_B16B16).
|
|
5782
|
+
ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE = 84,
|
|
5783
|
+
|
|
5784
|
+
/// This Arm processor implements the SME F64F64 instructions (FEAT_SME_F64F64).
|
|
5785
|
+
ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE = 85,
|
|
5786
|
+
|
|
5787
|
+
/// This Arm processor implements the SME I16I64 instructions (FEAT_SME_I16I64).
|
|
5788
|
+
ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE = 86,
|
|
5789
|
+
|
|
5790
|
+
/// This Arm processor implements the SME LUTv2 instructions (FEAT_SME_LUTv2).
|
|
5791
|
+
ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE = 87,
|
|
5792
|
+
|
|
5793
|
+
/// This Arm processor implements SME FA64 (Full AArch64 instruction set when in Streaming SVE mode) (FEAT_SME_FA64).
|
|
5794
|
+
ARM_SME_FA64_INSTRUCTIONS_AVAILABLE = 88,
|
|
5795
|
+
|
|
5796
|
+
/// This x64 processor implements the UMONITOR instruction.
|
|
5797
|
+
UMONITOR_INSTRUCTION_AVAILABLE = 89,
|
|
5669
5798
|
};
|
|
5670
5799
|
|
|
5671
5800
|
pub const MAX_WOW64_SHARED_ENTRIES = 16;
|
package/std/os.zig
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const builtin = @import("builtin");
|
|
2
|
+
const std = @import("std.zig");
|
|
2
3
|
const native_os = builtin.os.tag;
|
|
3
4
|
|
|
4
5
|
pub const linux = @import("os/linux.zig");
|
|
@@ -8,6 +9,41 @@ pub const wasi = @import("os/wasi.zig");
|
|
|
8
9
|
pub const emscripten = @import("os/emscripten.zig");
|
|
9
10
|
pub const windows = @import("os/windows.zig");
|
|
10
11
|
|
|
12
|
+
/// Returns whether the Zig standard library requires libc in order to interface
|
|
13
|
+
/// with the operating system on the given target.
|
|
14
|
+
pub fn targetRequiresLibC(target: *const std.Target) bool {
|
|
15
|
+
if (target.requiresLibC()) return true;
|
|
16
|
+
return switch (target.os.tag) {
|
|
17
|
+
.linux => switch (target.cpu.arch) {
|
|
18
|
+
// https://codeberg.org/ziglang/zig/issues/30942
|
|
19
|
+
.csky,
|
|
20
|
+
// https://codeberg.org/ziglang/zig/issues/30943
|
|
21
|
+
.hppa,
|
|
22
|
+
.hppa64,
|
|
23
|
+
// https://codeberg.org/ziglang/zig/issues/30944
|
|
24
|
+
.microblaze,
|
|
25
|
+
.microblazeel,
|
|
26
|
+
// https://codeberg.org/ziglang/zig/issues/30946
|
|
27
|
+
.sh,
|
|
28
|
+
.sheb,
|
|
29
|
+
// https://codeberg.org/ziglang/zig/issues/30945
|
|
30
|
+
.sparc,
|
|
31
|
+
=> true,
|
|
32
|
+
else => false,
|
|
33
|
+
},
|
|
34
|
+
.freebsd => true, // https://codeberg.org/ziglang/zig/issues/30981
|
|
35
|
+
.netbsd => true, // https://codeberg.org/ziglang/zig/issues/30980
|
|
36
|
+
.openbsd => true, // https://codeberg.org/ziglang/zig/issues/30982
|
|
37
|
+
else => false,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// Returns whether the Zig standard library requires libc in order to interface
|
|
42
|
+
/// with the operating system on the current target.
|
|
43
|
+
pub fn requiresLibC() bool {
|
|
44
|
+
return targetRequiresLibC(&builtin.target);
|
|
45
|
+
}
|
|
46
|
+
|
|
11
47
|
test {
|
|
12
48
|
_ = linux;
|
|
13
49
|
if (native_os == .uefi) _ = uefi;
|
package/std/pie.zig
CHANGED
|
@@ -22,6 +22,7 @@ const R_RISCV_RELATIVE = 3;
|
|
|
22
22
|
const R_390_RELATIVE = 12;
|
|
23
23
|
const R_SH_RELATIVE = 165;
|
|
24
24
|
const R_SPARC_RELATIVE = 22;
|
|
25
|
+
const R_XTENSA_RELATIVE = 5;
|
|
25
26
|
|
|
26
27
|
const R_RELATIVE = switch (builtin.cpu.arch) {
|
|
27
28
|
.x86 => R_386_RELATIVE,
|
|
@@ -43,6 +44,7 @@ const R_RELATIVE = switch (builtin.cpu.arch) {
|
|
|
43
44
|
.s390x => R_390_RELATIVE,
|
|
44
45
|
.sh, .sheb => R_SH_RELATIVE,
|
|
45
46
|
.sparc, .sparc64 => R_SPARC_RELATIVE,
|
|
47
|
+
.xtensa, .xtensaeb => R_XTENSA_RELATIVE,
|
|
46
48
|
else => @compileError("Missing R_RELATIVE definition for this target"),
|
|
47
49
|
};
|
|
48
50
|
|
|
@@ -261,6 +263,25 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
|
|
|
261
263
|
: [ret] "=r" (-> [*]const elf.Dyn),
|
|
262
264
|
:
|
|
263
265
|
: .{ .l7 = true }),
|
|
266
|
+
.xtensa, .xtensaeb => asm volatile (
|
|
267
|
+
\\ .weak _DYNAMIC
|
|
268
|
+
\\ .hidden _DYNAMIC
|
|
269
|
+
// Set things up such that after the `call0`, `a0` will point 1 byte before the
|
|
270
|
+
// embedded constant. Note that `call0` is a 3-byte instruction, so we need both
|
|
271
|
+
// `.balign` directives to be safe.
|
|
272
|
+
\\ .balign 4
|
|
273
|
+
\\ .begin no-transform
|
|
274
|
+
\\ call0 1f
|
|
275
|
+
\\ .end no-transform
|
|
276
|
+
\\ .balign 4
|
|
277
|
+
\\ .word _DYNAMIC - .
|
|
278
|
+
\\1:
|
|
279
|
+
\\ add a0, a0, 1
|
|
280
|
+
\\ l32i a8, a0, 0
|
|
281
|
+
\\ add %[ret], a0, a8
|
|
282
|
+
: [ret] "=a" (-> [*]const elf.Dyn),
|
|
283
|
+
:
|
|
284
|
+
: .{ .a0 = true, .a8 = true }),
|
|
264
285
|
else => {
|
|
265
286
|
@compileError("PIE startup is not yet supported for this target!");
|
|
266
287
|
},
|
package/std/posix.zig
CHANGED
|
@@ -803,7 +803,7 @@ pub fn dl_iterate_phdr(
|
|
|
803
803
|
}
|
|
804
804
|
}.callbackC, @ptrCast(@constCast(&context)))) {
|
|
805
805
|
0 => return,
|
|
806
|
-
else => |err| return @as(Error, @errorCast(@errorFromInt(@as(
|
|
806
|
+
else => |err| return @as(Error, @errorCast(@errorFromInt(@as(@Int(.unsigned, @bitSizeOf(anyerror)), @intCast(err))))),
|
|
807
807
|
}
|
|
808
808
|
}
|
|
809
809
|
|
|
@@ -834,7 +834,7 @@ pub fn dl_iterate_phdr(
|
|
|
834
834
|
while (it.next()) |entry| {
|
|
835
835
|
const phdrs: []elf.ElfN.Phdr = if (entry.addr != 0) phdrs: {
|
|
836
836
|
const ehdr: *elf.ElfN.Ehdr = @ptrFromInt(entry.addr);
|
|
837
|
-
assert(mem.eql(u8, ehdr.ident
|
|
837
|
+
assert(mem.eql(u8, &ehdr.ident.magic, elf.MAGIC));
|
|
838
838
|
const phdrs: [*]elf.ElfN.Phdr = @ptrFromInt(entry.addr + ehdr.phoff);
|
|
839
839
|
break :phdrs phdrs[0..ehdr.phnum];
|
|
840
840
|
} else getSelfPhdrs();
|
package/std/process/Child.zig
CHANGED
|
@@ -96,6 +96,22 @@ pub const Term = union(enum) {
|
|
|
96
96
|
signal: std.posix.SIG,
|
|
97
97
|
stopped: std.posix.SIG,
|
|
98
98
|
unknown: u32,
|
|
99
|
+
|
|
100
|
+
pub fn success(t: Term) bool {
|
|
101
|
+
return switch (t) {
|
|
102
|
+
.exited => |code| code == 0,
|
|
103
|
+
else => false,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
pub fn format(t: Term, w: *Io.Writer) Io.Writer.Error!void {
|
|
108
|
+
switch (t) {
|
|
109
|
+
.exited => |code| return w.print("exited with code {d}", .{code}),
|
|
110
|
+
.signal => |sig| return w.print("terminated with signal {t}", .{sig}),
|
|
111
|
+
.stopped => |sig| return w.print("stopped with signal {t}", .{sig}),
|
|
112
|
+
.unknown => return w.writeAll("terminated unexpectedly"),
|
|
113
|
+
}
|
|
114
|
+
}
|
|
99
115
|
};
|
|
100
116
|
|
|
101
117
|
pub const Cwd = union(enum) {
|
|
@@ -135,3 +151,7 @@ pub fn wait(child: *Child, io: Io) WaitError!Term {
|
|
|
135
151
|
assert(child.id != null);
|
|
136
152
|
return io.vtable.childWait(io.userdata, child);
|
|
137
153
|
}
|
|
154
|
+
|
|
155
|
+
test {
|
|
156
|
+
_ = Term;
|
|
157
|
+
}
|
package/std/process/Environ.zig
CHANGED
|
@@ -96,6 +96,7 @@ pub const WindowsBlock = struct {
|
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
|
|
99
|
+
/// Each key and each value are allocated independently and owned by this data structure.
|
|
99
100
|
pub const Map = struct {
|
|
100
101
|
array_hash_map: ArrayHashMap,
|
|
101
102
|
allocator: Allocator,
|
|
@@ -340,9 +341,6 @@ pub const Map = struct {
|
|
|
340
341
|
/// Returns a full copy of `em` allocated with `gpa`, which is not necessarily
|
|
341
342
|
/// the same allocator used to allocate `em`.
|
|
342
343
|
pub fn clone(m: *const Map, gpa: Allocator) Allocator.Error!Map {
|
|
343
|
-
// Since we need to dupe the keys and values, the only way for error handling to not be a
|
|
344
|
-
// nightmare is to add keys to an empty map one-by-one. This could be avoided if this
|
|
345
|
-
// abstraction were a bit less... OOP-esque.
|
|
346
344
|
var new: Map = .init(gpa);
|
|
347
345
|
errdefer new.deinit();
|
|
348
346
|
try new.array_hash_map.ensureUnusedCapacity(gpa, m.array_hash_map.count());
|
|
@@ -352,6 +350,32 @@ pub const Map = struct {
|
|
|
352
350
|
return new;
|
|
353
351
|
}
|
|
354
352
|
|
|
353
|
+
/// Adds all the key-value pairs from `other` into this `m`.
|
|
354
|
+
pub fn putAll(m: *Map, other: *const Map) Allocator.Error!void {
|
|
355
|
+
const gpa = m.allocator;
|
|
356
|
+
try m.array_hash_map.ensureUnusedCapacity(gpa, other.array_hash_map.count());
|
|
357
|
+
const start = m.count();
|
|
358
|
+
errdefer while (m.array_hash_map.count() > start) {
|
|
359
|
+
const kv = m.array_hash_map.pop().?;
|
|
360
|
+
gpa.free(kv.key);
|
|
361
|
+
gpa.free(kv.value);
|
|
362
|
+
};
|
|
363
|
+
for (other.array_hash_map.keys(), other.array_hash_map.values()) |key, value| {
|
|
364
|
+
try m.put(key, value);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/// Set the length to zero, freeing all key and value memory, not freeing
|
|
369
|
+
/// the allocation for the entries.
|
|
370
|
+
pub fn clearRetainingCapacity(m: *Map) void {
|
|
371
|
+
const gpa = m.allocator;
|
|
372
|
+
for (m.array_hash_map.keys(), m.array_hash_map.values()) |k, v| {
|
|
373
|
+
gpa.free(k);
|
|
374
|
+
gpa.free(v);
|
|
375
|
+
}
|
|
376
|
+
m.array_hash_map.clearRetainingCapacity();
|
|
377
|
+
}
|
|
378
|
+
|
|
355
379
|
/// Creates a null-delimited environment variable block in the format
|
|
356
380
|
/// expected by POSIX, from a hash map plus options.
|
|
357
381
|
pub fn createPosixBlock(
|
|
@@ -754,7 +778,7 @@ pub fn createPosixBlock(
|
|
|
754
778
|
},
|
|
755
779
|
.nothing => {},
|
|
756
780
|
};
|
|
757
|
-
envp[envp_len] = try gpa.
|
|
781
|
+
envp[envp_len] = try gpa.dupeSentinel(u8, mem.span(entry), 0);
|
|
758
782
|
envp_len += 1;
|
|
759
783
|
}
|
|
760
784
|
|
package/std/process.zig
CHANGED
|
@@ -3,6 +3,7 @@ const native_os = builtin.os.tag;
|
|
|
3
3
|
|
|
4
4
|
const std = @import("std.zig");
|
|
5
5
|
const Io = std.Io;
|
|
6
|
+
const Dir = std.Io.Dir;
|
|
6
7
|
const File = std.Io.File;
|
|
7
8
|
const fs = std.fs;
|
|
8
9
|
const mem = std.mem;
|
|
@@ -85,7 +86,7 @@ pub fn currentPathAlloc(io: Io, allocator: Allocator) CurrentPathAllocError![:0]
|
|
|
85
86
|
error.NameTooLong => unreachable,
|
|
86
87
|
else => |e| return e,
|
|
87
88
|
};
|
|
88
|
-
return allocator.
|
|
89
|
+
return allocator.dupeSentinel(u8, buffer[0..n], 0);
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
test currentPathAlloc {
|
|
@@ -130,7 +131,7 @@ pub fn posixGetUserInfo(io: Io, name: []const u8) !UserInfo {
|
|
|
130
131
|
return posixGetUserInfoPasswdStream(name, &file_reader.interface) catch |err| switch (err) {
|
|
131
132
|
error.ReadFailed => return file_reader.err.?,
|
|
132
133
|
error.EndOfStream => return error.UserNotFound,
|
|
133
|
-
error.CorruptPasswordFile => return
|
|
134
|
+
error.CorruptPasswordFile => |e| return e,
|
|
134
135
|
};
|
|
135
136
|
}
|
|
136
137
|
|
|
@@ -734,7 +735,7 @@ pub fn executablePathAlloc(io: Io, allocator: Allocator) ExecutablePathAllocErro
|
|
|
734
735
|
error.NameTooLong => unreachable,
|
|
735
736
|
else => |e| return e,
|
|
736
737
|
};
|
|
737
|
-
return allocator.
|
|
738
|
+
return allocator.dupeSentinel(u8, buffer[0..n], 0);
|
|
738
739
|
}
|
|
739
740
|
|
|
740
741
|
pub const ExecutablePathError = ExecutablePathBaseError || error{NameTooLong};
|
|
@@ -784,7 +785,7 @@ pub fn executableDirPathAlloc(io: Io, allocator: Allocator) ExecutablePathAllocE
|
|
|
784
785
|
|
|
785
786
|
pub const OpenExecutableError = File.OpenError || ExecutablePathError || File.LockError;
|
|
786
787
|
|
|
787
|
-
pub fn openExecutable(io: Io, flags:
|
|
788
|
+
pub fn openExecutable(io: Io, flags: Dir.OpenFileOptions) OpenExecutableError!File {
|
|
788
789
|
return io.vtable.processExecutableOpen(io.userdata, flags);
|
|
789
790
|
}
|
|
790
791
|
|
|
@@ -845,7 +846,7 @@ pub fn abort() noreturn {
|
|
|
845
846
|
exit(127); // Pid 1 might not be signalled in some containers.
|
|
846
847
|
}
|
|
847
848
|
switch (native_os) {
|
|
848
|
-
.uefi, .wasi, .emscripten, .cuda, .amdhsa => @trap(),
|
|
849
|
+
.uefi, .wasi, .emscripten, .cuda, .amdhsa, .other, .freestanding => @trap(),
|
|
849
850
|
else => posix.system.abort(),
|
|
850
851
|
}
|
|
851
852
|
}
|
|
@@ -1112,3 +1113,10 @@ test protectMemory {
|
|
|
1112
1113
|
protectMemory(&test_page, .{}) catch return error.SkipZigTest;
|
|
1113
1114
|
protectMemory(&test_page, .{ .read = true, .write = true }) catch return error.SkipZigTest;
|
|
1114
1115
|
}
|
|
1116
|
+
|
|
1117
|
+
test {
|
|
1118
|
+
_ = Child;
|
|
1119
|
+
_ = Args;
|
|
1120
|
+
_ = Environ;
|
|
1121
|
+
_ = Preopens;
|
|
1122
|
+
}
|
package/std/simd.zig
CHANGED
|
@@ -157,13 +157,6 @@ pub fn join(a: anytype, b: anytype) @Vector(vectorLength(@TypeOf(a)) + vectorLen
|
|
|
157
157
|
/// Returns a vector whose elements alternates between those of each input vector.
|
|
158
158
|
/// For example, `interlace(.{[4]u32{11, 12, 13, 14}, [4]u32{21, 22, 23, 24}})` returns a vector containing `.{11, 21, 12, 22, 13, 23, 14, 24}`.
|
|
159
159
|
pub fn interlace(vecs: anytype) @Vector(vectorLength(@TypeOf(vecs[0])) * vecs.len, std.meta.Child(@TypeOf(vecs[0]))) {
|
|
160
|
-
// interlace doesn't work on MIPS, for some reason.
|
|
161
|
-
// Notes from earlier debug attempt:
|
|
162
|
-
// The indices are correct. The problem seems to be with the @shuffle builtin.
|
|
163
|
-
// On MIPS, the test that interlaces small_base gives { 0, 2, 0, 0, 64, 255, 248, 200, 0, 0 }.
|
|
164
|
-
// Calling this with two inputs seems to work fine, but I'll let the compile error trigger for all inputs, just to be safe.
|
|
165
|
-
if (builtin.cpu.arch.isMIPS()) @compileError("TODO: Find out why interlace() doesn't work on MIPS");
|
|
166
|
-
|
|
167
160
|
const VecType = @TypeOf(vecs[0]);
|
|
168
161
|
const vecs_arr = @as([vecs.len]VecType, vecs);
|
|
169
162
|
const Child = std.meta.Child(@TypeOf(vecs_arr[0]));
|
|
@@ -247,13 +240,11 @@ test "vector patterns" {
|
|
|
247
240
|
try std.testing.expectEqual([8]u32{ 10, 20, 30, 40, 55, 66, 77, 88 }, join(base, other_base));
|
|
248
241
|
try std.testing.expectEqual([2]u32{ 20, 30 }, extract(base, 1, 2));
|
|
249
242
|
|
|
250
|
-
|
|
251
|
-
try std.testing.expectEqual([8]u32{ 10, 55, 20, 66, 30, 77, 40, 88 }, interlace(.{ base, other_base }));
|
|
243
|
+
try std.testing.expectEqual([8]u32{ 10, 55, 20, 66, 30, 77, 40, 88 }, interlace(.{ base, other_base }));
|
|
252
244
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}
|
|
245
|
+
const small_braid = interlace(small_bases);
|
|
246
|
+
try std.testing.expectEqual([10]u8{ 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 }, small_braid);
|
|
247
|
+
try std.testing.expectEqual(small_bases, deinterlace(small_bases.len, small_braid));
|
|
257
248
|
}
|
|
258
249
|
|
|
259
250
|
/// Joins two vectors, shifts them leftwards (towards lower indices) and extracts the leftmost elements into a vector the length of a and b.
|
|
@@ -384,9 +375,6 @@ pub fn prefixScanWithFunc(
|
|
|
384
375
|
/// For example, this should be 0 for addition or 1 for multiplication.
|
|
385
376
|
comptime identity: std.meta.Child(@TypeOf(vec)),
|
|
386
377
|
) if (ErrorType == void) @TypeOf(vec) else ErrorType!@TypeOf(vec) {
|
|
387
|
-
// I haven't debugged this, but it might be a cousin of sorts to what's going on with interlace.
|
|
388
|
-
if (builtin.cpu.arch.isMIPS()) @compileError("TODO: Find out why prefixScan doesn't work on MIPS");
|
|
389
|
-
|
|
390
378
|
const len = vectorLength(@TypeOf(vec));
|
|
391
379
|
|
|
392
380
|
if (hop == 0) @compileError("hop can not be 0; you'd be going nowhere forever!");
|
|
@@ -456,11 +444,6 @@ pub fn prefixScan(comptime op: std.builtin.ReduceOp, comptime hop: isize, vec: a
|
|
|
456
444
|
}
|
|
457
445
|
|
|
458
446
|
test "vector prefix scan" {
|
|
459
|
-
if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21893
|
|
460
|
-
if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
|
|
461
|
-
|
|
462
|
-
if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest;
|
|
463
|
-
|
|
464
447
|
const int_base = @Vector(4, i32){ 11, 23, 9, -21 };
|
|
465
448
|
const float_base = @Vector(4, f32){ 2, 0.5, -10, 6.54321 };
|
|
466
449
|
const bool_base = @Vector(4, bool){ true, false, true, false };
|
package/std/start.zig
CHANGED
|
@@ -20,8 +20,13 @@ comptime {
|
|
|
20
20
|
_ = root;
|
|
21
21
|
|
|
22
22
|
if (builtin.output_mode == .Lib and builtin.link_mode == .dynamic) {
|
|
23
|
-
if (
|
|
24
|
-
|
|
23
|
+
const dll_main_crt_startup = if (builtin.abi.isGnu()) "DllMainCRTStartup" else "_DllMainCRTStartup";
|
|
24
|
+
if (native_os == .windows and !builtin.link_libc and !@hasDecl(root, dll_main_crt_startup)) {
|
|
25
|
+
@export(&DllMainCRTStartup, .{ .name = dll_main_crt_startup });
|
|
26
|
+
} else if (native_os == .windows and builtin.link_libc and @hasDecl(root, "DllMain")) {
|
|
27
|
+
if (!@typeInfo(@TypeOf(root.DllMain)).@"fn".calling_convention.eql(.winapi)) {
|
|
28
|
+
@export(&DllMain, .{ .name = "DllMain" });
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
31
|
} else if (builtin.output_mode == .Exe or @hasDecl(root, "main")) {
|
|
27
32
|
if (builtin.link_libc and @hasDecl(root, "main")) {
|
|
@@ -71,7 +76,7 @@ comptime {
|
|
|
71
76
|
}
|
|
72
77
|
}
|
|
73
78
|
|
|
74
|
-
fn
|
|
79
|
+
fn DllMainCRTStartup(
|
|
75
80
|
hinstDLL: std.os.windows.HINSTANCE,
|
|
76
81
|
fdwReason: std.os.windows.DWORD,
|
|
77
82
|
lpReserved: std.os.windows.LPVOID,
|
|
@@ -81,12 +86,20 @@ fn _DllMainCRTStartup(
|
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
if (@hasDecl(root, "DllMain")) {
|
|
84
|
-
return root.DllMain(hinstDLL, fdwReason, lpReserved);
|
|
89
|
+
return root.DllMain(@ptrCast(hinstDLL), fdwReason, lpReserved);
|
|
85
90
|
}
|
|
86
91
|
|
|
87
92
|
return .TRUE;
|
|
88
93
|
}
|
|
89
94
|
|
|
95
|
+
fn DllMain(
|
|
96
|
+
hinstDLL: std.os.windows.HINSTANCE,
|
|
97
|
+
fdwReason: std.os.windows.DWORD,
|
|
98
|
+
lpReserved: std.os.windows.LPVOID,
|
|
99
|
+
) callconv(.winapi) std.os.windows.BOOL {
|
|
100
|
+
return root.DllMain(@ptrCast(hinstDLL), fdwReason, lpReserved);
|
|
101
|
+
}
|
|
102
|
+
|
|
90
103
|
fn wasm_freestanding_start() callconv(.c) void {
|
|
91
104
|
// This is marked inline because for some reason LLVM in
|
|
92
105
|
// release mode fails to inline it, and we want fewer call frames in stack traces.
|
|
@@ -156,6 +169,7 @@ fn _start() callconv(.naked) noreturn {
|
|
|
156
169
|
.kvx => ".cfi_undefined r14",
|
|
157
170
|
.loongarch32, .loongarch64 => ".cfi_undefined 1",
|
|
158
171
|
.m68k => ".cfi_undefined %%pc",
|
|
172
|
+
.m88k => ".cfi_undefined %%r1",
|
|
159
173
|
.microblaze, .microblazeel => ".cfi_undefined r15",
|
|
160
174
|
.mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra",
|
|
161
175
|
.or1k => ".cfi_undefined r9",
|
|
@@ -169,6 +183,7 @@ fn _start() callconv(.naked) noreturn {
|
|
|
169
183
|
.sparc, .sparc64 => ".cfi_undefined %%i7",
|
|
170
184
|
.x86 => ".cfi_undefined %%eip",
|
|
171
185
|
.x86_64 => ".cfi_undefined %%rip",
|
|
186
|
+
.xtensa, .xtensaeb => "", // No CFI support.
|
|
172
187
|
else => @compileError("unsupported arch"),
|
|
173
188
|
});
|
|
174
189
|
|
|
@@ -318,6 +333,16 @@ fn _start() callconv(.naked) noreturn {
|
|
|
318
333
|
\\ lea %[posixCallMainAndExit] - . - 8, %%a0
|
|
319
334
|
\\ jsr (%%pc, %%a0)
|
|
320
335
|
,
|
|
336
|
+
.m88k =>
|
|
337
|
+
// r1 = LR, r30 = FP, r31 = SP
|
|
338
|
+
\\ or %%r0, %%r0, %%r0
|
|
339
|
+
\\ or %%r0, %%r0, %%r0
|
|
340
|
+
\\ or %%30, %%r0, %%r0
|
|
341
|
+
\\ or %%r1, %%r0, %%r0
|
|
342
|
+
\\ or %%r2, %%r31, %%r0
|
|
343
|
+
\\ clr %%r31, %%r31, 4<0>
|
|
344
|
+
\\ br.n %[posixCallMainAndExit]
|
|
345
|
+
,
|
|
321
346
|
.microblaze, .microblazeel =>
|
|
322
347
|
// r1 = SP, r15 = LR, r19 = FP, r20 = GP
|
|
323
348
|
\\ ori r15, r0, r0
|
|
@@ -462,6 +487,15 @@ fn _start() callconv(.naked) noreturn {
|
|
|
462
487
|
\\ sub %%sp, 2047, %%sp
|
|
463
488
|
\\ ba,a %[posixCallMainAndExit]
|
|
464
489
|
,
|
|
490
|
+
.xtensa, .xtensaeb =>
|
|
491
|
+
// a0 = LR, a7 = FP, a1 = SP
|
|
492
|
+
\\ movi a0, 0
|
|
493
|
+
\\ movi a7, 0
|
|
494
|
+
\\ mov a2, sp
|
|
495
|
+
\\ movi a8, -16
|
|
496
|
+
\\ and sp, sp, a8
|
|
497
|
+
\\ callx0 %[posixCallMainAndExit]
|
|
498
|
+
,
|
|
465
499
|
else => @compileError("unsupported arch"),
|
|
466
500
|
}
|
|
467
501
|
:
|
|
@@ -686,12 +720,11 @@ fn mainWithoutEnv(c_argc: c_int, c_argv: [*][*:0]c_char) callconv(.c) c_int {
|
|
|
686
720
|
/// General error message for a malformed return type
|
|
687
721
|
const bad_main_ret = "expected return type of main to be 'void', '!void', 'noreturn', 'u8', or '!u8'";
|
|
688
722
|
|
|
689
|
-
const
|
|
690
|
-
.Debug => true,
|
|
691
|
-
.ReleaseSafe => !builtin.link_libc, // Not ideal, but the best we have for now.
|
|
723
|
+
const use_safe_allocator = !is_wasm and switch (builtin.mode) {
|
|
724
|
+
.Debug, .ReleaseSafe => true,
|
|
692
725
|
.ReleaseFast, .ReleaseSmall => !builtin.link_libc and builtin.single_threaded, // Also not ideal.
|
|
693
726
|
};
|
|
694
|
-
var
|
|
727
|
+
var safe_allocator: std.heap.SafeAllocator = .init(std.heap.page_allocator, .{});
|
|
695
728
|
|
|
696
729
|
inline fn callMain(args: std.process.Args.Vector, environ: std.process.Environ.Block) u8 {
|
|
697
730
|
const fn_info = @typeInfo(@TypeOf(root.main)).@"fn";
|
|
@@ -701,8 +734,8 @@ inline fn callMain(args: std.process.Args.Vector, environ: std.process.Environ.B
|
|
|
701
734
|
.environ = .{ .block = environ },
|
|
702
735
|
}));
|
|
703
736
|
|
|
704
|
-
const gpa = if (
|
|
705
|
-
|
|
737
|
+
const gpa = if (use_safe_allocator)
|
|
738
|
+
safe_allocator.allocator()
|
|
706
739
|
else if (builtin.link_libc)
|
|
707
740
|
std.heap.c_allocator
|
|
708
741
|
else if (is_wasm)
|
|
@@ -712,8 +745,8 @@ inline fn callMain(args: std.process.Args.Vector, environ: std.process.Environ.B
|
|
|
712
745
|
else
|
|
713
746
|
comptime unreachable;
|
|
714
747
|
|
|
715
|
-
defer if (
|
|
716
|
-
_ =
|
|
748
|
+
defer if (use_safe_allocator) {
|
|
749
|
+
_ = safe_allocator.deinit(); // Leaks do not affect return code.
|
|
717
750
|
};
|
|
718
751
|
|
|
719
752
|
const arena_backing_allocator = if (is_wasm) gpa else std.heap.page_allocator;
|