@zigc/lib 0.17.0-dev.27 → 0.17.0-dev.296
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 +6 -1
- package/c/inttypes.zig +0 -10
- package/c/math.zig +52 -112
- 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 +27 -26
- package/c/wchar.zig +10 -0
- package/c.zig +2 -2
- package/compiler/aro/aro/CodeGen.zig +7 -8
- package/compiler/aro/aro/Compilation.zig +17 -17
- package/compiler/aro/aro/Driver.zig +14 -13
- package/compiler/aro/aro/Parser.zig +20 -15
- package/compiler/aro/aro/Pragma.zig +3 -2
- package/compiler/aro/aro/Preprocessor.zig +9 -6
- 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/build_runner.zig +2 -4
- 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 +1 -1
- package/compiler/test_runner.zig +1 -1
- package/compiler/translate-c/MacroTranslator.zig +1 -1
- package/compiler/translate-c/Translator.zig +6 -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 -3
- 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/exp.zig +0 -2
- package/compiler_rt/exp2.zig +0 -2
- package/compiler_rt/extendf.zig +5 -5
- package/compiler_rt/fabs.zig +1 -3
- package/compiler_rt/float_from_int.zig +3 -4
- package/compiler_rt/fma.zig +0 -2
- package/compiler_rt/fmax.zig +1 -3
- package/compiler_rt/fmin.zig +1 -3
- package/compiler_rt/fmod.zig +2 -4
- package/compiler_rt/limb64.zig +3 -2
- package/compiler_rt/log.zig +0 -2
- package/compiler_rt/log10.zig +0 -2
- package/compiler_rt/log2.zig +0 -2
- package/compiler_rt/mulf3.zig +2 -2
- package/compiler_rt/rem_pio2l.zig +1 -1
- package/compiler_rt/round.zig +0 -2
- package/compiler_rt/sin.zig +1 -3
- package/compiler_rt/sincos.zig +1 -3
- package/compiler_rt/sqrt.zig +0 -2
- package/compiler_rt/ssp.zig +2 -2
- package/compiler_rt/tan.zig +1 -3
- package/compiler_rt/trunc.zig +0 -2
- package/compiler_rt/truncf.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +5 -26
- 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 +2 -0
- 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/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/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/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/powerpc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
- 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/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/xtensa-linux-any/asm/unistd_32.h +1 -0
- package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
- 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 +1 -1
- package/std/Build/Cache.zig +6 -6
- package/std/Build/Step/Compile.zig +18 -20
- package/std/Build/Step/ConfigHeader.zig +1 -1
- package/std/Build/Step/Run.zig +15 -8
- package/std/Build/Step.zig +3 -7
- package/std/Build/Watch/FsEvents.zig +1 -1
- package/std/Build/WebServer.zig +2 -2
- package/std/Build/abi.zig +1 -1
- package/std/Build.zig +0 -3
- package/std/Io/Dir.zig +9 -4
- package/std/Io/Dispatch.zig +8 -18
- package/std/Io/File/Writer.zig +8 -6
- package/std/Io/File.zig +0 -9
- package/std/Io/Kqueue.zig +3 -3
- package/std/Io/Reader.zig +8 -14
- package/std/Io/Semaphore.zig +112 -17
- package/std/Io/Terminal.zig +1 -1
- package/std/Io/Threaded.zig +183 -46
- package/std/Io/Uring.zig +18 -20
- package/std/Io/Writer.zig +10 -7
- package/std/Io/net/HostName.zig +11 -6
- package/std/Io/net.zig +11 -11
- package/std/Io.zig +104 -38
- 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 +2 -2
- 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 +415 -177
- package/std/Target/sparc.zig +17 -0
- 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 +67 -14
- package/std/Thread.zig +5 -2
- package/std/array_hash_map.zig +103 -57
- package/std/array_list.zig +10 -31
- package/std/base64.zig +5 -5
- package/std/bit_set.zig +86 -69
- package/std/c/haiku.zig +3 -0
- package/std/c/serenity.zig +1 -6
- package/std/c.zig +123 -32
- 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 -33
- 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 -8
- package/std/crypto/sha2.zig +2 -2
- package/std/crypto/sha3.zig +2 -2
- 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 +15 -12
- package/std/debug/Pdb.zig +25 -17
- package/std/debug.zig +14 -8
- package/std/deque.zig +1 -1
- package/std/elf.zig +1 -1
- package/std/enums.zig +8 -8
- package/std/fmt/parse_float/decimal.zig +1 -1
- package/std/fmt/parse_float.zig +1 -1
- package/std/fmt.zig +14 -10
- 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 +20 -1
- package/std/heap/BufferFirstAllocator.zig +165 -0
- package/std/heap/debug_allocator.zig +2 -2
- package/std/heap/memory_pool.zig +34 -197
- package/std/heap.zig +2 -133
- package/std/http/Client.zig +21 -24
- package/std/http.zig +4 -5
- package/std/json/Scanner.zig +2 -2
- package/std/json/static.zig +2 -2
- package/std/{builtin.zig → lang.zig} +5 -1
- package/std/leb128.zig +2 -2
- 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/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 +0 -6
- package/std/mem.zig +31 -31
- 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/aarch64.zig +41 -12
- package/std/os/linux/arc.zig +41 -12
- package/std/os/linux/arm.zig +41 -12
- package/std/os/linux/bpf.zig +6 -0
- package/std/os/linux/hexagon.zig +33 -11
- package/std/os/linux/ioctl.zig +2 -2
- package/std/os/linux/loongarch32.zig +41 -13
- package/std/os/linux/loongarch64.zig +41 -12
- package/std/os/linux/m68k.zig +41 -13
- package/std/os/linux/mips.zig +67 -36
- package/std/os/linux/mips64.zig +60 -29
- package/std/os/linux/mipsn32.zig +60 -29
- package/std/os/linux/or1k.zig +41 -12
- package/std/os/linux/powerpc.zig +41 -12
- package/std/os/linux/powerpc64.zig +41 -12
- package/std/os/linux/riscv32.zig +41 -12
- package/std/os/linux/riscv64.zig +41 -12
- package/std/os/linux/s390x.zig +44 -7
- package/std/os/linux/sparc64.zig +83 -52
- package/std/os/linux/syscalls.zig +26 -1
- package/std/os/linux/thumb.zig +52 -36
- package/std/os/linux/x32.zig +41 -12
- package/std/os/linux/x86.zig +44 -15
- package/std/os/linux/x86_64.zig +41 -12
- package/std/os/linux.zig +416 -450
- 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 +41 -0
- package/std/posix.zig +1 -1
- package/std/process/Environ.zig +1 -1
- package/std/process.zig +5 -4
- package/std/simd.zig +4 -21
- package/std/sort.zig +3 -3
- package/std/start.zig +17 -4
- package/std/std.zig +8 -1
- package/std/tar/Writer.zig +39 -33
- package/std/tar.zig +8 -4
- package/std/testing.zig +2 -2
- 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 +175 -332
- package/std/zig/AstRlAnnotate.zig +1 -22
- package/std/zig/AstSmith.zig +5 -11
- package/std/zig/BuiltinFn.zig +0 -32
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/LibCDirs.zig +15 -6
- package/std/zig/LibCInstallation.zig +34 -12
- package/std/zig/Parse.zig +11 -76
- package/std/zig/TokenSmith.zig +0 -6
- package/std/zig/WindowsSdk.zig +18 -18
- package/std/zig/Zir.zig +65 -132
- 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/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +0 -10
- package/std/zig/target.zig +1 -4
- package/std/zig/tokenizer.zig +4 -43
- package/std/zig.zig +3 -14
- package/std/zip.zig +5 -5
- package/std/zon/parse.zig +1 -1
- package/zig.h +340 -1
- 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/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/{builtin → lang}/assembly.zig +0 -0
package/std/crypto/ff.zig
CHANGED
|
@@ -10,7 +10,6 @@ const builtin = @import("builtin");
|
|
|
10
10
|
const crypto = std.crypto;
|
|
11
11
|
const math = std.math;
|
|
12
12
|
const mem = std.mem;
|
|
13
|
-
const meta = std.meta;
|
|
14
13
|
const testing = std.testing;
|
|
15
14
|
const assert = std.debug.assert;
|
|
16
15
|
const Endian = std.builtin.Endian;
|
|
@@ -25,7 +24,7 @@ const carry_bits = 1;
|
|
|
25
24
|
const t_bits: usize = @bitSizeOf(Limb) - carry_bits;
|
|
26
25
|
|
|
27
26
|
// A TLimb is a Limb that is truncated to t_bits.
|
|
28
|
-
const TLimb =
|
|
27
|
+
const TLimb = @Int(.unsigned, t_bits);
|
|
29
28
|
|
|
30
29
|
const native_endian = builtin.target.cpu.arch.endian();
|
|
31
30
|
|
|
@@ -96,7 +95,7 @@ pub fn Uint(comptime max_bits: comptime_int) type {
|
|
|
96
95
|
|
|
97
96
|
/// The zero integer.
|
|
98
97
|
pub const zero: Self = .{
|
|
99
|
-
.limbs_buffer =
|
|
98
|
+
.limbs_buffer = @splat(0),
|
|
100
99
|
.limbs_len = max_limbs_count,
|
|
101
100
|
};
|
|
102
101
|
|
|
@@ -738,7 +737,7 @@ pub fn Modulus(comptime max_bits: comptime_int) type {
|
|
|
738
737
|
}
|
|
739
738
|
} else {
|
|
740
739
|
// Use a precomputation table for large exponents
|
|
741
|
-
var pc = [1]Fe{x} ++ [
|
|
740
|
+
var pc: [15]Fe = [1]Fe{x} ++ @as([14]Fe, @splat(self.zero));
|
|
742
741
|
if (!x.montgomery) {
|
|
743
742
|
self.toMontgomery(&pc[0]) catch unreachable;
|
|
744
743
|
}
|
|
@@ -906,7 +905,7 @@ const ct_protected = struct {
|
|
|
906
905
|
// Multiplies two limbs and returns the result as a wide limb.
|
|
907
906
|
fn mulWide(x: Limb, y: Limb) WideLimb {
|
|
908
907
|
const half_bits = @typeInfo(Limb).int.bits / 2;
|
|
909
|
-
const Half =
|
|
908
|
+
const Half = @Int(.unsigned, half_bits);
|
|
910
909
|
const x0 = @as(Half, @truncate(x));
|
|
911
910
|
const x1 = @as(Half, @truncate(x >> half_bits));
|
|
912
911
|
const y0 = @as(Half, @truncate(y));
|
|
@@ -417,8 +417,8 @@ fn Hash(comptime endian: std.builtin.Endian, comptime shift_key: bool) type {
|
|
|
417
417
|
const htest = @import("test.zig");
|
|
418
418
|
|
|
419
419
|
test "ghash" {
|
|
420
|
-
const key
|
|
421
|
-
const m
|
|
420
|
+
const key: [16]u8 = @splat(0x42);
|
|
421
|
+
const m: [256]u8 = @splat(0x69);
|
|
422
422
|
|
|
423
423
|
var st = Ghash.init(&key);
|
|
424
424
|
st.update(&m);
|
|
@@ -467,8 +467,8 @@ test "ghash2" {
|
|
|
467
467
|
}
|
|
468
468
|
|
|
469
469
|
test "polyval" {
|
|
470
|
-
const key
|
|
471
|
-
const m
|
|
470
|
+
const key: [16]u8 = @splat(0x42);
|
|
471
|
+
const m: [256]u8 = @splat(0x69);
|
|
472
472
|
|
|
473
473
|
var st = Polyval.init(&key);
|
|
474
474
|
st.update(&m);
|
package/std/crypto/hkdf.zig
CHANGED
|
@@ -72,7 +72,7 @@ pub fn Hkdf(comptime Hmac: type) type {
|
|
|
72
72
|
const htest = @import("test.zig");
|
|
73
73
|
|
|
74
74
|
test "Hkdf" {
|
|
75
|
-
const ikm
|
|
75
|
+
const ikm: [22]u8 = @splat(0x0b);
|
|
76
76
|
const salt = [_]u8{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c };
|
|
77
77
|
const context = [_]u8{ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9 };
|
|
78
78
|
const kdf = HkdfSha256;
|
package/std/crypto/isap.zig
CHANGED
|
@@ -42,7 +42,7 @@ pub const IsapA128A = struct {
|
|
|
42
42
|
break;
|
|
43
43
|
}
|
|
44
44
|
} else {
|
|
45
|
-
var padded
|
|
45
|
+
var padded: [8]u8 = @splat(0);
|
|
46
46
|
@memcpy(padded[0..left], m[i..]);
|
|
47
47
|
padded[left] = 0x80;
|
|
48
48
|
isap.st.addBytes(&padded);
|
|
@@ -169,8 +169,8 @@ pub const IsapA128A = struct {
|
|
|
169
169
|
};
|
|
170
170
|
|
|
171
171
|
test "ISAP" {
|
|
172
|
-
const k
|
|
173
|
-
const n
|
|
172
|
+
const k: [16]u8 = @splat(1);
|
|
173
|
+
const n: [16]u8 = @splat(2);
|
|
174
174
|
var tag: [16]u8 = undefined;
|
|
175
175
|
const ad = "ad";
|
|
176
176
|
var msg = "test";
|
|
@@ -881,7 +881,7 @@ fn ktMultiThreaded(
|
|
|
881
881
|
// Buffer for out-of-order results (select_buf slots get reused)
|
|
882
882
|
const pending_cv_buf = try allocator.alloc([leaves_per_batch * cv_size]u8, max_concurrent);
|
|
883
883
|
defer allocator.free(pending_cv_buf);
|
|
884
|
-
var pending_cv_lens: [256]usize =
|
|
884
|
+
var pending_cv_lens: [256]usize = @splat(0);
|
|
885
885
|
|
|
886
886
|
var select_outstanding: usize = 0;
|
|
887
887
|
var select: Select = .init(io, select_buf);
|
package/std/crypto/keccak_p.zig
CHANGED
|
@@ -9,7 +9,7 @@ const mode = @import("builtin").mode;
|
|
|
9
9
|
/// The Keccak-f permutation.
|
|
10
10
|
pub fn KeccakF(comptime f: u11) type {
|
|
11
11
|
comptime assert(f >= 200 and f <= 1600 and f % 200 == 0); // invalid bit size
|
|
12
|
-
const T =
|
|
12
|
+
const T = @Int(.unsigned, f / 25);
|
|
13
13
|
const Block = [25]T;
|
|
14
14
|
|
|
15
15
|
const PI = [_]u5{
|
|
@@ -40,7 +40,7 @@ pub fn KeccakF(comptime f: u11) type {
|
|
|
40
40
|
break :rc rc;
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
st: Block =
|
|
43
|
+
st: Block = @splat(0),
|
|
44
44
|
|
|
45
45
|
/// Initialize the state from a slice of bytes.
|
|
46
46
|
pub fn init(bytes: [block_bytes]u8) Self {
|
|
@@ -70,7 +70,7 @@ pub fn KeccakF(comptime f: u11) type {
|
|
|
70
70
|
self.st[i / @sizeOf(T)] = mem.readInt(T, bytes[i..][0..@sizeOf(T)], .little);
|
|
71
71
|
}
|
|
72
72
|
if (i < bytes.len) {
|
|
73
|
-
var padded
|
|
73
|
+
var padded: [@sizeOf(T)]u8 = @splat(0);
|
|
74
74
|
@memcpy(padded[0 .. bytes.len - i], bytes[i..]);
|
|
75
75
|
self.st[i / @sizeOf(T)] = mem.readInt(T, padded[0..], .little);
|
|
76
76
|
}
|
|
@@ -89,7 +89,7 @@ pub fn KeccakF(comptime f: u11) type {
|
|
|
89
89
|
self.st[i / @sizeOf(T)] ^= mem.readInt(T, bytes[i..][0..@sizeOf(T)], .little);
|
|
90
90
|
}
|
|
91
91
|
if (i < bytes.len) {
|
|
92
|
-
var padded
|
|
92
|
+
var padded: [@sizeOf(T)]u8 = @splat(0);
|
|
93
93
|
@memcpy(padded[0 .. bytes.len - i], bytes[i..]);
|
|
94
94
|
self.st[i / @sizeOf(T)] ^= mem.readInt(T, padded[0..], .little);
|
|
95
95
|
}
|
|
@@ -102,7 +102,7 @@ pub fn KeccakF(comptime f: u11) type {
|
|
|
102
102
|
mem.writeInt(T, out[i..][0..@sizeOf(T)], self.st[i / @sizeOf(T)], .little);
|
|
103
103
|
}
|
|
104
104
|
if (i < out.len) {
|
|
105
|
-
var padded
|
|
105
|
+
var padded: [@sizeOf(T)]u8 = @splat(0);
|
|
106
106
|
mem.writeInt(T, padded[0..], self.st[i / @sizeOf(T)], .little);
|
|
107
107
|
@memcpy(out[i..], padded[0 .. out.len - i]);
|
|
108
108
|
}
|
|
@@ -118,7 +118,7 @@ pub fn KeccakF(comptime f: u11) type {
|
|
|
118
118
|
mem.writeInt(T, out[i..][0..@sizeOf(T)], x, native_endian);
|
|
119
119
|
}
|
|
120
120
|
if (i < in.len) {
|
|
121
|
-
var padded
|
|
121
|
+
var padded: [@sizeOf(T)]u8 = @splat(0);
|
|
122
122
|
@memcpy(padded[0 .. in.len - i], in[i..]);
|
|
123
123
|
const x = mem.readInt(T, &padded, native_endian) ^ mem.nativeToLittle(T, self.st[i / @sizeOf(T)]);
|
|
124
124
|
mem.writeInt(T, &padded, x, native_endian);
|
|
@@ -140,7 +140,7 @@ pub fn KeccakF(comptime f: u11) type {
|
|
|
140
140
|
const st = &self.st;
|
|
141
141
|
|
|
142
142
|
// theta
|
|
143
|
-
var t
|
|
143
|
+
var t: [5]T = @splat(0);
|
|
144
144
|
inline for (0..5) |i| {
|
|
145
145
|
inline for (0..5) |j| {
|
|
146
146
|
t[i] ^= st[j * 5 + i];
|
|
@@ -382,7 +382,7 @@ test "Keccak-f800" {
|
|
|
382
382
|
}
|
|
383
383
|
|
|
384
384
|
test "squeeze" {
|
|
385
|
-
var st
|
|
385
|
+
var st: State(800, 256, 22) = .init(@splat(0x80), 0x01);
|
|
386
386
|
|
|
387
387
|
var out0: [15]u8 = undefined;
|
|
388
388
|
var out1: [out0.len]u8 = undefined;
|
package/std/crypto/md5.zig
CHANGED
package/std/crypto/ml_dsa.zig
CHANGED
|
@@ -156,7 +156,7 @@ const Params = struct {
|
|
|
156
156
|
const Poly = struct {
|
|
157
157
|
cs: [N]u32,
|
|
158
158
|
|
|
159
|
-
const zero: Poly = .{ .cs =
|
|
159
|
+
const zero: Poly = .{ .cs = @splat(0) };
|
|
160
160
|
|
|
161
161
|
// Add two polynomials (no normalization)
|
|
162
162
|
fn add(a: Poly, b: Poly) Poly {
|
|
@@ -302,7 +302,7 @@ fn PolyVec(comptime len: u8) type {
|
|
|
302
302
|
ps: [len]Poly,
|
|
303
303
|
|
|
304
304
|
const Self = @This();
|
|
305
|
-
const zero: Self = .{ .ps = .
|
|
305
|
+
const zero: Self = .{ .ps = @splat(.zero) };
|
|
306
306
|
|
|
307
307
|
/// Apply a unary operation to each polynomial in the vector
|
|
308
308
|
fn map(v: Self, comptime op: fn (Poly) Poly) Self {
|
|
@@ -581,7 +581,7 @@ fn PolyVec(comptime len: u8) type {
|
|
|
581
581
|
|
|
582
582
|
/// Unpack hints from bytes
|
|
583
583
|
fn unpackHint(comptime omega: u16, buf: []const u8) ?Self {
|
|
584
|
-
var result: Self = .{ .ps = .
|
|
584
|
+
var result: Self = .{ .ps = @splat(.zero) };
|
|
585
585
|
var prev_sop: u8 = 0; // previous switch-over-point
|
|
586
586
|
|
|
587
587
|
for (0..len) |i| {
|
|
@@ -1839,7 +1839,7 @@ fn MLDSAImpl(comptime p: Params) type {
|
|
|
1839
1839
|
return Signer{
|
|
1840
1840
|
.h = h,
|
|
1841
1841
|
.secret_key = secret_key,
|
|
1842
|
-
.rnd = noise orelse
|
|
1842
|
+
.rnd = noise orelse @splat(0),
|
|
1843
1843
|
};
|
|
1844
1844
|
}
|
|
1845
1845
|
|
|
@@ -2324,7 +2324,7 @@ test "decompose correctness for ML-DSA-87" {
|
|
|
2324
2324
|
|
|
2325
2325
|
test "polyDeriveUniform deterministic" {
|
|
2326
2326
|
// Test that polyDeriveUniform produces deterministic results
|
|
2327
|
-
const seed: [32]u8 = .{0x01} ++
|
|
2327
|
+
const seed: [32]u8 = .{0x01} ++ @as([31]u8, @splat(0x00));
|
|
2328
2328
|
const nonce: u16 = 0;
|
|
2329
2329
|
|
|
2330
2330
|
const p1 = polyDeriveUniform(&seed, nonce);
|
|
@@ -2343,7 +2343,7 @@ test "polyDeriveUniform deterministic" {
|
|
|
2343
2343
|
|
|
2344
2344
|
test "polyDeriveUniform different nonces" {
|
|
2345
2345
|
// Test that different nonces produce different polynomials
|
|
2346
|
-
const seed: [32]u8 = .{0x01} ++
|
|
2346
|
+
const seed: [32]u8 = .{0x01} ++ @as([31]u8, @splat(0x00));
|
|
2347
2347
|
|
|
2348
2348
|
const p1 = polyDeriveUniform(&seed, 0);
|
|
2349
2349
|
const p2 = polyDeriveUniform(&seed, 1);
|
|
@@ -2361,7 +2361,7 @@ test "polyDeriveUniform different nonces" {
|
|
|
2361
2361
|
|
|
2362
2362
|
test "expandS with eta=2" {
|
|
2363
2363
|
// Test eta=2 sampling
|
|
2364
|
-
const seed: [64]u8 = .{0x02} ++
|
|
2364
|
+
const seed: [64]u8 = .{0x02} ++ @as([63]u8, @splat(0x00));
|
|
2365
2365
|
const nonce: u16 = 0;
|
|
2366
2366
|
|
|
2367
2367
|
const p = expandS(2, &seed, nonce);
|
|
@@ -2378,7 +2378,7 @@ test "expandS with eta=2" {
|
|
|
2378
2378
|
|
|
2379
2379
|
test "expandS with eta=4" {
|
|
2380
2380
|
// Test eta=4 sampling
|
|
2381
|
-
const seed: [64]u8 = .{0x03} ++
|
|
2381
|
+
const seed: [64]u8 = .{0x03} ++ @as([63]u8, @splat(0x00));
|
|
2382
2382
|
const nonce: u16 = 0;
|
|
2383
2383
|
|
|
2384
2384
|
const p = expandS(4, &seed, nonce);
|
|
@@ -2395,7 +2395,7 @@ test "expandS with eta=4" {
|
|
|
2395
2395
|
test "sampleInBall has correct weight" {
|
|
2396
2396
|
// Test that ball polynomial has exactly tau non-zero coefficients
|
|
2397
2397
|
const tau = 39; // From ML-DSA-44
|
|
2398
|
-
const seed: [32]u8 = .{
|
|
2398
|
+
const seed: [32]u8 = .{0x03} ++ @as([31]u8, @splat(0x00));
|
|
2399
2399
|
|
|
2400
2400
|
const p = sampleInBall(tau, &seed);
|
|
2401
2401
|
|
|
@@ -2415,7 +2415,7 @@ test "sampleInBall has correct weight" {
|
|
|
2415
2415
|
test "sampleInBall deterministic" {
|
|
2416
2416
|
// Test that ball sampling is deterministic
|
|
2417
2417
|
const tau = 49; // From ML-DSA-65
|
|
2418
|
-
const seed: [32]u8 = .{0x05} ++
|
|
2418
|
+
const seed: [32]u8 = .{0x05} ++ @as([31]u8, @splat(0x00));
|
|
2419
2419
|
|
|
2420
2420
|
const p1 = sampleInBall(tau, &seed);
|
|
2421
2421
|
const p2 = sampleInBall(tau, &seed);
|
|
@@ -2851,13 +2851,13 @@ test "Key generation basic - all variants" {
|
|
|
2851
2851
|
.{ .variant = MLDSA65, .seed_byte = 0x65 },
|
|
2852
2852
|
.{ .variant = MLDSA87, .seed_byte = 0x87 },
|
|
2853
2853
|
}) |config| {
|
|
2854
|
-
const seed
|
|
2854
|
+
const seed: [32]u8 = @splat(config.seed_byte);
|
|
2855
2855
|
try testKeyGenerationBasic(config.variant, seed);
|
|
2856
2856
|
}
|
|
2857
2857
|
}
|
|
2858
2858
|
|
|
2859
2859
|
test "Key generation determinism" {
|
|
2860
|
-
const seed = [_]u8{ 0x12, 0x34, 0x56, 0x78 } ++ [
|
|
2860
|
+
const seed = [_]u8{ 0x12, 0x34, 0x56, 0x78 } ++ @as([28]u8, @splat(0xAB));
|
|
2861
2861
|
|
|
2862
2862
|
// Generate two key pairs from the same seed
|
|
2863
2863
|
const result1 = MLDSA44.newKeyFromSeed(&seed);
|
|
@@ -2874,7 +2874,7 @@ test "Key generation determinism" {
|
|
|
2874
2874
|
}
|
|
2875
2875
|
|
|
2876
2876
|
test "Private key can compute public key" {
|
|
2877
|
-
const seed
|
|
2877
|
+
const seed: [32]u8 = @splat(0xFF);
|
|
2878
2878
|
const result = MLDSA44.newKeyFromSeed(&seed);
|
|
2879
2879
|
const pk = result.pk;
|
|
2880
2880
|
const sk = result.sk;
|
|
@@ -2907,13 +2907,13 @@ test "Sign and verify - all variants" {
|
|
|
2907
2907
|
.{ .variant = MLDSA65, .seed_byte = 0x65, .message = "Hello, ML-DSA-65!" },
|
|
2908
2908
|
.{ .variant = MLDSA87, .seed_byte = 0x87, .message = "Hello, ML-DSA-87!" },
|
|
2909
2909
|
}) |config| {
|
|
2910
|
-
const seed
|
|
2910
|
+
const seed: [32]u8 = @splat(config.seed_byte);
|
|
2911
2911
|
try testSignAndVerify(config.variant, seed, config.message);
|
|
2912
2912
|
}
|
|
2913
2913
|
}
|
|
2914
2914
|
|
|
2915
2915
|
test "Invalid signature rejection" {
|
|
2916
|
-
const seed
|
|
2916
|
+
const seed: [32]u8 = @splat(0x99);
|
|
2917
2917
|
const result = MLDSA44.newKeyFromSeed(&seed);
|
|
2918
2918
|
const kp = try MLDSA44.KeyPair.fromSecretKey(result.sk);
|
|
2919
2919
|
|
|
@@ -2934,7 +2934,7 @@ test "Invalid signature rejection" {
|
|
|
2934
2934
|
}
|
|
2935
2935
|
|
|
2936
2936
|
test "Context string support" {
|
|
2937
|
-
const seed
|
|
2937
|
+
const seed: [32]u8 = @splat(0xAA);
|
|
2938
2938
|
const result = MLDSA44.newKeyFromSeed(&seed);
|
|
2939
2939
|
const kp = try MLDSA44.KeyPair.fromSecretKey(result.sk);
|
|
2940
2940
|
|
|
@@ -2964,17 +2964,17 @@ test "Context string support" {
|
|
|
2964
2964
|
try testing.expectError(error.SignatureVerificationFailed, sig2.verifyWithContext(message, kp.public_key, context1));
|
|
2965
2965
|
|
|
2966
2966
|
// Test maximum context length (255 bytes)
|
|
2967
|
-
const max_context
|
|
2967
|
+
const max_context: [255]u8 = @splat(0xBB);
|
|
2968
2968
|
const sig3 = try kp.signWithContext(message, null, &max_context);
|
|
2969
2969
|
try sig3.verifyWithContext(message, kp.public_key, &max_context);
|
|
2970
2970
|
|
|
2971
2971
|
// Test context too long (256 bytes should fail)
|
|
2972
|
-
const too_long_context
|
|
2972
|
+
const too_long_context: [256]u8 = @splat(0xCC);
|
|
2973
2973
|
try testing.expectError(error.ContextTooLong, kp.signWithContext(message, null, &too_long_context));
|
|
2974
2974
|
}
|
|
2975
2975
|
|
|
2976
2976
|
test "Context string with streaming API" {
|
|
2977
|
-
const seed
|
|
2977
|
+
const seed: [32]u8 = @splat(0xDD);
|
|
2978
2978
|
const result = MLDSA44.newKeyFromSeed(&seed);
|
|
2979
2979
|
const kp = try MLDSA44.KeyPair.fromSecretKey(result.sk);
|
|
2980
2980
|
|
|
@@ -3002,12 +3002,12 @@ test "Context string with streaming API" {
|
|
|
3002
3002
|
}
|
|
3003
3003
|
|
|
3004
3004
|
test "Signature determinism (same rnd)" {
|
|
3005
|
-
const seed
|
|
3005
|
+
const seed: [32]u8 = @splat(0x11);
|
|
3006
3006
|
const result = MLDSA44.newKeyFromSeed(&seed);
|
|
3007
3007
|
const sk = result.sk;
|
|
3008
3008
|
|
|
3009
3009
|
const message = "Deterministic test";
|
|
3010
|
-
const rnd
|
|
3010
|
+
const rnd: [32]u8 = @splat(0x22);
|
|
3011
3011
|
|
|
3012
3012
|
// Sign twice with same randomness using streaming API
|
|
3013
3013
|
var st1 = try sk.signer(rnd);
|
|
@@ -3023,7 +3023,7 @@ test "Signature determinism (same rnd)" {
|
|
|
3023
3023
|
}
|
|
3024
3024
|
|
|
3025
3025
|
test "Signature toBytes/fromBytes roundtrip" {
|
|
3026
|
-
const seed
|
|
3026
|
+
const seed: [32]u8 = @splat(0x33);
|
|
3027
3027
|
const result = MLDSA44.newKeyFromSeed(&seed);
|
|
3028
3028
|
const kp = try MLDSA44.KeyPair.fromSecretKey(result.sk);
|
|
3029
3029
|
|
|
@@ -3043,7 +3043,7 @@ test "Signature toBytes/fromBytes roundtrip" {
|
|
|
3043
3043
|
}
|
|
3044
3044
|
|
|
3045
3045
|
test "Empty message signing" {
|
|
3046
|
-
const seed
|
|
3046
|
+
const seed: [32]u8 = @splat(0x44);
|
|
3047
3047
|
const result = MLDSA44.newKeyFromSeed(&seed);
|
|
3048
3048
|
const kp = try MLDSA44.KeyPair.fromSecretKey(result.sk);
|
|
3049
3049
|
|
|
@@ -3057,12 +3057,12 @@ test "Empty message signing" {
|
|
|
3057
3057
|
}
|
|
3058
3058
|
|
|
3059
3059
|
test "Long message signing" {
|
|
3060
|
-
const seed
|
|
3060
|
+
const seed: [32]u8 = @splat(0x55);
|
|
3061
3061
|
const result = MLDSA44.newKeyFromSeed(&seed);
|
|
3062
3062
|
const kp = try MLDSA44.KeyPair.fromSecretKey(result.sk);
|
|
3063
3063
|
|
|
3064
3064
|
// Create a long message (1KB)
|
|
3065
|
-
const long_message
|
|
3065
|
+
const long_message: [1024]u8 = @splat(0xAB);
|
|
3066
3066
|
|
|
3067
3067
|
// Sign long message
|
|
3068
3068
|
const sig = try kp.sign(&long_message, null);
|
|
@@ -3209,7 +3209,7 @@ test "KeyPair API - generate and sign" {
|
|
|
3209
3209
|
|
|
3210
3210
|
test "KeyPair API - generateDeterministic" {
|
|
3211
3211
|
// Test deterministic key generation
|
|
3212
|
-
const seed
|
|
3212
|
+
const seed: [32]u8 = @splat(42);
|
|
3213
3213
|
const kp1 = try MLDSA44.KeyPair.generateDeterministic(seed);
|
|
3214
3214
|
const kp2 = try MLDSA44.KeyPair.generateDeterministic(seed);
|
|
3215
3215
|
|
|
@@ -3240,7 +3240,7 @@ test "Signature verification with noise" {
|
|
|
3240
3240
|
const msg = "Message to be signed with randomness";
|
|
3241
3241
|
|
|
3242
3242
|
// Create some noise
|
|
3243
|
-
const noise = [_]u8{ 1, 2, 3, 4, 5 } ++ [
|
|
3243
|
+
const noise = [_]u8{ 1, 2, 3, 4, 5 } ++ @as([27]u8, @splat(0));
|
|
3244
3244
|
|
|
3245
3245
|
// Sign with noise
|
|
3246
3246
|
const sig = try kp.sign(msg, noise);
|
|
@@ -3262,7 +3262,7 @@ test "Signature verification failure" {
|
|
|
3262
3262
|
}
|
|
3263
3263
|
|
|
3264
3264
|
test "Streaming API - sign and verify" {
|
|
3265
|
-
const seed
|
|
3265
|
+
const seed: [32]u8 = @splat(0x55);
|
|
3266
3266
|
const kp = try MLDSA44.KeyPair.generateDeterministic(seed);
|
|
3267
3267
|
|
|
3268
3268
|
const msg = "Test message for streaming API";
|
|
@@ -3279,7 +3279,7 @@ test "Streaming API - sign and verify" {
|
|
|
3279
3279
|
}
|
|
3280
3280
|
|
|
3281
3281
|
test "Streaming API - chunked message" {
|
|
3282
|
-
const seed
|
|
3282
|
+
const seed: [32]u8 = @splat(0x66);
|
|
3283
3283
|
const kp = try MLDSA44.KeyPair.generateDeterministic(seed);
|
|
3284
3284
|
|
|
3285
3285
|
// Create a message in chunks
|
|
@@ -3313,7 +3313,7 @@ test "Streaming API - chunked message" {
|
|
|
3313
3313
|
}
|
|
3314
3314
|
|
|
3315
3315
|
test "Streaming API - large message" {
|
|
3316
|
-
const seed
|
|
3316
|
+
const seed: [32]u8 = @splat(0x77);
|
|
3317
3317
|
const kp = try MLDSA44.KeyPair.generateDeterministic(seed);
|
|
3318
3318
|
|
|
3319
3319
|
// Create a large message (1MB)
|
|
@@ -3344,7 +3344,7 @@ test "Streaming API - all parameter sets" {
|
|
|
3344
3344
|
|
|
3345
3345
|
// ML-DSA-44
|
|
3346
3346
|
{
|
|
3347
|
-
const seed
|
|
3347
|
+
const seed: [32]u8 = @splat(0x44);
|
|
3348
3348
|
const kp = try MLDSA44.KeyPair.generateDeterministic(seed);
|
|
3349
3349
|
var signer = try kp.signer(null);
|
|
3350
3350
|
signer.update(test_msg);
|
|
@@ -3356,7 +3356,7 @@ test "Streaming API - all parameter sets" {
|
|
|
3356
3356
|
|
|
3357
3357
|
// ML-DSA-65
|
|
3358
3358
|
{
|
|
3359
|
-
const seed
|
|
3359
|
+
const seed: [32]u8 = @splat(0x65);
|
|
3360
3360
|
const kp = try MLDSA65.KeyPair.generateDeterministic(seed);
|
|
3361
3361
|
var signer = try kp.signer(null);
|
|
3362
3362
|
signer.update(test_msg);
|
|
@@ -3368,7 +3368,7 @@ test "Streaming API - all parameter sets" {
|
|
|
3368
3368
|
|
|
3369
3369
|
// ML-DSA-87
|
|
3370
3370
|
{
|
|
3371
|
-
const seed
|
|
3371
|
+
const seed: [32]u8 = @splat(0x87);
|
|
3372
3372
|
const kp = try MLDSA87.KeyPair.generateDeterministic(seed);
|
|
3373
3373
|
var signer = try kp.signer(null);
|
|
3374
3374
|
signer.update(test_msg);
|
|
@@ -3413,7 +3413,7 @@ fn modularInverse(comptime T: type, comptime a: T, comptime p: T) T {
|
|
|
3413
3413
|
// Use a signed type for EEA computation
|
|
3414
3414
|
const type_info = @typeInfo(T);
|
|
3415
3415
|
const SignedT = if (type_info == .int and type_info.int.signedness == .unsigned)
|
|
3416
|
-
|
|
3416
|
+
@Int(.signed, type_info.int.bits)
|
|
3417
3417
|
else
|
|
3418
3418
|
T;
|
|
3419
3419
|
|
|
@@ -3436,7 +3436,7 @@ fn modularInverse(comptime T: type, comptime a: T, comptime p: T) T {
|
|
|
3436
3436
|
fn modularPow(comptime T: type, comptime a: T, s: T, comptime p: T) T {
|
|
3437
3437
|
const type_info = @typeInfo(T);
|
|
3438
3438
|
const bits = type_info.int.bits;
|
|
3439
|
-
const WideT =
|
|
3439
|
+
const WideT = @Int(.unsigned, bits * 2);
|
|
3440
3440
|
|
|
3441
3441
|
var ret: T = 1;
|
|
3442
3442
|
var base: T = a;
|
|
@@ -3465,14 +3465,14 @@ fn bitMask(comptime T: type, bit: T) T {
|
|
|
3465
3465
|
|
|
3466
3466
|
/// Creates a mask from the sign bit of a signed integer.
|
|
3467
3467
|
/// Returns all 1s (0xFF...FF) if x < 0, all 0s if x >= 0.
|
|
3468
|
-
fn signMask(comptime T: type, x: T)
|
|
3468
|
+
fn signMask(comptime T: type, x: T) @Int(.unsigned, @typeInfo(T).int.bits) {
|
|
3469
3469
|
const type_info = @typeInfo(T);
|
|
3470
3470
|
if (type_info != .int) {
|
|
3471
3471
|
@compileError("signMask requires an integer type");
|
|
3472
3472
|
}
|
|
3473
3473
|
|
|
3474
3474
|
const bits = type_info.int.bits;
|
|
3475
|
-
const SignedT =
|
|
3475
|
+
const SignedT = @Int(.signed, bits);
|
|
3476
3476
|
|
|
3477
3477
|
// Convert to signed if needed, arithmetic right shift to propagate sign bit
|
|
3478
3478
|
const x_signed: SignedT = if (type_info.int.signedness == .signed) x else @bitCast(x);
|
|
@@ -3499,8 +3499,8 @@ fn montgomeryReduce(
|
|
|
3499
3499
|
const m: OutT = @truncate(m_full);
|
|
3500
3500
|
|
|
3501
3501
|
const yR = x -% @as(InT, m) * @as(InT, q);
|
|
3502
|
-
const y_shifted = @as(
|
|
3503
|
-
return @bitCast(@as(
|
|
3502
|
+
const y_shifted = @as(@Int(.unsigned, @typeInfo(InT).Int.bits), @bitCast(yR)) >> r_bits;
|
|
3503
|
+
return @bitCast(@as(@Int(.unsigned, @typeInfo(OutT).Int.bits), @truncate(y_shifted)));
|
|
3504
3504
|
}
|
|
3505
3505
|
|
|
3506
3506
|
/// Uniform sampling using SHAKE-128 with rejection sampling.
|
package/std/crypto/ml_kem.zig
CHANGED
|
@@ -615,7 +615,7 @@ const inv_ntt_reductions = [_]i16{
|
|
|
615
615
|
test "invNTTReductions bounds" {
|
|
616
616
|
// Checks whether the reductions proposed by invNTTReductions
|
|
617
617
|
// don't overflow during invNTT().
|
|
618
|
-
var xs
|
|
618
|
+
var xs: [256]i32 = @splat(1); // start at |x| ≤ q
|
|
619
619
|
|
|
620
620
|
var r: usize = 0;
|
|
621
621
|
var layer: math.Log2Int(usize) = 1;
|
|
@@ -797,7 +797,7 @@ const Poly = struct {
|
|
|
797
797
|
cs: [N]i16,
|
|
798
798
|
|
|
799
799
|
const encoded_length = N / 2 * 3;
|
|
800
|
-
const zero: Poly = .{ .cs =
|
|
800
|
+
const zero: Poly = .{ .cs = @splat(0) };
|
|
801
801
|
|
|
802
802
|
// Add two polynomials (coefficients not normalized)
|
|
803
803
|
fn add(a: Poly, b: Poly) Poly {
|
|
@@ -1011,7 +1011,7 @@ const Poly = struct {
|
|
|
1011
1011
|
|
|
1012
1012
|
const out_length: usize = comptime @divTrunc(N * d, 8);
|
|
1013
1013
|
comptime assert(out_length * 8 == d * N);
|
|
1014
|
-
var out
|
|
1014
|
+
var out: [out_length]u8 = @splat(0);
|
|
1015
1015
|
|
|
1016
1016
|
while (in_off < N) {
|
|
1017
1017
|
// First we compress into in.
|
|
@@ -1456,8 +1456,6 @@ fn randPolyNormalized(rnd: anytype) Poly {
|
|
|
1456
1456
|
}
|
|
1457
1457
|
|
|
1458
1458
|
test "MulHat" {
|
|
1459
|
-
if (comptime builtin.cpu.has(.s390x, .vector)) return error.SkipZigTest;
|
|
1460
|
-
|
|
1461
1459
|
var rnd = RndGen.init(0);
|
|
1462
1460
|
|
|
1463
1461
|
for (0..100) |_| {
|
|
@@ -1612,8 +1610,6 @@ test "Polynomial packing" {
|
|
|
1612
1610
|
}
|
|
1613
1611
|
|
|
1614
1612
|
test "Test inner PKE" {
|
|
1615
|
-
if (comptime builtin.cpu.has(.s390x, .vector)) return error.SkipZigTest;
|
|
1616
|
-
|
|
1617
1613
|
var seed: [32]u8 = undefined;
|
|
1618
1614
|
var pt: [32]u8 = undefined;
|
|
1619
1615
|
for (&seed, &pt, 0..) |*s, *p, i| {
|
|
@@ -1635,8 +1631,6 @@ test "Test inner PKE" {
|
|
|
1635
1631
|
}
|
|
1636
1632
|
|
|
1637
1633
|
test "Test happy flow" {
|
|
1638
|
-
if (comptime builtin.cpu.has(.s390x, .vector)) return error.SkipZigTest;
|
|
1639
|
-
|
|
1640
1634
|
var seed: [64]u8 = undefined;
|
|
1641
1635
|
for (&seed, 0..) |*s, i| {
|
|
1642
1636
|
s.* = @as(u8, @intCast(i));
|
|
@@ -1661,23 +1655,14 @@ test "Test happy flow" {
|
|
|
1661
1655
|
// Code to test NIST Known Answer Tests (KAT), see PQCgenKAT.c.
|
|
1662
1656
|
|
|
1663
1657
|
test "NIST KAT test d00.Kyber512" {
|
|
1664
|
-
if (comptime builtin.cpu.has(.loongarch, .lsx)) return error.SkipZigTest;
|
|
1665
|
-
if (comptime builtin.cpu.has(.s390x, .vector)) return error.SkipZigTest;
|
|
1666
|
-
|
|
1667
1658
|
try testNistKat(d00.Kyber512, "e9c2bd37133fcb40772f81559f14b1f58dccd1c816701be9ba6214d43baf4547");
|
|
1668
1659
|
}
|
|
1669
1660
|
|
|
1670
1661
|
test "NIST KAT test d00.Kyber1024" {
|
|
1671
|
-
if (comptime builtin.cpu.has(.loongarch, .lsx)) return error.SkipZigTest;
|
|
1672
|
-
if (comptime builtin.cpu.has(.s390x, .vector)) return error.SkipZigTest;
|
|
1673
|
-
|
|
1674
1662
|
try testNistKat(d00.Kyber1024, "89248f2f33f7f4f7051729111f3049c409a933ec904aedadf035f30fa5646cd5");
|
|
1675
1663
|
}
|
|
1676
1664
|
|
|
1677
1665
|
test "NIST KAT test d00.Kyber768" {
|
|
1678
|
-
if (comptime builtin.cpu.has(.loongarch, .lsx)) return error.SkipZigTest;
|
|
1679
|
-
if (comptime builtin.cpu.has(.s390x, .vector)) return error.SkipZigTest;
|
|
1680
|
-
|
|
1681
1666
|
try testNistKat(d00.Kyber768, "a1e122cad3c24bc51622e4c242d8b8acbcd3f618fee4220400605ca8f9ea02c2");
|
|
1682
1667
|
}
|
|
1683
1668
|
|
|
@@ -1725,15 +1710,8 @@ const NistDRBG = struct {
|
|
|
1725
1710
|
v: [16]u8,
|
|
1726
1711
|
|
|
1727
1712
|
fn incV(g: *NistDRBG) void {
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
if (g.v[j] == 255) {
|
|
1731
|
-
g.v[j] = 0;
|
|
1732
|
-
} else {
|
|
1733
|
-
g.v[j] += 1;
|
|
1734
|
-
break;
|
|
1735
|
-
}
|
|
1736
|
-
}
|
|
1713
|
+
const val = std.mem.readInt(u128, &g.v, .big);
|
|
1714
|
+
std.mem.writeInt(u128, &g.v, val +% 1, .big);
|
|
1737
1715
|
}
|
|
1738
1716
|
|
|
1739
1717
|
// AES256_CTR_DRBG_Update(pd, &g.key, &g.v).
|
|
@@ -1776,7 +1754,7 @@ const NistDRBG = struct {
|
|
|
1776
1754
|
}
|
|
1777
1755
|
|
|
1778
1756
|
fn init(seed: [48]u8) NistDRBG {
|
|
1779
|
-
var ret: NistDRBG = .{ .key =
|
|
1757
|
+
var ret: NistDRBG = .{ .key = @splat(0), .v = @splat(0) };
|
|
1780
1758
|
ret.update(seed);
|
|
1781
1759
|
return ret;
|
|
1782
1760
|
}
|
|
@@ -1816,7 +1794,7 @@ fn modularInverse(comptime T: type, comptime a: T, comptime p: T) T {
|
|
|
1816
1794
|
// Use a signed type for EEA computation
|
|
1817
1795
|
const type_info = @typeInfo(T);
|
|
1818
1796
|
const SignedT = if (type_info == .int and type_info.int.signedness == .unsigned)
|
|
1819
|
-
|
|
1797
|
+
@Int(.signed, type_info.int.bits)
|
|
1820
1798
|
else
|
|
1821
1799
|
T;
|
|
1822
1800
|
|
|
@@ -1839,7 +1817,7 @@ fn modularInverse(comptime T: type, comptime a: T, comptime p: T) T {
|
|
|
1839
1817
|
fn modularPow(comptime T: type, comptime a: T, s: T, comptime p: T) T {
|
|
1840
1818
|
const type_info = @typeInfo(T);
|
|
1841
1819
|
const bits = type_info.int.bits;
|
|
1842
|
-
const WideT =
|
|
1820
|
+
const WideT = @Int(.unsigned, bits * 2);
|
|
1843
1821
|
|
|
1844
1822
|
var ret: T = 1;
|
|
1845
1823
|
var base: T = a;
|
|
@@ -1868,14 +1846,14 @@ fn bitMask(comptime T: type, bit: T) T {
|
|
|
1868
1846
|
|
|
1869
1847
|
/// Creates a mask from the sign bit of a signed integer.
|
|
1870
1848
|
/// Returns all 1s (0xFF...FF) if x < 0, all 0s if x >= 0.
|
|
1871
|
-
fn signMask(comptime T: type, x: T)
|
|
1849
|
+
fn signMask(comptime T: type, x: T) @Int(.unsigned, @typeInfo(T).int.bits) {
|
|
1872
1850
|
const type_info = @typeInfo(T);
|
|
1873
1851
|
if (type_info != .int) {
|
|
1874
1852
|
@compileError("signMask requires an integer type");
|
|
1875
1853
|
}
|
|
1876
1854
|
|
|
1877
1855
|
const bits = type_info.int.bits;
|
|
1878
|
-
const SignedT =
|
|
1856
|
+
const SignedT = @Int(.signed, bits);
|
|
1879
1857
|
|
|
1880
1858
|
// Convert to signed if needed, arithmetic right shift to propagate sign bit
|
|
1881
1859
|
const x_signed: SignedT = if (type_info.int.signedness == .signed) x else @bitCast(x);
|
|
@@ -1920,8 +1898,8 @@ fn montgomeryReduce(
|
|
|
1920
1898
|
const m: OutT = @truncate(m_full);
|
|
1921
1899
|
|
|
1922
1900
|
const yR = x -% @as(InT, m) * @as(InT, q);
|
|
1923
|
-
const y_shifted = @as(
|
|
1924
|
-
return @bitCast(@as(
|
|
1901
|
+
const y_shifted = @as(@Int(.unsigned, @typeInfo(InT).Int.bits), @bitCast(yR)) >> r_bits;
|
|
1902
|
+
return @bitCast(@as(@Int(.unsigned, @typeInfo(OutT).Int.bits), @truncate(y_shifted)));
|
|
1925
1903
|
}
|
|
1926
1904
|
|
|
1927
1905
|
/// Uniform sampling using SHAKE-128 with rejection sampling.
|
package/std/crypto/modes.zig
CHANGED
|
@@ -40,7 +40,7 @@ pub fn ctrSlice(
|
|
|
40
40
|
var counterBlock = iv;
|
|
41
41
|
var i: usize = 0;
|
|
42
42
|
|
|
43
|
-
const CounterInt =
|
|
43
|
+
const CounterInt = @Int(.unsigned, counter_size * 8);
|
|
44
44
|
|
|
45
45
|
const parallel_count = BlockCipher.block.parallel.optimal_parallel_blocks;
|
|
46
46
|
const wide_block_length = parallel_count * block_length;
|
|
@@ -183,7 +183,7 @@ test "ctr mode" {
|
|
|
183
183
|
// Test 9: Large input (> 2*block_length, 100 bytes)
|
|
184
184
|
{
|
|
185
185
|
// Create a 100-byte input by extending with zeros
|
|
186
|
-
var in: [100]u8 =
|
|
186
|
+
var in: [100]u8 = @splat(0);
|
|
187
187
|
@memcpy(in[0..64], &[_]u8{
|
|
188
188
|
0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
|
|
189
189
|
0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
|