@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/zig/AstGen.zig
CHANGED
|
@@ -199,7 +199,7 @@ pub fn generate(gpa: Allocator, tree: Ast) Allocator.Error!Zir {
|
|
|
199
199
|
assert(struct_decl_ref.toIndex().? == .main_struct_inst);
|
|
200
200
|
break :fatal false;
|
|
201
201
|
} else |err| switch (err) {
|
|
202
|
-
error.OutOfMemory => return
|
|
202
|
+
error.OutOfMemory => |e| return e,
|
|
203
203
|
error.AnalysisFail => break :fatal true, // Handled via compile_errors below.
|
|
204
204
|
}
|
|
205
205
|
} else fatal: {
|
|
@@ -243,10 +243,13 @@ pub fn generate(gpa: Allocator, tree: Ast) Allocator.Error!Zir {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
+
try astgen.extra.shrinkToLen(gpa);
|
|
247
|
+
try astgen.string_bytes.shrinkToLen(gpa);
|
|
248
|
+
|
|
246
249
|
return .{
|
|
247
250
|
.instructions = if (fatal) .empty else astgen.instructions.toOwnedSlice(),
|
|
248
|
-
.string_bytes =
|
|
249
|
-
.extra =
|
|
251
|
+
.string_bytes = astgen.string_bytes.toOwnedSliceAssert(),
|
|
252
|
+
.extra = astgen.extra.toOwnedSliceAssert(),
|
|
250
253
|
};
|
|
251
254
|
}
|
|
252
255
|
|
|
@@ -504,7 +507,6 @@ fn lvalExpr(gz: *GenZir, scope: *Scope, node: Ast.Node.Index) InnerError!Zir.Ins
|
|
|
504
507
|
.less_than,
|
|
505
508
|
.less_or_equal,
|
|
506
509
|
.array_cat,
|
|
507
|
-
.array_mult,
|
|
508
510
|
.bool_and,
|
|
509
511
|
.bool_or,
|
|
510
512
|
.@"asm",
|
|
@@ -774,19 +776,6 @@ fn expr(gz: *GenZir, scope: *Scope, ri: ResultInfo, node: Ast.Node.Index) InnerE
|
|
|
774
776
|
.less_or_equal => return simpleBinOp(gz, scope, ri, node, .cmp_lte),
|
|
775
777
|
.array_cat => return simpleBinOp(gz, scope, ri, node, .array_cat),
|
|
776
778
|
|
|
777
|
-
.array_mult => {
|
|
778
|
-
// This syntax form does not currently use the result type in the language specification.
|
|
779
|
-
// However, the result type can be used to emit more optimal code for large multiplications by
|
|
780
|
-
// having Sema perform a coercion before the multiplication operation.
|
|
781
|
-
const lhs_node, const rhs_node = tree.nodeData(node).node_and_node;
|
|
782
|
-
const result = try gz.addPlNode(.array_mul, node, Zir.Inst.ArrayMul{
|
|
783
|
-
.res_ty = if (try ri.rl.resultType(gz, node)) |t| t else .none,
|
|
784
|
-
.lhs = try expr(gz, scope, .{ .rl = .none }, lhs_node),
|
|
785
|
-
.rhs = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .usize_type } }, rhs_node, .array_mul_factor),
|
|
786
|
-
});
|
|
787
|
-
return rvalue(gz, ri, result, node);
|
|
788
|
-
},
|
|
789
|
-
|
|
790
779
|
.error_union, .merge_error_sets => |tag| {
|
|
791
780
|
const inst_tag: Zir.Inst.Tag = switch (tag) {
|
|
792
781
|
.error_union => .error_union_type,
|
|
@@ -1409,12 +1398,12 @@ fn fnProtoExprInner(
|
|
|
1409
1398
|
try comptimeExpr(
|
|
1410
1399
|
&block_scope,
|
|
1411
1400
|
scope,
|
|
1412
|
-
.{ .rl = .{ .coerced_ty = try block_scope.
|
|
1401
|
+
.{ .rl = .{ .coerced_ty = try block_scope.addStdLangValue(callconv_expr, .calling_convention) } },
|
|
1413
1402
|
callconv_expr,
|
|
1414
1403
|
.@"callconv",
|
|
1415
1404
|
)
|
|
1416
1405
|
else if (implicit_ccc)
|
|
1417
|
-
try block_scope.
|
|
1406
|
+
try block_scope.addStdLangValue(node, .calling_convention_c)
|
|
1418
1407
|
else
|
|
1419
1408
|
.none;
|
|
1420
1409
|
|
|
@@ -1776,11 +1765,12 @@ fn structInitExpr(
|
|
|
1776
1765
|
}
|
|
1777
1766
|
|
|
1778
1767
|
{
|
|
1779
|
-
var
|
|
1780
|
-
|
|
1768
|
+
var bfa_buf: [256]u8 = undefined;
|
|
1769
|
+
var bfa_state: std.heap.BufferFirstAllocator = .init(&bfa_buf, astgen.arena);
|
|
1770
|
+
const bfa = bfa_state.allocator();
|
|
1781
1771
|
|
|
1782
1772
|
var duplicate_names: std.array_hash_map.Auto(Zir.NullTerminatedString, ArrayList(Ast.TokenIndex)) = .empty;
|
|
1783
|
-
try duplicate_names.ensureTotalCapacity(
|
|
1773
|
+
try duplicate_names.ensureTotalCapacity(bfa, @intCast(struct_init.ast.fields.len));
|
|
1784
1774
|
|
|
1785
1775
|
// When there aren't errors, use this to avoid a second iteration.
|
|
1786
1776
|
var any_duplicate = false;
|
|
@@ -1789,14 +1779,14 @@ fn structInitExpr(
|
|
|
1789
1779
|
const name_token = tree.firstToken(field) - 2;
|
|
1790
1780
|
const name_index = try astgen.identAsString(name_token);
|
|
1791
1781
|
|
|
1792
|
-
const gop = try duplicate_names.getOrPut(
|
|
1782
|
+
const gop = try duplicate_names.getOrPut(bfa, name_index);
|
|
1793
1783
|
|
|
1794
1784
|
if (gop.found_existing) {
|
|
1795
|
-
try gop.value_ptr.append(
|
|
1785
|
+
try gop.value_ptr.append(bfa, name_token);
|
|
1796
1786
|
any_duplicate = true;
|
|
1797
1787
|
} else {
|
|
1798
1788
|
gop.value_ptr.* = .empty;
|
|
1799
|
-
try gop.value_ptr.append(
|
|
1789
|
+
try gop.value_ptr.append(bfa, name_token);
|
|
1800
1790
|
}
|
|
1801
1791
|
}
|
|
1802
1792
|
|
|
@@ -2709,7 +2699,6 @@ fn addEnsureResult(gz: *GenZir, maybe_unused_result: Zir.Inst.Ref, statement: As
|
|
|
2709
2699
|
.alloc_inferred_comptime_mut,
|
|
2710
2700
|
.make_ptr_const,
|
|
2711
2701
|
.array_cat,
|
|
2712
|
-
.array_mul,
|
|
2713
2702
|
.array_type,
|
|
2714
2703
|
.array_type_sentinel,
|
|
2715
2704
|
.elem_type,
|
|
@@ -2871,7 +2860,6 @@ fn addEnsureResult(gz: *GenZir, maybe_unused_result: Zir.Inst.Ref, statement: As
|
|
|
2871
2860
|
.max,
|
|
2872
2861
|
.min,
|
|
2873
2862
|
.@"resume",
|
|
2874
|
-
.ret_err_value_code,
|
|
2875
2863
|
.ret_ptr,
|
|
2876
2864
|
.ret_type,
|
|
2877
2865
|
.for_len,
|
|
@@ -2960,7 +2948,6 @@ fn addEnsureResult(gz: *GenZir, maybe_unused_result: Zir.Inst.Ref, statement: As
|
|
|
2960
2948
|
=> break :b true,
|
|
2961
2949
|
|
|
2962
2950
|
.@"defer" => unreachable,
|
|
2963
|
-
.defer_err_code => unreachable,
|
|
2964
2951
|
}
|
|
2965
2952
|
} else switch (maybe_unused_result) {
|
|
2966
2953
|
.none => unreachable,
|
|
@@ -2980,60 +2967,28 @@ fn addEnsureResult(gz: *GenZir, maybe_unused_result: Zir.Inst.Ref, statement: As
|
|
|
2980
2967
|
return noreturn_src_node;
|
|
2981
2968
|
}
|
|
2982
2969
|
|
|
2983
|
-
fn
|
|
2984
|
-
have_any: bool,
|
|
2985
|
-
have_normal: bool,
|
|
2986
|
-
have_err: bool,
|
|
2987
|
-
need_err_code: bool,
|
|
2988
|
-
} {
|
|
2989
|
-
var have_normal = false;
|
|
2990
|
-
var have_err = false;
|
|
2991
|
-
var need_err_code = false;
|
|
2970
|
+
fn anyErrdefers(outer_scope: *Scope, inner_scope: *Scope) bool {
|
|
2992
2971
|
var scope = inner_scope;
|
|
2993
2972
|
while (scope != outer_scope) {
|
|
2994
2973
|
switch (scope.unwrap()) {
|
|
2995
2974
|
.gen_zir => |gen_zir| scope = gen_zir.parent,
|
|
2996
2975
|
.local_val => |local_val| scope = local_val.parent,
|
|
2997
2976
|
.local_ptr => |local_ptr| scope = local_ptr.parent,
|
|
2998
|
-
.defer_normal => |
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
have_normal = true;
|
|
3002
|
-
},
|
|
3003
|
-
.defer_error => |defer_scope| {
|
|
3004
|
-
scope = defer_scope.parent;
|
|
3005
|
-
|
|
3006
|
-
have_err = true;
|
|
3007
|
-
|
|
3008
|
-
const have_err_payload = defer_scope.remapped_err_code != .none;
|
|
3009
|
-
need_err_code = need_err_code or have_err_payload;
|
|
3010
|
-
},
|
|
2977
|
+
.defer_normal => |defer_normal| scope = defer_normal.parent,
|
|
2978
|
+
.defer_error => return true,
|
|
3011
2979
|
.namespace => unreachable,
|
|
3012
2980
|
.top => unreachable,
|
|
3013
2981
|
}
|
|
3014
2982
|
}
|
|
3015
|
-
return
|
|
3016
|
-
.have_any = have_normal or have_err,
|
|
3017
|
-
.have_normal = have_normal,
|
|
3018
|
-
.have_err = have_err,
|
|
3019
|
-
.need_err_code = need_err_code,
|
|
3020
|
-
};
|
|
2983
|
+
return false;
|
|
3021
2984
|
}
|
|
3022
2985
|
|
|
3023
|
-
const DefersToEmit = union(enum) {
|
|
3024
|
-
both: Zir.Inst.Ref, // err code
|
|
3025
|
-
both_sans_err,
|
|
3026
|
-
normal_only,
|
|
3027
|
-
};
|
|
3028
|
-
|
|
3029
2986
|
fn genDefers(
|
|
3030
2987
|
gz: *GenZir,
|
|
3031
2988
|
outer_scope: *Scope,
|
|
3032
2989
|
inner_scope: *Scope,
|
|
3033
|
-
which_ones:
|
|
2990
|
+
which_ones: enum { normal_only, normal_and_error },
|
|
3034
2991
|
) InnerError!void {
|
|
3035
|
-
const gpa = gz.astgen.gpa;
|
|
3036
|
-
|
|
3037
2992
|
var scope = inner_scope;
|
|
3038
2993
|
while (scope != outer_scope) {
|
|
3039
2994
|
switch (scope.unwrap()) {
|
|
@@ -3047,33 +3002,10 @@ fn genDefers(
|
|
|
3047
3002
|
.defer_error => |defer_scope| {
|
|
3048
3003
|
scope = defer_scope.parent;
|
|
3049
3004
|
switch (which_ones) {
|
|
3050
|
-
.
|
|
3005
|
+
.normal_only => continue,
|
|
3006
|
+
.normal_and_error => {
|
|
3051
3007
|
try gz.addDefer(defer_scope.index, defer_scope.len);
|
|
3052
3008
|
},
|
|
3053
|
-
.both => |err_code| {
|
|
3054
|
-
if (defer_scope.remapped_err_code.unwrap()) |remapped_err_code| {
|
|
3055
|
-
try gz.instructions.ensureUnusedCapacity(gpa, 1);
|
|
3056
|
-
try gz.astgen.instructions.ensureUnusedCapacity(gpa, 1);
|
|
3057
|
-
|
|
3058
|
-
const payload_index = try gz.astgen.addExtra(Zir.Inst.DeferErrCode{
|
|
3059
|
-
.remapped_err_code = remapped_err_code,
|
|
3060
|
-
.index = defer_scope.index,
|
|
3061
|
-
.len = defer_scope.len,
|
|
3062
|
-
});
|
|
3063
|
-
const new_index: Zir.Inst.Index = @enumFromInt(gz.astgen.instructions.len);
|
|
3064
|
-
gz.astgen.instructions.appendAssumeCapacity(.{
|
|
3065
|
-
.tag = .defer_err_code,
|
|
3066
|
-
.data = .{ .defer_err_code = .{
|
|
3067
|
-
.err_code = err_code,
|
|
3068
|
-
.payload_index = payload_index,
|
|
3069
|
-
} },
|
|
3070
|
-
});
|
|
3071
|
-
gz.instructions.appendAssumeCapacity(new_index);
|
|
3072
|
-
} else {
|
|
3073
|
-
try gz.addDefer(defer_scope.index, defer_scope.len);
|
|
3074
|
-
}
|
|
3075
|
-
},
|
|
3076
|
-
.normal_only => continue,
|
|
3077
3009
|
}
|
|
3078
3010
|
},
|
|
3079
3011
|
.namespace => unreachable,
|
|
@@ -3136,46 +3068,17 @@ fn deferStmt(
|
|
|
3136
3068
|
defer defer_gen.unstack();
|
|
3137
3069
|
|
|
3138
3070
|
const tree = gz.astgen.tree;
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
const payload_token = tree.nodeData(node).opt_token_and_node[0].unwrap() orelse break :blk &defer_gen.base;
|
|
3143
|
-
const ident_name = try gz.astgen.identAsString(payload_token);
|
|
3144
|
-
if (std.mem.eql(u8, tree.tokenSlice(payload_token), "_")) {
|
|
3145
|
-
try gz.astgen.appendErrorTok(payload_token, "discard of error capture; omit it instead", .{});
|
|
3146
|
-
break :blk &defer_gen.base;
|
|
3147
|
-
}
|
|
3148
|
-
const remapped_err_code: Zir.Inst.Index = @enumFromInt(gz.astgen.instructions.len);
|
|
3149
|
-
opt_remapped_err_code = remapped_err_code.toOptional();
|
|
3150
|
-
_ = try gz.astgen.appendPlaceholder();
|
|
3151
|
-
const remapped_err_code_ref = remapped_err_code.toRef();
|
|
3152
|
-
local_val_scope = .{
|
|
3153
|
-
.parent = &defer_gen.base,
|
|
3154
|
-
.gen_zir = gz,
|
|
3155
|
-
.name = ident_name,
|
|
3156
|
-
.inst = remapped_err_code_ref,
|
|
3157
|
-
.token_src = payload_token,
|
|
3158
|
-
.id_cat = .capture,
|
|
3159
|
-
};
|
|
3160
|
-
try gz.addDbgVar(.dbg_var_val, ident_name, remapped_err_code_ref);
|
|
3161
|
-
break :blk &local_val_scope.base;
|
|
3162
|
-
};
|
|
3163
|
-
const expr_node = switch (scope_tag) {
|
|
3164
|
-
.defer_normal => tree.nodeData(node).node,
|
|
3165
|
-
.defer_error => tree.nodeData(node).opt_token_and_node[1],
|
|
3166
|
-
else => unreachable,
|
|
3167
|
-
};
|
|
3168
|
-
_ = try unusedResultExpr(&defer_gen, sub_scope, expr_node);
|
|
3169
|
-
try checkUsed(gz, scope, sub_scope);
|
|
3071
|
+
const expr_node = tree.nodeData(node).node;
|
|
3072
|
+
_ = try unusedResultExpr(&defer_gen, &defer_gen.base, expr_node);
|
|
3073
|
+
try checkUsed(gz, scope, &defer_gen.base);
|
|
3170
3074
|
_ = try defer_gen.addBreak(.break_inline, @enumFromInt(0), .void_value);
|
|
3171
3075
|
|
|
3172
3076
|
const body = defer_gen.instructionsSlice();
|
|
3173
|
-
const
|
|
3174
|
-
const body_len = gz.astgen.countBodyLenAfterFixupsExtraRefs(body, extra_insts);
|
|
3077
|
+
const body_len = gz.astgen.countBodyLenAfterFixupsExtraRefs(body, &.{});
|
|
3175
3078
|
|
|
3176
3079
|
const index: u32 = @intCast(gz.astgen.extra.items.len);
|
|
3177
3080
|
try gz.astgen.extra.ensureUnusedCapacity(gz.astgen.gpa, body_len);
|
|
3178
|
-
gz.astgen.appendBodyWithFixupsExtraRefsArrayList(&gz.astgen.extra, body,
|
|
3081
|
+
gz.astgen.appendBodyWithFixupsExtraRefsArrayList(&gz.astgen.extra, body, &.{});
|
|
3179
3082
|
|
|
3180
3083
|
const defer_scope = try block_arena.create(Scope.Defer);
|
|
3181
3084
|
|
|
@@ -3184,7 +3087,6 @@ fn deferStmt(
|
|
|
3184
3087
|
.parent = scope,
|
|
3185
3088
|
.index = index,
|
|
3186
3089
|
.len = body_len,
|
|
3187
|
-
.remapped_err_code = opt_remapped_err_code,
|
|
3188
3090
|
};
|
|
3189
3091
|
return &defer_scope.base;
|
|
3190
3092
|
}
|
|
@@ -3880,7 +3782,7 @@ fn ptrType(
|
|
|
3880
3782
|
gz.astgen.source_line = source_line;
|
|
3881
3783
|
gz.astgen.source_column = source_column;
|
|
3882
3784
|
|
|
3883
|
-
const addrspace_ty = try gz.
|
|
3785
|
+
const addrspace_ty = try gz.addStdLangValue(addrspace_node, .address_space);
|
|
3884
3786
|
addrspace_ref = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = addrspace_ty } }, addrspace_node, .@"addrspace");
|
|
3885
3787
|
trailing_count += 1;
|
|
3886
3788
|
}
|
|
@@ -4175,7 +4077,7 @@ fn fnDecl(
|
|
|
4175
4077
|
|
|
4176
4078
|
if (fn_proto.ast.addrspace_expr.unwrap()) |addrspace_expr| {
|
|
4177
4079
|
astgen.restoreSourceCursor(saved_cursor);
|
|
4178
|
-
const addrspace_ty = try addrspace_gz.
|
|
4080
|
+
const addrspace_ty = try addrspace_gz.addStdLangValue(addrspace_expr, .address_space);
|
|
4179
4081
|
const inst = try expr(&addrspace_gz, &addrspace_gz.base, .{ .rl = .{ .coerced_ty = addrspace_ty } }, addrspace_expr);
|
|
4180
4082
|
_ = try addrspace_gz.addBreakWithSrcNode(.break_inline, decl_inst, inst, decl_node);
|
|
4181
4083
|
}
|
|
@@ -4383,7 +4285,7 @@ fn fnDeclInner(
|
|
|
4383
4285
|
const inst = try expr(
|
|
4384
4286
|
&cc_gz,
|
|
4385
4287
|
scope,
|
|
4386
|
-
.{ .rl = .{ .coerced_ty = try cc_gz.
|
|
4288
|
+
.{ .rl = .{ .coerced_ty = try cc_gz.addStdLangValue(callconv_expr, .calling_convention) } },
|
|
4387
4289
|
callconv_expr,
|
|
4388
4290
|
);
|
|
4389
4291
|
if (cc_gz.instructionsSlice().len == 0) {
|
|
@@ -4393,7 +4295,7 @@ fn fnDeclInner(
|
|
|
4393
4295
|
_ = try cc_gz.addBreak(.break_inline, @enumFromInt(0), inst);
|
|
4394
4296
|
break :blk inst;
|
|
4395
4297
|
} else if (has_inline_keyword) {
|
|
4396
|
-
const inst = try cc_gz.
|
|
4298
|
+
const inst = try cc_gz.addStdLangValue(decl_node, .calling_convention_inline);
|
|
4397
4299
|
_ = try cc_gz.addBreak(.break_inline, @enumFromInt(0), inst);
|
|
4398
4300
|
break :blk inst;
|
|
4399
4301
|
} else {
|
|
@@ -4591,7 +4493,7 @@ fn globalVarDecl(
|
|
|
4591
4493
|
defer addrspace_gz.unstack();
|
|
4592
4494
|
|
|
4593
4495
|
if (var_decl.ast.addrspace_node.unwrap()) |addrspace_node| {
|
|
4594
|
-
const addrspace_ty = try addrspace_gz.
|
|
4496
|
+
const addrspace_ty = try addrspace_gz.addStdLangValue(addrspace_node, .address_space);
|
|
4595
4497
|
const addrspace_inst = try expr(&addrspace_gz, &addrspace_gz.base, .{ .rl = .{ .coerced_ty = addrspace_ty } }, addrspace_node);
|
|
4596
4498
|
_ = try addrspace_gz.addBreakWithSrcNode(.break_inline, decl_inst, addrspace_inst, node);
|
|
4597
4499
|
}
|
|
@@ -4878,7 +4780,7 @@ fn testDecl(
|
|
|
4878
4780
|
.noalias_bits = 0,
|
|
4879
4781
|
|
|
4880
4782
|
// Tests don't have a prototype that needs hashing
|
|
4881
|
-
.proto_hash =
|
|
4783
|
+
.proto_hash = @splat(0),
|
|
4882
4784
|
});
|
|
4883
4785
|
|
|
4884
4786
|
_ = try decl_block.addBreak(.break_inline, decl_inst, func_inst);
|
|
@@ -4913,7 +4815,7 @@ fn structDeclInner(
|
|
|
4913
4815
|
scope: *Scope,
|
|
4914
4816
|
node: Ast.Node.Index,
|
|
4915
4817
|
container_decl: Ast.full.ContainerDecl,
|
|
4916
|
-
layout: std.
|
|
4818
|
+
layout: std.lang.Type.ContainerLayout,
|
|
4917
4819
|
maybe_backing_int_node: Ast.Node.OptionalIndex,
|
|
4918
4820
|
name_strat: Zir.Inst.NameStrategy,
|
|
4919
4821
|
) InnerError!Zir.Inst.Ref {
|
|
@@ -4997,6 +4899,10 @@ fn structDeclInner(
|
|
|
4997
4899
|
);
|
|
4998
4900
|
if (field_comptime_bits) |bits| @memset(bits.get(astgen), 0);
|
|
4999
4901
|
|
|
4902
|
+
const old_hasher = astgen.src_hasher;
|
|
4903
|
+
defer astgen.src_hasher = old_hasher;
|
|
4904
|
+
astgen.src_hasher = .init(.{});
|
|
4905
|
+
|
|
5000
4906
|
// Before any field bodies comes the backing int type, if specified.
|
|
5001
4907
|
const backing_int_type_body_len: ?u32 = if (maybe_backing_int_node.unwrap()) |backing_int_node| len: {
|
|
5002
4908
|
if (layout != .@"packed") return astgen.failNode(
|
|
@@ -5004,6 +4910,7 @@ fn structDeclInner(
|
|
|
5004
4910
|
"non-packed struct does not support backing integer type",
|
|
5005
4911
|
.{},
|
|
5006
4912
|
);
|
|
4913
|
+
astgen.src_hasher.update(astgen.tree.getNodeSource(backing_int_node));
|
|
5007
4914
|
const type_ref = try typeExpr(&block_scope, &namespace.base, backing_int_node);
|
|
5008
4915
|
if (!block_scope.endsWithNoReturn()) {
|
|
5009
4916
|
_ = try block_scope.addBreak(.break_inline, decl_inst, type_ref);
|
|
@@ -5013,10 +4920,6 @@ fn structDeclInner(
|
|
|
5013
4920
|
break :len body_len;
|
|
5014
4921
|
} else null;
|
|
5015
4922
|
|
|
5016
|
-
const old_hasher = astgen.src_hasher;
|
|
5017
|
-
defer astgen.src_hasher = old_hasher;
|
|
5018
|
-
astgen.src_hasher = .init(.{});
|
|
5019
|
-
|
|
5020
4923
|
var next_field_idx: u32 = 0;
|
|
5021
4924
|
for (container_decl.ast.members) |member_node| {
|
|
5022
4925
|
var member = switch (try containerMember(&block_scope, &namespace.base, &wip_decls, member_node)) {
|
|
@@ -5117,7 +5020,7 @@ fn tupleDecl(
|
|
|
5117
5020
|
scope: *Scope,
|
|
5118
5021
|
node: Ast.Node.Index,
|
|
5119
5022
|
container_decl: Ast.full.ContainerDecl,
|
|
5120
|
-
layout: std.
|
|
5023
|
+
layout: std.lang.Type.ContainerLayout,
|
|
5121
5024
|
backing_int_node: Ast.Node.OptionalIndex,
|
|
5122
5025
|
) InnerError!Zir.Inst.Ref {
|
|
5123
5026
|
const astgen = gz.astgen;
|
|
@@ -5214,7 +5117,7 @@ fn unionDeclInner(
|
|
|
5214
5117
|
scope: *Scope,
|
|
5215
5118
|
node: Ast.Node.Index,
|
|
5216
5119
|
members: []const Ast.Node.Index,
|
|
5217
|
-
layout: std.
|
|
5120
|
+
layout: std.lang.Type.ContainerLayout,
|
|
5218
5121
|
opt_arg_node: Ast.Node.OptionalIndex,
|
|
5219
5122
|
auto_enum_tok: ?Ast.TokenIndex,
|
|
5220
5123
|
name_strat: Zir.Inst.NameStrategy,
|
|
@@ -5277,8 +5180,13 @@ fn unionDeclInner(
|
|
|
5277
5180
|
const field_align_body_lens = try scratch.addOptionalSlice(scan_result.any_field_aligns, scan_result.fields_len);
|
|
5278
5181
|
const field_value_body_lens = try scratch.addOptionalSlice(scan_result.any_field_values, scan_result.fields_len);
|
|
5279
5182
|
|
|
5183
|
+
const old_hasher = astgen.src_hasher;
|
|
5184
|
+
defer astgen.src_hasher = old_hasher;
|
|
5185
|
+
astgen.src_hasher = .init(.{});
|
|
5186
|
+
|
|
5280
5187
|
// Before any field bodies comes the tag/backing type, if specified.
|
|
5281
5188
|
const arg_type_body_len: ?u32 = if (opt_arg_node.unwrap()) |arg_node| len: {
|
|
5189
|
+
astgen.src_hasher.update(astgen.tree.getNodeSource(arg_node));
|
|
5282
5190
|
const type_ref = try typeExpr(&block_scope, &namespace.base, arg_node);
|
|
5283
5191
|
if (!block_scope.endsWithNoReturn()) {
|
|
5284
5192
|
_ = try block_scope.addBreak(.break_inline, decl_inst, type_ref);
|
|
@@ -5288,10 +5196,6 @@ fn unionDeclInner(
|
|
|
5288
5196
|
break :len body_len;
|
|
5289
5197
|
} else null;
|
|
5290
5198
|
|
|
5291
|
-
const old_hasher = astgen.src_hasher;
|
|
5292
|
-
defer astgen.src_hasher = old_hasher;
|
|
5293
|
-
astgen.src_hasher = .init(.{});
|
|
5294
|
-
|
|
5295
5199
|
var next_field_idx: u32 = 0;
|
|
5296
5200
|
for (members) |member_node| {
|
|
5297
5201
|
var member = switch (try containerMember(&block_scope, &namespace.base, &wip_decls, member_node)) {
|
|
@@ -5420,7 +5324,7 @@ fn containerDecl(
|
|
|
5420
5324
|
|
|
5421
5325
|
switch (tree.tokenTag(container_decl.ast.main_token)) {
|
|
5422
5326
|
.keyword_struct => {
|
|
5423
|
-
const layout: std.
|
|
5327
|
+
const layout: std.lang.Type.ContainerLayout = if (container_decl.layout_token) |t| switch (tree.tokenTag(t)) {
|
|
5424
5328
|
.keyword_packed => .@"packed",
|
|
5425
5329
|
.keyword_extern => .@"extern",
|
|
5426
5330
|
else => unreachable,
|
|
@@ -5430,7 +5334,7 @@ fn containerDecl(
|
|
|
5430
5334
|
return rvalue(gz, ri, result, node);
|
|
5431
5335
|
},
|
|
5432
5336
|
.keyword_union => {
|
|
5433
|
-
const layout: std.
|
|
5337
|
+
const layout: std.lang.Type.ContainerLayout = if (container_decl.layout_token) |t| switch (tree.tokenTag(t)) {
|
|
5434
5338
|
.keyword_packed => .@"packed",
|
|
5435
5339
|
.keyword_extern => .@"extern",
|
|
5436
5340
|
else => unreachable,
|
|
@@ -5482,8 +5386,13 @@ fn containerDecl(
|
|
|
5482
5386
|
const field_names = try scratch.addSlice(fields_len);
|
|
5483
5387
|
const field_value_body_lens = try scratch.addOptionalSlice(scan_result.any_field_values, fields_len);
|
|
5484
5388
|
|
|
5389
|
+
const old_hasher = astgen.src_hasher;
|
|
5390
|
+
defer astgen.src_hasher = old_hasher;
|
|
5391
|
+
astgen.src_hasher = .init(.{});
|
|
5392
|
+
|
|
5485
5393
|
// Before any field bodies comes the tag type, if specified.
|
|
5486
5394
|
const tag_type_body_len: ?u32 = if (container_decl.ast.arg.unwrap()) |tag_type_node| len: {
|
|
5395
|
+
astgen.src_hasher.update(astgen.tree.getNodeSource(tag_type_node));
|
|
5487
5396
|
const type_ref = try typeExpr(&block_scope, &namespace.base, tag_type_node);
|
|
5488
5397
|
if (!block_scope.endsWithNoReturn()) {
|
|
5489
5398
|
_ = try block_scope.addBreak(.break_inline, decl_inst, type_ref);
|
|
@@ -5493,10 +5402,6 @@ fn containerDecl(
|
|
|
5493
5402
|
break :len body_len;
|
|
5494
5403
|
} else null;
|
|
5495
5404
|
|
|
5496
|
-
const old_hasher = astgen.src_hasher;
|
|
5497
|
-
defer astgen.src_hasher = old_hasher;
|
|
5498
|
-
astgen.src_hasher = .init(.{});
|
|
5499
|
-
|
|
5500
5405
|
var next_field_idx: u32 = 0;
|
|
5501
5406
|
var opt_nonexhaustive_node: Ast.Node.OptionalIndex = .none;
|
|
5502
5407
|
for (container_decl.ast.members) |member_node| {
|
|
@@ -5680,7 +5585,7 @@ fn containerMember(
|
|
|
5680
5585
|
|
|
5681
5586
|
const prev_decl_index = wip_decls.index;
|
|
5682
5587
|
astgen.fnDecl(gz, scope, wip_decls, member_node, body, full) catch |err| switch (err) {
|
|
5683
|
-
error.OutOfMemory => return
|
|
5588
|
+
error.OutOfMemory => |e| return e,
|
|
5684
5589
|
error.AnalysisFail => {
|
|
5685
5590
|
wip_decls.index = prev_decl_index;
|
|
5686
5591
|
try addFailedDeclaration(
|
|
@@ -5703,7 +5608,7 @@ fn containerMember(
|
|
|
5703
5608
|
const full = tree.fullVarDecl(member_node).?;
|
|
5704
5609
|
const prev_decl_index = wip_decls.index;
|
|
5705
5610
|
astgen.globalVarDecl(gz, scope, wip_decls, member_node, full) catch |err| switch (err) {
|
|
5706
|
-
error.OutOfMemory => return
|
|
5611
|
+
error.OutOfMemory => |e| return e,
|
|
5707
5612
|
error.AnalysisFail => {
|
|
5708
5613
|
wip_decls.index = prev_decl_index;
|
|
5709
5614
|
try addFailedDeclaration(
|
|
@@ -5721,7 +5626,7 @@ fn containerMember(
|
|
|
5721
5626
|
.@"comptime" => {
|
|
5722
5627
|
const prev_decl_index = wip_decls.index;
|
|
5723
5628
|
astgen.comptimeDecl(gz, scope, wip_decls, member_node) catch |err| switch (err) {
|
|
5724
|
-
error.OutOfMemory => return
|
|
5629
|
+
error.OutOfMemory => |e| return e,
|
|
5725
5630
|
error.AnalysisFail => {
|
|
5726
5631
|
wip_decls.index = prev_decl_index;
|
|
5727
5632
|
try addFailedDeclaration(
|
|
@@ -5741,7 +5646,7 @@ fn containerMember(
|
|
|
5741
5646
|
// Since it doesn't strictly matter *what* this is, let's save ourselves the trouble
|
|
5742
5647
|
// of duplicating the test name logic, and just assume this is an unnamed test.
|
|
5743
5648
|
astgen.testDecl(gz, scope, wip_decls, member_node) catch |err| switch (err) {
|
|
5744
|
-
error.OutOfMemory => return
|
|
5649
|
+
error.OutOfMemory => |e| return e,
|
|
5745
5650
|
error.AnalysisFail => {
|
|
5746
5651
|
wip_decls.index = prev_decl_index;
|
|
5747
5652
|
try addFailedDeclaration(
|
|
@@ -5875,7 +5780,7 @@ fn tryExpr(
|
|
|
5875
5780
|
else => Zir.Inst.Tag.err_union_code,
|
|
5876
5781
|
};
|
|
5877
5782
|
const err_code = try else_scope.addUnNode(err_tag, operand, node);
|
|
5878
|
-
try genDefers(&else_scope, &fn_block.base, scope, .
|
|
5783
|
+
try genDefers(&else_scope, &fn_block.base, scope, .normal_and_error);
|
|
5879
5784
|
try emitDbgStmt(&else_scope, try_lc);
|
|
5880
5785
|
_ = try else_scope.addUnNode(.ret_node, err_code, node);
|
|
5881
5786
|
|
|
@@ -6655,9 +6560,16 @@ fn whileExpr(
|
|
|
6655
6560
|
.operand = undefined,
|
|
6656
6561
|
} },
|
|
6657
6562
|
});
|
|
6563
|
+
if (!continue_scope.is_comptime) {
|
|
6564
|
+
_ = try continue_scope.addRestoreErrRetIndex(.{ .block = continue_block }, .always, then_node);
|
|
6565
|
+
}
|
|
6658
6566
|
_ = try continue_scope.addBreak(break_tag, continue_block, .void_value);
|
|
6659
6567
|
}
|
|
6660
6568
|
try continue_scope.setBlockBody(continue_block);
|
|
6569
|
+
if (!then_scope.is_comptime) {
|
|
6570
|
+
const cont_node = while_full.ast.cont_expr.unwrap() orelse then_node;
|
|
6571
|
+
_ = try then_scope.addRestoreErrRetIndex(.{ .block = cond_block }, .always, cont_node);
|
|
6572
|
+
}
|
|
6661
6573
|
_ = try then_scope.addBreak(break_tag, cond_block, .void_value);
|
|
6662
6574
|
|
|
6663
6575
|
var else_scope = parent_gz.makeSubBlock(&cond_scope.base);
|
|
@@ -6702,6 +6614,9 @@ fn whileExpr(
|
|
|
6702
6614
|
|
|
6703
6615
|
try checkUsed(parent_gz, &else_scope.base, sub_scope);
|
|
6704
6616
|
if (!else_scope.endsWithNoReturn()) {
|
|
6617
|
+
if (!else_scope.is_comptime) {
|
|
6618
|
+
_ = try else_scope.addRestoreErrRetIndex(.{ .block = loop_block }, .always, else_node);
|
|
6619
|
+
}
|
|
6705
6620
|
_ = try else_scope.addBreakWithSrcNode(break_tag, loop_block, else_result, else_node);
|
|
6706
6621
|
}
|
|
6707
6622
|
} else {
|
|
@@ -6972,6 +6887,9 @@ fn forExpr(
|
|
|
6972
6887
|
});
|
|
6973
6888
|
|
|
6974
6889
|
const break_tag: Zir.Inst.Tag = if (is_inline) .break_inline else .@"break";
|
|
6890
|
+
if (!then_scope.is_comptime) {
|
|
6891
|
+
_ = try then_scope.addRestoreErrRetIndex(.{ .block = cond_block }, .always, then_node);
|
|
6892
|
+
}
|
|
6975
6893
|
_ = try then_scope.addBreak(break_tag, cond_block, .void_value);
|
|
6976
6894
|
|
|
6977
6895
|
var else_scope = parent_gz.makeSubBlock(&cond_scope.base);
|
|
@@ -6989,6 +6907,9 @@ fn forExpr(
|
|
|
6989
6907
|
_ = try addEnsureResult(&else_scope, else_result, else_node);
|
|
6990
6908
|
}
|
|
6991
6909
|
if (!else_scope.endsWithNoReturn()) {
|
|
6910
|
+
if (!else_scope.is_comptime) {
|
|
6911
|
+
_ = try else_scope.addRestoreErrRetIndex(.{ .block = loop_block }, .always, else_node);
|
|
6912
|
+
}
|
|
6992
6913
|
_ = try else_scope.addBreakWithSrcNode(break_tag, loop_block, else_result, else_node);
|
|
6993
6914
|
}
|
|
6994
6915
|
} else {
|
|
@@ -8010,18 +7931,10 @@ fn ret(gz: *GenZir, scope: *Scope, node: Ast.Node.Index) InnerError!Zir.Inst.Ref
|
|
|
8010
7931
|
// for detecting whether to add something to the function's inferred error set.
|
|
8011
7932
|
const ident_token = tree.nodeMainToken(operand_node) + 2;
|
|
8012
7933
|
const err_name_str_index = try astgen.identAsString(ident_token);
|
|
8013
|
-
|
|
8014
|
-
if (!defer_counts.need_err_code) {
|
|
8015
|
-
try genDefers(gz, defer_outer, scope, .both_sans_err);
|
|
8016
|
-
try emitDbgStmt(gz, ret_lc);
|
|
8017
|
-
_ = try gz.addStrTok(.ret_err_value, err_name_str_index, ident_token);
|
|
8018
|
-
return Zir.Inst.Ref.unreachable_value;
|
|
8019
|
-
}
|
|
8020
|
-
const err_code = try gz.addStrTok(.ret_err_value_code, err_name_str_index, ident_token);
|
|
8021
|
-
try genDefers(gz, defer_outer, scope, .{ .both = err_code });
|
|
7934
|
+
try genDefers(gz, defer_outer, scope, .normal_and_error);
|
|
8022
7935
|
try emitDbgStmt(gz, ret_lc);
|
|
8023
|
-
_ = try gz.
|
|
8024
|
-
return
|
|
7936
|
+
_ = try gz.addStrTok(.ret_err_value, err_name_str_index, ident_token);
|
|
7937
|
+
return .unreachable_value;
|
|
8025
7938
|
}
|
|
8026
7939
|
|
|
8027
7940
|
const ri: ResultInfo = if (astgen.nodes_need_rl.contains(node)) .{
|
|
@@ -8048,15 +7961,13 @@ fn ret(gz: *GenZir, scope: *Scope, node: Ast.Node.Index) InnerError!Zir.Inst.Ref
|
|
|
8048
7961
|
},
|
|
8049
7962
|
.always => {
|
|
8050
7963
|
// Value is always an error. Emit both error defers and regular defers.
|
|
8051
|
-
|
|
8052
|
-
try genDefers(gz, defer_outer, scope, .{ .both = err_code });
|
|
7964
|
+
try genDefers(gz, defer_outer, scope, .normal_and_error);
|
|
8053
7965
|
try emitDbgStmt(gz, ret_lc);
|
|
8054
7966
|
try gz.addRet(ri, operand, node);
|
|
8055
7967
|
return Zir.Inst.Ref.unreachable_value;
|
|
8056
7968
|
},
|
|
8057
7969
|
.maybe => {
|
|
8058
|
-
|
|
8059
|
-
if (!defer_counts.have_err) {
|
|
7970
|
+
if (!anyErrdefers(defer_outer, scope)) {
|
|
8060
7971
|
// Only regular defers; no branch needed.
|
|
8061
7972
|
try genDefers(gz, defer_outer, scope, .normal_only);
|
|
8062
7973
|
try emitDbgStmt(gz, ret_lc);
|
|
@@ -8088,10 +7999,7 @@ fn ret(gz: *GenZir, scope: *Scope, node: Ast.Node.Index) InnerError!Zir.Inst.Ref
|
|
|
8088
7999
|
var else_scope = gz.makeSubBlock(scope);
|
|
8089
8000
|
defer else_scope.unstack();
|
|
8090
8001
|
|
|
8091
|
-
|
|
8092
|
-
.both = try else_scope.addUnNode(.err_union_code, result, node),
|
|
8093
|
-
};
|
|
8094
|
-
try genDefers(&else_scope, defer_outer, scope, which_ones);
|
|
8002
|
+
try genDefers(&else_scope, defer_outer, scope, .normal_and_error);
|
|
8095
8003
|
try emitDbgStmt(&else_scope, ret_lc);
|
|
8096
8004
|
try else_scope.addRet(ri, operand, node);
|
|
8097
8005
|
|
|
@@ -8150,39 +8058,42 @@ fn identifier(
|
|
|
8150
8058
|
return rvalue(gz, ri, zir_const_ref, ident);
|
|
8151
8059
|
}
|
|
8152
8060
|
|
|
8153
|
-
|
|
8154
|
-
|
|
8155
|
-
const
|
|
8156
|
-
|
|
8157
|
-
|
|
8158
|
-
|
|
8159
|
-
|
|
8160
|
-
|
|
8161
|
-
|
|
8162
|
-
|
|
8163
|
-
|
|
8164
|
-
|
|
8165
|
-
|
|
8166
|
-
|
|
8167
|
-
|
|
8168
|
-
|
|
8169
|
-
|
|
8170
|
-
|
|
8171
|
-
"primitive integer type '{s}' exceeds maximum bit width of 65535",
|
|
8172
|
-
.{ident_name_raw},
|
|
8173
|
-
),
|
|
8174
|
-
error.InvalidCharacter => break :integer,
|
|
8175
|
-
};
|
|
8176
|
-
const result = try gz.add(.{
|
|
8177
|
-
.tag = .int_type,
|
|
8178
|
-
.data = .{ .int_type = .{
|
|
8179
|
-
.src_node = gz.nodeIndexToRelative(ident),
|
|
8180
|
-
.signedness = signedness,
|
|
8181
|
-
.bit_count = bit_count,
|
|
8182
|
-
} },
|
|
8183
|
-
});
|
|
8184
|
-
return rvalue(gz, ri, result, ident);
|
|
8061
|
+
int_type: {
|
|
8062
|
+
if (ident_name_raw.len < 2) break :int_type;
|
|
8063
|
+
const signedness: std.lang.Signedness = switch (ident_name_raw[0]) {
|
|
8064
|
+
'u' => .unsigned,
|
|
8065
|
+
'i' => .signed,
|
|
8066
|
+
else => break :int_type,
|
|
8067
|
+
};
|
|
8068
|
+
// `u0` already handled by `primitive_instrs`
|
|
8069
|
+
if (std.mem.eql(u8, ident_name_raw, "i0")) {
|
|
8070
|
+
return astgen.failNode(ident, "signed integer cannot have bit width 0", .{});
|
|
8071
|
+
}
|
|
8072
|
+
if (ident_name_raw[1] == '0') {
|
|
8073
|
+
assert(ident_name_raw.len >= 3); // `u0` and `i0` handled
|
|
8074
|
+
return astgen.failNode(
|
|
8075
|
+
ident,
|
|
8076
|
+
"primitive integer type '{s}' has leading zero",
|
|
8077
|
+
.{ident_name_raw},
|
|
8078
|
+
);
|
|
8185
8079
|
}
|
|
8080
|
+
const bit_count = parseBitCount(ident_name_raw[1..]) catch |err| switch (err) {
|
|
8081
|
+
error.Overflow => return astgen.failNode(
|
|
8082
|
+
ident,
|
|
8083
|
+
"primitive integer type '{s}' exceeds maximum bit width of 65535",
|
|
8084
|
+
.{ident_name_raw},
|
|
8085
|
+
),
|
|
8086
|
+
error.InvalidCharacter => break :int_type,
|
|
8087
|
+
};
|
|
8088
|
+
const result = try gz.add(.{
|
|
8089
|
+
.tag = .int_type,
|
|
8090
|
+
.data = .{ .int_type = .{
|
|
8091
|
+
.src_node = gz.nodeIndexToRelative(ident),
|
|
8092
|
+
.signedness = signedness,
|
|
8093
|
+
.bit_count = bit_count,
|
|
8094
|
+
} },
|
|
8095
|
+
});
|
|
8096
|
+
return rvalue(gz, ri, result, ident);
|
|
8186
8097
|
}
|
|
8187
8098
|
}
|
|
8188
8099
|
|
|
@@ -8404,9 +8315,10 @@ fn tunnelThroughClosure(
|
|
|
8404
8315
|
|
|
8405
8316
|
// Otherwise we need a tunnel. First, figure out the path of namespaces we
|
|
8406
8317
|
// are tunneling through. This is usually only going to be one or two, so
|
|
8407
|
-
// use an
|
|
8408
|
-
var
|
|
8409
|
-
var
|
|
8318
|
+
// use an BFA to optimize for the common case.
|
|
8319
|
+
var bfa_buf: [2]usize = undefined;
|
|
8320
|
+
var bfa: std.heap.BufferFirstAllocator = .init(@ptrCast(&bfa_buf), astgen.arena);
|
|
8321
|
+
var intermediate_tunnels = try bfa.allocator().alloc(*Scope.Namespace, num_tunnels - 1);
|
|
8410
8322
|
|
|
8411
8323
|
const root_ns = ns: {
|
|
8412
8324
|
var i: usize = num_tunnels - 1;
|
|
@@ -8561,7 +8473,7 @@ fn numberLiteral(gz: *GenZir, ri: ResultInfo, node: Ast.Node.Index, source_node:
|
|
|
8561
8473
|
big_int.setString(@intFromEnum(base), bytes[prefix_offset..]) catch |err| switch (err) {
|
|
8562
8474
|
error.InvalidCharacter => unreachable, // caught in `parseNumberLiteral`
|
|
8563
8475
|
error.InvalidBase => unreachable, // we only pass 16, 8, 2, see above
|
|
8564
|
-
error.OutOfMemory => return
|
|
8476
|
+
error.OutOfMemory => |e| return e,
|
|
8565
8477
|
};
|
|
8566
8478
|
|
|
8567
8479
|
const limbs = big_int.limbs[0..big_int.len()];
|
|
@@ -8738,7 +8650,7 @@ fn asmExpr(
|
|
|
8738
8650
|
|
|
8739
8651
|
const clobbers: Zir.Inst.Ref = if (full.ast.clobbers.unwrap()) |clobbers_node|
|
|
8740
8652
|
try comptimeExpr(gz, scope, .{ .rl = .{
|
|
8741
|
-
.coerced_ty = try gz.
|
|
8653
|
+
.coerced_ty = try gz.addStdLangValue(clobbers_node, .clobbers),
|
|
8742
8654
|
} }, clobbers_node, .clobber)
|
|
8743
8655
|
else
|
|
8744
8656
|
.none;
|
|
@@ -9080,7 +8992,7 @@ fn builtinCall(
|
|
|
9080
8992
|
if (!allow_branch_hint) {
|
|
9081
8993
|
return astgen.failNode(node, "'@branchHint' must appear as the first statement in a function or conditional branch", .{});
|
|
9082
8994
|
}
|
|
9083
|
-
const hint_ty = try gz.
|
|
8995
|
+
const hint_ty = try gz.addStdLangValue(node, .branch_hint);
|
|
9084
8996
|
const hint_val = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = hint_ty } }, params[0], .operand_branchHint);
|
|
9085
8997
|
_ = try gz.addExtendedPayload(.branch_hint, Zir.Inst.UnNode{
|
|
9086
8998
|
.node = gz.nodeIndexToRelative(node),
|
|
@@ -9178,7 +9090,7 @@ fn builtinCall(
|
|
|
9178
9090
|
|
|
9179
9091
|
.@"export" => {
|
|
9180
9092
|
const exported = try expr(gz, scope, .{ .rl = .none }, params[0]);
|
|
9181
|
-
const export_options_ty = try gz.
|
|
9093
|
+
const export_options_ty = try gz.addStdLangValue(node, .export_options);
|
|
9182
9094
|
const options = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = export_options_ty } }, params[1], .export_options);
|
|
9183
9095
|
_ = try gz.addPlNode(.@"export", node, Zir.Inst.Export{
|
|
9184
9096
|
.exported = exported,
|
|
@@ -9188,7 +9100,7 @@ fn builtinCall(
|
|
|
9188
9100
|
},
|
|
9189
9101
|
.@"extern" => {
|
|
9190
9102
|
const type_inst = try typeExpr(gz, scope, params[0]);
|
|
9191
|
-
const extern_options_ty = try gz.
|
|
9103
|
+
const extern_options_ty = try gz.addStdLangValue(node, .extern_options);
|
|
9192
9104
|
const options = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = extern_options_ty } }, params[1], .extern_options);
|
|
9193
9105
|
const result = try gz.addExtendedPayload(.builtin_extern, Zir.Inst.BinNode{
|
|
9194
9106
|
.node = gz.nodeIndexToRelative(node),
|
|
@@ -9198,7 +9110,7 @@ fn builtinCall(
|
|
|
9198
9110
|
return rvalue(gz, ri, result, node);
|
|
9199
9111
|
},
|
|
9200
9112
|
.set_float_mode => {
|
|
9201
|
-
const float_mode_ty = try gz.
|
|
9113
|
+
const float_mode_ty = try gz.addStdLangValue(node, .float_mode);
|
|
9202
9114
|
const order = try expr(gz, scope, .{ .rl = .{ .coerced_ty = float_mode_ty } }, params[0]);
|
|
9203
9115
|
_ = try gz.addExtendedPayload(.set_float_mode, Zir.Inst.UnNode{
|
|
9204
9116
|
.node = gz.nodeIndexToRelative(node),
|
|
@@ -9284,7 +9196,7 @@ fn builtinCall(
|
|
|
9284
9196
|
|
|
9285
9197
|
.EnumLiteral => return rvalue(gz, ri, .enum_literal_type, node),
|
|
9286
9198
|
.Int => {
|
|
9287
|
-
const signedness_ty = try gz.
|
|
9199
|
+
const signedness_ty = try gz.addStdLangValue(node, .signedness);
|
|
9288
9200
|
const result = try gz.addPlNode(.reify_int, node, Zir.Inst.Bin{
|
|
9289
9201
|
.lhs = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = signedness_ty } }, params[0], .int_signedness),
|
|
9290
9202
|
.rhs = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .u16_type } }, params[1], .int_bit_width),
|
|
@@ -9299,8 +9211,8 @@ fn builtinCall(
|
|
|
9299
9211
|
return rvalue(gz, ri, result, node);
|
|
9300
9212
|
},
|
|
9301
9213
|
.Pointer => {
|
|
9302
|
-
const ptr_size_ty = try gz.
|
|
9303
|
-
const ptr_attrs_ty = try gz.
|
|
9214
|
+
const ptr_size_ty = try gz.addStdLangValue(node, .pointer_size);
|
|
9215
|
+
const ptr_attrs_ty = try gz.addStdLangValue(node, .pointer_attributes);
|
|
9304
9216
|
const size = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = ptr_size_ty } }, params[0], .pointer_size);
|
|
9305
9217
|
const attrs = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = ptr_attrs_ty } }, params[1], .pointer_attrs);
|
|
9306
9218
|
const elem_ty = try typeExpr(gz, scope, params[2]);
|
|
@@ -9319,7 +9231,7 @@ fn builtinCall(
|
|
|
9319
9231
|
return rvalue(gz, ri, result, node);
|
|
9320
9232
|
},
|
|
9321
9233
|
.Fn => {
|
|
9322
|
-
const fn_attrs_ty = try gz.
|
|
9234
|
+
const fn_attrs_ty = try gz.addStdLangValue(node, .fn_attributes);
|
|
9323
9235
|
const param_types = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .slice_const_type_type } }, params[0], .fn_param_types);
|
|
9324
9236
|
const param_attrs_ty = try gz.addExtendedPayloadSmall(
|
|
9325
9237
|
.reify_slice_arg_ty,
|
|
@@ -9339,7 +9251,7 @@ fn builtinCall(
|
|
|
9339
9251
|
return rvalue(gz, ri, result, node);
|
|
9340
9252
|
},
|
|
9341
9253
|
.Struct => {
|
|
9342
|
-
const container_layout_ty = try gz.
|
|
9254
|
+
const container_layout_ty = try gz.addStdLangValue(node, .container_layout);
|
|
9343
9255
|
const layout = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = container_layout_ty } }, params[0], .struct_layout);
|
|
9344
9256
|
const backing_ty = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .optional_type_type } }, params[1], .type);
|
|
9345
9257
|
const field_names = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .slice_const_slice_const_u8_type } }, params[2], .struct_field_names);
|
|
@@ -9367,7 +9279,7 @@ fn builtinCall(
|
|
|
9367
9279
|
return rvalue(gz, ri, result, node);
|
|
9368
9280
|
},
|
|
9369
9281
|
.Union => {
|
|
9370
|
-
const container_layout_ty = try gz.
|
|
9282
|
+
const container_layout_ty = try gz.addStdLangValue(node, .container_layout);
|
|
9371
9283
|
const layout = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = container_layout_ty } }, params[0], .union_layout);
|
|
9372
9284
|
const arg_ty = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .optional_type_type } }, params[1], .type);
|
|
9373
9285
|
const field_names = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .slice_const_slice_const_u8_type } }, params[2], .union_field_names);
|
|
@@ -9395,7 +9307,7 @@ fn builtinCall(
|
|
|
9395
9307
|
return rvalue(gz, ri, result, node);
|
|
9396
9308
|
},
|
|
9397
9309
|
.Enum => {
|
|
9398
|
-
const enum_mode_ty = try gz.
|
|
9310
|
+
const enum_mode_ty = try gz.addStdLangValue(node, .enum_mode);
|
|
9399
9311
|
const tag_ty = try typeExpr(gz, scope, params[0]);
|
|
9400
9312
|
const mode = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = enum_mode_ty } }, params[1], .type);
|
|
9401
9313
|
const field_names = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = .slice_const_slice_const_u8_type } }, params[2], .enum_field_names);
|
|
@@ -9513,7 +9425,7 @@ fn builtinCall(
|
|
|
9513
9425
|
return rvalue(gz, ri, result, node);
|
|
9514
9426
|
},
|
|
9515
9427
|
.reduce => {
|
|
9516
|
-
const reduce_op_ty = try gz.
|
|
9428
|
+
const reduce_op_ty = try gz.addStdLangValue(node, .reduce_op);
|
|
9517
9429
|
const op = try expr(gz, scope, .{ .rl = .{ .coerced_ty = reduce_op_ty } }, params[0]);
|
|
9518
9430
|
const scalar = try expr(gz, scope, .{ .rl = .none }, params[1]);
|
|
9519
9431
|
const result = try gz.addPlNode(.reduce, node, Zir.Inst.Bin{
|
|
@@ -9529,7 +9441,7 @@ fn builtinCall(
|
|
|
9529
9441
|
.shl_with_overflow => return overflowArithmetic(gz, scope, ri, node, params, .shl_with_overflow),
|
|
9530
9442
|
|
|
9531
9443
|
.atomic_load => {
|
|
9532
|
-
const atomic_order_type = try gz.
|
|
9444
|
+
const atomic_order_type = try gz.addStdLangValue(node, .atomic_order);
|
|
9533
9445
|
const result = try gz.addPlNode(.atomic_load, node, Zir.Inst.AtomicLoad{
|
|
9534
9446
|
// zig fmt: off
|
|
9535
9447
|
.elem_type = try typeExpr(gz, scope, params[0]),
|
|
@@ -9540,8 +9452,8 @@ fn builtinCall(
|
|
|
9540
9452
|
return rvalue(gz, ri, result, node);
|
|
9541
9453
|
},
|
|
9542
9454
|
.atomic_rmw => {
|
|
9543
|
-
const atomic_order_type = try gz.
|
|
9544
|
-
const atomic_rmw_op_type = try gz.
|
|
9455
|
+
const atomic_order_type = try gz.addStdLangValue(node, .atomic_order);
|
|
9456
|
+
const atomic_rmw_op_type = try gz.addStdLangValue(node, .atomic_rmw_op);
|
|
9545
9457
|
const int_type = try typeExpr(gz, scope, params[0]);
|
|
9546
9458
|
const result = try gz.addPlNode(.atomic_rmw, node, Zir.Inst.AtomicRmw{
|
|
9547
9459
|
// zig fmt: off
|
|
@@ -9554,7 +9466,7 @@ fn builtinCall(
|
|
|
9554
9466
|
return rvalue(gz, ri, result, node);
|
|
9555
9467
|
},
|
|
9556
9468
|
.atomic_store => {
|
|
9557
|
-
const atomic_order_type = try gz.
|
|
9469
|
+
const atomic_order_type = try gz.addStdLangValue(node, .atomic_order);
|
|
9558
9470
|
const int_type = try typeExpr(gz, scope, params[0]);
|
|
9559
9471
|
_ = try gz.addPlNode(.atomic_store, node, Zir.Inst.AtomicStore{
|
|
9560
9472
|
// zig fmt: off
|
|
@@ -9578,7 +9490,7 @@ fn builtinCall(
|
|
|
9578
9490
|
return rvalue(gz, ri, result, node);
|
|
9579
9491
|
},
|
|
9580
9492
|
.call => {
|
|
9581
|
-
const call_modifier_ty = try gz.
|
|
9493
|
+
const call_modifier_ty = try gz.addStdLangValue(node, .call_modifier);
|
|
9582
9494
|
const modifier = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = call_modifier_ty } }, params[0], .call_modifier);
|
|
9583
9495
|
const callee = try expr(gz, scope, .{ .rl = .none }, params[1]);
|
|
9584
9496
|
const args = try expr(gz, scope, .{ .rl = .none }, params[2]);
|
|
@@ -9655,7 +9567,7 @@ fn builtinCall(
|
|
|
9655
9567
|
return rvalue(gz, ri, result, node);
|
|
9656
9568
|
},
|
|
9657
9569
|
.prefetch => {
|
|
9658
|
-
const prefetch_options_ty = try gz.
|
|
9570
|
+
const prefetch_options_ty = try gz.addStdLangValue(node, .prefetch_options);
|
|
9659
9571
|
const ptr = try expr(gz, scope, .{ .rl = .none }, params[0]);
|
|
9660
9572
|
const options = try comptimeExpr(gz, scope, .{ .rl = .{ .coerced_ty = prefetch_options_ty } }, params[1], .prefetch_options);
|
|
9661
9573
|
_ = try gz.addExtendedPayload(.prefetch, Zir.Inst.BinNode{
|
|
@@ -9888,7 +9800,7 @@ fn cmpxchg(
|
|
|
9888
9800
|
small: u16,
|
|
9889
9801
|
) InnerError!Zir.Inst.Ref {
|
|
9890
9802
|
const int_type = try typeExpr(gz, scope, params[0]);
|
|
9891
|
-
const atomic_order_type = try gz.
|
|
9803
|
+
const atomic_order_type = try gz.addStdLangValue(node, .atomic_order);
|
|
9892
9804
|
const result = try gz.addExtendedPayloadSmall(.cmpxchg, small, Zir.Inst.Cmpxchg{
|
|
9893
9805
|
// zig fmt: off
|
|
9894
9806
|
.node = gz.nodeIndexToRelative(node),
|
|
@@ -10013,7 +9925,7 @@ fn callExpr(
|
|
|
10013
9925
|
const astgen = gz.astgen;
|
|
10014
9926
|
|
|
10015
9927
|
const callee = try calleeExpr(gz, scope, ri.rl, override_decl_literal_type, call.ast.fn_expr);
|
|
10016
|
-
const modifier: std.
|
|
9928
|
+
const modifier: std.lang.CallModifier = blk: {
|
|
10017
9929
|
if (gz.nosuspend_node != .none) {
|
|
10018
9930
|
break :blk .no_suspend;
|
|
10019
9931
|
}
|
|
@@ -10198,32 +10110,37 @@ const primitive_instrs = std.StaticStringMap(Zir.Inst.Ref).initComptime(.{
|
|
|
10198
10110
|
.{ "c_ushort", .c_ushort_type },
|
|
10199
10111
|
.{ "comptime_float", .comptime_float_type },
|
|
10200
10112
|
.{ "comptime_int", .comptime_int_type },
|
|
10201
|
-
.{ "f128", .f128_type },
|
|
10202
|
-
.{ "f16", .f16_type },
|
|
10203
|
-
.{ "f32", .f32_type },
|
|
10204
|
-
.{ "f64", .f64_type },
|
|
10205
|
-
.{ "f80", .f80_type },
|
|
10206
10113
|
.{ "false", .bool_false },
|
|
10207
|
-
.{ "i16", .i16_type },
|
|
10208
|
-
.{ "i32", .i32_type },
|
|
10209
|
-
.{ "i64", .i64_type },
|
|
10210
|
-
.{ "i128", .i128_type },
|
|
10211
|
-
.{ "i8", .i8_type },
|
|
10212
|
-
.{ "isize", .isize_type },
|
|
10213
10114
|
.{ "noreturn", .noreturn_type },
|
|
10214
10115
|
.{ "null", .null_value },
|
|
10215
10116
|
.{ "true", .bool_true },
|
|
10216
10117
|
.{ "type", .type_type },
|
|
10118
|
+
.{ "undefined", .undef },
|
|
10119
|
+
.{ "void", .void_type },
|
|
10120
|
+
|
|
10121
|
+
.{ "f16", .f16_type },
|
|
10122
|
+
.{ "f32", .f32_type },
|
|
10123
|
+
.{ "f64", .f64_type },
|
|
10124
|
+
.{ "f80", .f80_type },
|
|
10125
|
+
.{ "f128", .f128_type },
|
|
10126
|
+
|
|
10127
|
+
.{ "u0", .u0_type },
|
|
10128
|
+
.{ "u1", .u1_type },
|
|
10129
|
+
.{ "u8", .u8_type },
|
|
10130
|
+
.{ "i8", .i8_type },
|
|
10217
10131
|
.{ "u16", .u16_type },
|
|
10132
|
+
.{ "i16", .i16_type },
|
|
10218
10133
|
.{ "u29", .u29_type },
|
|
10219
10134
|
.{ "u32", .u32_type },
|
|
10135
|
+
.{ "i32", .i32_type },
|
|
10220
10136
|
.{ "u64", .u64_type },
|
|
10137
|
+
.{ "i64", .i64_type },
|
|
10138
|
+
.{ "u80", .u80_type },
|
|
10221
10139
|
.{ "u128", .u128_type },
|
|
10222
|
-
.{ "
|
|
10223
|
-
.{ "
|
|
10224
|
-
.{ "undefined", .undef },
|
|
10140
|
+
.{ "i128", .i128_type },
|
|
10141
|
+
.{ "u256", .u256_type },
|
|
10225
10142
|
.{ "usize", .usize_type },
|
|
10226
|
-
.{ "
|
|
10143
|
+
.{ "isize", .isize_type },
|
|
10227
10144
|
});
|
|
10228
10145
|
|
|
10229
10146
|
comptime {
|
|
@@ -10375,7 +10292,6 @@ fn nodeMayEvalToError(tree: *const Ast, start_node: Ast.Node.Index) BuiltinFn.Ev
|
|
|
10375
10292
|
.add_wrap,
|
|
10376
10293
|
.add_sat,
|
|
10377
10294
|
.array_cat,
|
|
10378
|
-
.array_mult,
|
|
10379
10295
|
.assign,
|
|
10380
10296
|
.assign_destructure,
|
|
10381
10297
|
.assign_bit_and,
|
|
@@ -11215,7 +11131,6 @@ const Scope = struct {
|
|
|
11215
11131
|
parent: *Scope,
|
|
11216
11132
|
index: u32,
|
|
11217
11133
|
len: u32,
|
|
11218
|
-
remapped_err_code: Zir.Inst.OptionalIndex = .none,
|
|
11219
11134
|
};
|
|
11220
11135
|
|
|
11221
11136
|
/// Represents a global scope that has any number of declarations in it.
|
|
@@ -11886,8 +11801,8 @@ const GenZir = struct {
|
|
|
11886
11801
|
return new_index;
|
|
11887
11802
|
}
|
|
11888
11803
|
|
|
11889
|
-
fn
|
|
11890
|
-
return addExtendedNodeSmall(gz, .
|
|
11804
|
+
fn addStdLangValue(gz: *GenZir, src_node: Ast.Node.Index, val: Zir.Inst.StdLangValue) !Zir.Inst.Ref {
|
|
11805
|
+
return addExtendedNodeSmall(gz, .std_lang_value, src_node, @intFromEnum(val));
|
|
11891
11806
|
}
|
|
11892
11807
|
|
|
11893
11808
|
fn addExtendedPayload(gz: *GenZir, opcode: Zir.Inst.Extended, extra: anytype) !Zir.Inst.Ref {
|
|
@@ -12435,7 +12350,7 @@ const GenZir = struct {
|
|
|
12435
12350
|
fn setStruct(gz: *GenZir, inst: Zir.Inst.Index, args: struct {
|
|
12436
12351
|
src_node: Ast.Node.Index,
|
|
12437
12352
|
name_strat: Zir.Inst.NameStrategy,
|
|
12438
|
-
layout: std.
|
|
12353
|
+
layout: std.lang.Type.ContainerLayout,
|
|
12439
12354
|
backing_int_type_body_len: ?u32,
|
|
12440
12355
|
decls_len: u32,
|
|
12441
12356
|
fields_len: u32,
|
|
@@ -12926,17 +12841,18 @@ fn scanContainer(
|
|
|
12926
12841
|
next: ?*@This(),
|
|
12927
12842
|
};
|
|
12928
12843
|
|
|
12929
|
-
// The maps below are allocated into this
|
|
12930
|
-
var
|
|
12931
|
-
|
|
12844
|
+
// The maps below are allocated into this BFA to avoid using the GPA for small namespaces.
|
|
12845
|
+
var bfa_buf: [512]u8 = undefined;
|
|
12846
|
+
var bfa_state: std.heap.BufferFirstAllocator = .init(&bfa_buf, astgen.gpa);
|
|
12847
|
+
const bfa = bfa_state.allocator();
|
|
12932
12848
|
|
|
12933
12849
|
var names: std.AutoArrayHashMapUnmanaged(Zir.NullTerminatedString, NameEntry) = .empty;
|
|
12934
12850
|
var test_names: std.AutoArrayHashMapUnmanaged(Zir.NullTerminatedString, NameEntry) = .empty;
|
|
12935
12851
|
var decltest_names: std.AutoArrayHashMapUnmanaged(Zir.NullTerminatedString, NameEntry) = .empty;
|
|
12936
12852
|
defer {
|
|
12937
|
-
names.deinit(
|
|
12938
|
-
test_names.deinit(
|
|
12939
|
-
decltest_names.deinit(
|
|
12853
|
+
names.deinit(bfa);
|
|
12854
|
+
test_names.deinit(bfa);
|
|
12855
|
+
decltest_names.deinit(bfa);
|
|
12940
12856
|
}
|
|
12941
12857
|
|
|
12942
12858
|
var any_duplicates = false;
|
|
@@ -13008,7 +12924,7 @@ fn scanContainer(
|
|
|
13008
12924
|
else => {}, // unnamed test
|
|
13009
12925
|
.string_literal => {
|
|
13010
12926
|
const name = try astgen.strLitAsString(test_name_token);
|
|
13011
|
-
const gop = try test_names.getOrPut(
|
|
12927
|
+
const gop = try test_names.getOrPut(bfa, name.index);
|
|
13012
12928
|
if (gop.found_existing) {
|
|
13013
12929
|
var e = gop.value_ptr;
|
|
13014
12930
|
while (e.next) |n| e = n;
|
|
@@ -13021,7 +12937,7 @@ fn scanContainer(
|
|
|
13021
12937
|
},
|
|
13022
12938
|
.identifier => {
|
|
13023
12939
|
const name = try astgen.identAsString(test_name_token);
|
|
13024
|
-
const gop = try decltest_names.getOrPut(
|
|
12940
|
+
const gop = try decltest_names.getOrPut(bfa, name);
|
|
13025
12941
|
if (gop.found_existing) {
|
|
13026
12942
|
var e = gop.value_ptr;
|
|
13027
12943
|
while (e.next) |n| e = n;
|
|
@@ -13048,7 +12964,7 @@ fn scanContainer(
|
|
|
13048
12964
|
}
|
|
13049
12965
|
|
|
13050
12966
|
{
|
|
13051
|
-
const gop = try names.getOrPut(
|
|
12967
|
+
const gop = try names.getOrPut(bfa, name_str_index);
|
|
13052
12968
|
const new_ent: NameEntry = .{
|
|
13053
12969
|
.tok = name_token,
|
|
13054
12970
|
.next = null,
|