@zigc/lib 0.17.0-dev.44 → 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.
Files changed (1270) hide show
  1. package/c/fcntl.zig +5 -0
  2. package/c/inttypes.zig +0 -10
  3. package/c/math.zig +52 -112
  4. package/c/pthread.zig +57 -0
  5. package/c/search.zig +1 -27
  6. package/c/stdlib/drand48.zig +0 -57
  7. package/c/stdlib.zig +31 -121
  8. package/c/string.zig +20 -7
  9. package/c/strings.zig +0 -38
  10. package/c/unistd.zig +28 -26
  11. package/c/wchar.zig +10 -0
  12. package/c.zig +2 -2
  13. package/{std/Build → compiler/Maker}/Fuzz.zig +177 -89
  14. package/compiler/Maker/Graph.zig +85 -0
  15. package/compiler/Maker/PkgConfig.zig +114 -0
  16. package/compiler/Maker/ScannedConfig.zig +370 -0
  17. package/compiler/Maker/Step/CheckFile.zig +63 -0
  18. package/compiler/Maker/Step/Compile.zig +1390 -0
  19. package/compiler/Maker/Step/ConfigHeader.zig +610 -0
  20. package/compiler/Maker/Step/FindProgram.zig +120 -0
  21. package/compiler/Maker/Step/Fmt.zig +65 -0
  22. package/compiler/Maker/Step/InstallArtifact.zig +141 -0
  23. package/compiler/Maker/Step/InstallDir.zig +99 -0
  24. package/compiler/Maker/Step/InstallFile.zig +26 -0
  25. package/compiler/Maker/Step/ObjCopy.zig +173 -0
  26. package/compiler/Maker/Step/Options.zig +104 -0
  27. package/compiler/Maker/Step/Run.zig +2372 -0
  28. package/compiler/Maker/Step/TranslateC.zig +152 -0
  29. package/compiler/Maker/Step/UpdateSourceFiles.zig +89 -0
  30. package/compiler/Maker/Step/WriteFile.zig +294 -0
  31. package/compiler/Maker/Step.zig +863 -0
  32. package/{std/Build → compiler/Maker}/Watch/FsEvents.zig +33 -24
  33. package/{std/Build → compiler/Maker}/Watch.zig +89 -68
  34. package/{std/Build → compiler/Maker}/WebServer.zig +145 -118
  35. package/compiler/Maker.zig +2051 -0
  36. package/compiler/aro/aro/CodeGen.zig +7 -8
  37. package/compiler/aro/aro/Compilation.zig +17 -17
  38. package/compiler/aro/aro/Driver.zig +18 -16
  39. package/compiler/aro/aro/Parser.zig +20 -15
  40. package/compiler/aro/aro/Pragma.zig +3 -2
  41. package/compiler/aro/aro/Preprocessor.zig +11 -8
  42. package/compiler/aro/aro/pragmas/message.zig +3 -2
  43. package/compiler/aro/aro/text_literal.zig +3 -2
  44. package/compiler/aro/assembly_backend/x86_64.zig +4 -4
  45. package/compiler/aro/backend/Ir/x86/Renderer.zig +3 -3
  46. package/compiler/configurer.zig +1402 -0
  47. package/compiler/reduce/Walk.zig +8 -13
  48. package/compiler/resinator/compile.zig +1 -1
  49. package/compiler/resinator/cvtres.zig +4 -4
  50. package/compiler/resinator/errors.zig +7 -7
  51. package/compiler/resinator/ico.zig +4 -4
  52. package/compiler/resinator/parse.zig +2 -2
  53. package/compiler/resinator/res.zig +1 -1
  54. package/compiler/std-docs.zig +17 -38
  55. package/compiler/test_runner.zig +25 -15
  56. package/compiler/translate-c/MacroTranslator.zig +1 -1
  57. package/compiler/translate-c/Translator.zig +2 -2
  58. package/compiler/translate-c/ast.zig +16 -23
  59. package/compiler/translate-c/main.zig +1 -1
  60. package/compiler_rt/addf3.zig +1 -1
  61. package/compiler_rt/arm.zig +3 -3
  62. package/compiler_rt/atomics.zig +1 -1
  63. package/compiler_rt/comparef.zig +3 -3
  64. package/compiler_rt/cos.zig +1 -3
  65. package/compiler_rt/count0bits.zig +1 -1
  66. package/compiler_rt/divdf3.zig +2 -2
  67. package/compiler_rt/divsf3.zig +1 -1
  68. package/compiler_rt/divtf3.zig +1 -1
  69. package/compiler_rt/divxf3.zig +1 -1
  70. package/compiler_rt/exp.zig +0 -2
  71. package/compiler_rt/exp2.zig +0 -2
  72. package/compiler_rt/extendf.zig +5 -5
  73. package/compiler_rt/fabs.zig +1 -3
  74. package/compiler_rt/float_from_int.zig +4 -5
  75. package/compiler_rt/fma.zig +0 -2
  76. package/compiler_rt/fmax.zig +1 -3
  77. package/compiler_rt/fmin.zig +1 -3
  78. package/compiler_rt/fmod.zig +2 -4
  79. package/compiler_rt/int_from_float.zig +1 -1
  80. package/compiler_rt/limb64.zig +3 -2
  81. package/compiler_rt/log.zig +0 -2
  82. package/compiler_rt/log10.zig +0 -2
  83. package/compiler_rt/log2.zig +0 -2
  84. package/compiler_rt/mulf3.zig +2 -2
  85. package/compiler_rt/rem_pio2l.zig +1 -1
  86. package/compiler_rt/round.zig +0 -2
  87. package/compiler_rt/sin.zig +1 -3
  88. package/compiler_rt/sincos.zig +1 -3
  89. package/compiler_rt/sqrt.zig +0 -2
  90. package/compiler_rt/ssp.zig +2 -2
  91. package/compiler_rt/tan.zig +1 -3
  92. package/compiler_rt/trunc.zig +0 -2
  93. package/compiler_rt/truncf.zig +3 -3
  94. package/compiler_rt/trunctfhf2.zig +3 -0
  95. package/compiler_rt.zig +5 -26
  96. package/docs/main.js +8 -8
  97. package/docs/wasm/Walk.zig +1 -3
  98. package/docs/wasm/html_render.zig +1 -2
  99. package/docs/wasm/markdown/Parser.zig +16 -20
  100. package/fuzzer.zig +5 -3
  101. package/include/__clang_spirv_builtins.h +12 -12
  102. package/include/__float_float.h +176 -0
  103. package/include/__float_header_macro.h +12 -0
  104. package/include/__float_infinity_nan.h +20 -0
  105. package/include/amo.h +131 -0
  106. package/include/amxavx512intrin.h +215 -1
  107. package/include/amxintrin.h +0 -2
  108. package/include/arm_acle.h +37 -27
  109. package/include/arm_neon.h +218 -82
  110. package/include/arm_sme.h +8 -8
  111. package/include/arm_sve.h +4162 -3782
  112. package/include/avx10_2_512bf16intrin.h +19 -12
  113. package/include/avx10_2_512convertintrin.h +1 -1
  114. package/include/avx10_2_512niintrin.h +31 -31
  115. package/include/avx10_2_512satcvtdsintrin.h +1 -1
  116. package/include/avx10_2bf16intrin.h +54 -45
  117. package/include/avx10_2convertintrin.h +2 -2
  118. package/include/avx10_2copyintrin.h +1 -1
  119. package/include/avx10_2niintrin.h +14 -14
  120. package/include/avx10_2satcvtdsintrin.h +2 -2
  121. package/include/avx2intrin.h +275 -377
  122. package/include/avx512bf16intrin.h +25 -16
  123. package/include/avx512bitalgintrin.h +19 -30
  124. package/include/avx512bwintrin.h +386 -505
  125. package/include/avx512cdintrin.h +42 -55
  126. package/include/avx512dqintrin.h +132 -161
  127. package/include/avx512fintrin.h +1015 -1424
  128. package/include/avx512fp16intrin.h +112 -110
  129. package/include/avx512ifmaintrin.h +32 -34
  130. package/include/avx512ifmavlintrin.h +73 -46
  131. package/include/avx512vbmi2intrin.h +43 -32
  132. package/include/avx512vbmiintrin.h +19 -27
  133. package/include/avx512vbmivlintrin.h +35 -49
  134. package/include/avx512vlbf16intrin.h +32 -22
  135. package/include/avx512vlbitalgintrin.h +37 -53
  136. package/include/avx512vlbwintrin.h +470 -573
  137. package/include/avx512vlcdintrin.h +74 -102
  138. package/include/avx512vldqintrin.h +110 -127
  139. package/include/avx512vlfp16intrin.h +130 -111
  140. package/include/avx512vlintrin.h +945 -1299
  141. package/include/avx512vlvbmi2intrin.h +78 -63
  142. package/include/avx512vlvnniintrin.h +21 -18
  143. package/include/avx512vlvp2intersectintrin.h +2 -2
  144. package/include/avx512vnniintrin.h +10 -10
  145. package/include/avx512vp2intersectintrin.h +1 -2
  146. package/include/avx512vpopcntdqintrin.h +8 -10
  147. package/include/avx512vpopcntdqvlintrin.h +17 -15
  148. package/include/avxifmaintrin.h +16 -0
  149. package/include/avxintrin.h +165 -241
  150. package/include/avxvnniint16intrin.h +118 -99
  151. package/include/avxvnniint8intrin.h +56 -32
  152. package/include/avxvnniintrin.h +16 -8
  153. package/include/cpuid.h +101 -4
  154. package/include/emmintrin.h +168 -168
  155. package/include/f16cintrin.h +23 -9
  156. package/include/float.h +16 -155
  157. package/include/fma4intrin.h +98 -96
  158. package/include/fmaintrin.h +96 -66
  159. package/include/gfniintrin.h +21 -16
  160. package/include/hexagon_types.h +23 -20
  161. package/include/hvx_hexagon_protos.h +649 -860
  162. package/include/immintrin.h +0 -12
  163. package/include/intrin.h +4 -0
  164. package/include/lasxintrin.h +113 -0
  165. package/include/llvm_libc_wrappers/assert.h +3 -5
  166. package/include/llvm_libc_wrappers/ctype.h +3 -115
  167. package/include/llvm_libc_wrappers/inttypes.h +3 -5
  168. package/include/llvm_libc_wrappers/stdio.h +10 -38
  169. package/include/llvm_libc_wrappers/stdlib.h +3 -24
  170. package/include/llvm_libc_wrappers/string.h +2 -70
  171. package/include/llvm_libc_wrappers/time.h +4 -10
  172. package/include/mmintrin.h +188 -257
  173. package/include/module.modulemap +23 -4
  174. package/include/movrs_avx10_2_512intrin.h +2 -2
  175. package/include/movrs_avx10_2intrin.h +4 -4
  176. package/include/pmmintrin.h +12 -24
  177. package/include/ptrauth.h +16 -2
  178. package/include/riscv_mips.h +34 -0
  179. package/include/riscv_nds.h +89 -0
  180. package/include/sifive_vector.h +58 -2
  181. package/include/sm4evexintrin.h +2 -2
  182. package/include/smmintrin.h +77 -59
  183. package/include/spirvintrin.h +194 -0
  184. package/include/stddefer.h +19 -0
  185. package/include/tmmintrin.h +116 -147
  186. package/include/vaesintrin.h +1 -2
  187. package/include/xmmintrin.h +44 -70
  188. package/include/xopintrin.h +20 -10
  189. package/init/build.zig +1 -3
  190. package/libc/darwin/SDKSettings.json +1 -1
  191. package/libc/darwin/libSystem.tbd +88 -87
  192. package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
  193. package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
  194. package/libc/include/aarch64-openbsd-none/arm64/cpu.h +7 -1
  195. package/libc/include/aarch64-openbsd-none/arm64/intr.h +9 -1
  196. package/libc/include/aarch64-openbsd-none/machine/cpu.h +7 -1
  197. package/libc/include/aarch64-openbsd-none/machine/intr.h +9 -1
  198. package/libc/include/any-darwin-any/AvailabilityInternal.h +10 -10
  199. package/libc/include/any-darwin-any/AvailabilityVersions.h +8 -0
  200. package/libc/include/any-darwin-any/mach/host_info.h +3 -1
  201. package/libc/include/any-darwin-any/mach/mach_voucher_types.h +2 -0
  202. package/libc/include/any-darwin-any/mach/vm_statistics.h +33 -2
  203. package/libc/include/any-darwin-any/spawn.h +3 -1
  204. package/libc/include/any-darwin-any/sys/_symbol_aliasing.h +12 -0
  205. package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
  206. package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
  207. package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
  208. package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
  209. package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
  210. package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
  211. package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
  212. package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
  213. package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
  214. package/libc/include/any-linux-any/linux/android/binder.h +1 -1
  215. package/libc/include/any-linux-any/linux/bpf.h +28 -0
  216. package/libc/include/any-linux-any/linux/btrfs.h +1 -0
  217. package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
  218. package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
  219. package/libc/include/any-linux-any/linux/dpll.h +1 -0
  220. package/libc/include/any-linux-any/linux/elf.h +2 -0
  221. package/libc/include/any-linux-any/linux/ethtool.h +21 -5
  222. package/libc/include/any-linux-any/linux/fs.h +1 -0
  223. package/libc/include/any-linux-any/linux/hyperv.h +1 -1
  224. package/libc/include/any-linux-any/linux/idxd.h +134 -134
  225. package/libc/include/any-linux-any/linux/if_alg.h +1 -1
  226. package/libc/include/any-linux-any/linux/if_link.h +1 -0
  227. package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
  228. package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
  229. package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
  230. package/libc/include/any-linux-any/linux/io_uring.h +33 -2
  231. package/libc/include/any-linux-any/linux/iommufd.h +39 -0
  232. package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
  233. package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
  234. package/libc/include/any-linux-any/linux/kvm.h +30 -6
  235. package/libc/include/any-linux-any/linux/landlock.h +22 -8
  236. package/libc/include/any-linux-any/linux/magic.h +1 -0
  237. package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
  238. package/libc/include/any-linux-any/linux/mount.h +11 -2
  239. package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
  240. package/libc/include/any-linux-any/linux/mshv.h +2 -0
  241. package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
  242. package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
  243. package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
  244. package/libc/include/any-linux-any/linux/nfs.h +1 -1
  245. package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
  246. package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
  247. package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
  248. package/libc/include/any-linux-any/linux/nl80211.h +104 -3
  249. package/libc/include/any-linux-any/linux/pci.h +7 -0
  250. package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
  251. package/libc/include/any-linux-any/linux/pcitest.h +1 -0
  252. package/libc/include/any-linux-any/linux/perf_event.h +24 -3
  253. package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
  254. package/libc/include/any-linux-any/linux/prctl.h +30 -0
  255. package/libc/include/any-linux-any/linux/rseq.h +62 -5
  256. package/libc/include/any-linux-any/linux/shm.h +0 -1
  257. package/libc/include/any-linux-any/linux/stddef.h +4 -0
  258. package/libc/include/any-linux-any/linux/sysctl.h +1 -2
  259. package/libc/include/any-linux-any/linux/taskstats.h +12 -1
  260. package/libc/include/any-linux-any/linux/tcp.h +23 -3
  261. package/libc/include/any-linux-any/linux/typelimits.h +8 -0
  262. package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
  263. package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
  264. package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
  265. package/libc/include/any-linux-any/linux/vduse.h +80 -5
  266. package/libc/include/any-linux-any/linux/version.h +3 -3
  267. package/libc/include/any-linux-any/linux/vfio.h +4 -0
  268. package/libc/include/any-linux-any/linux/videodev2.h +3 -0
  269. package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
  270. package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
  271. package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
  272. package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
  273. package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
  274. package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
  275. package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
  276. package/libc/include/arc-linux-any/asm/swab.h +0 -63
  277. package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
  278. package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
  279. package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
  280. package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
  281. package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
  282. package/libc/include/generic-openbsd/db.h +1 -7
  283. package/libc/include/generic-openbsd/ddb/db_interface.h +2 -1
  284. package/libc/include/generic-openbsd/fnmatch.h +6 -2
  285. package/libc/include/generic-openbsd/login_cap.h +3 -1
  286. package/libc/include/generic-openbsd/miscfs/fuse/fusefs_node.h +2 -1
  287. package/libc/include/generic-openbsd/net/bpf.h +3 -1
  288. package/libc/include/generic-openbsd/net/hfsc.h +4 -4
  289. package/libc/include/generic-openbsd/net/if.h +5 -1
  290. package/libc/include/generic-openbsd/net/if_bridge.h +48 -1
  291. package/libc/include/generic-openbsd/net/if_etherbridge.h +20 -7
  292. package/libc/include/generic-openbsd/net/if_media.h +26 -1
  293. package/libc/include/generic-openbsd/net/if_pflow.h +71 -20
  294. package/libc/include/generic-openbsd/net/if_pfsync.h +2 -2
  295. package/libc/include/generic-openbsd/net/if_sppp.h +2 -1
  296. package/libc/include/generic-openbsd/net/if_trunk.h +3 -2
  297. package/libc/include/generic-openbsd/net/if_types.h +2 -2
  298. package/libc/include/generic-openbsd/net/if_var.h +34 -12
  299. package/libc/include/generic-openbsd/net/netisr.h +1 -3
  300. package/libc/include/generic-openbsd/net/pfvar.h +154 -1
  301. package/libc/include/generic-openbsd/net/pfvar_priv.h +256 -1
  302. package/libc/include/generic-openbsd/net80211/ieee80211.h +76 -4
  303. package/libc/include/generic-openbsd/net80211/ieee80211_ioctl.h +3 -2
  304. package/libc/include/generic-openbsd/net80211/ieee80211_node.h +48 -2
  305. package/libc/include/generic-openbsd/net80211/ieee80211_proto.h +4 -1
  306. package/libc/include/generic-openbsd/net80211/ieee80211_var.h +18 -2
  307. package/libc/include/generic-openbsd/netinet/if_ether.h +12 -11
  308. package/libc/include/generic-openbsd/netinet/igmp_var.h +17 -3
  309. package/libc/include/generic-openbsd/netinet/in_pcb.h +2 -1
  310. package/libc/include/generic-openbsd/netinet/in_var.h +17 -59
  311. package/libc/include/generic-openbsd/netinet/ip.h +3 -2
  312. package/libc/include/generic-openbsd/netinet/tcp_timer.h +1 -2
  313. package/libc/include/generic-openbsd/netinet6/in6_var.h +15 -29
  314. package/libc/include/generic-openbsd/netinet6/ip6_var.h +1 -2
  315. package/libc/include/generic-openbsd/netinet6/mld6_var.h +17 -4
  316. package/libc/include/generic-openbsd/netinet6/nd6.h +2 -2
  317. package/libc/include/generic-openbsd/pthread.h +2 -2
  318. package/libc/include/generic-openbsd/signal.h +2 -2
  319. package/libc/include/generic-openbsd/sndio.h +6 -12
  320. package/libc/include/generic-openbsd/strings.h +5 -1
  321. package/libc/include/generic-openbsd/sys/device.h +4 -3
  322. package/libc/include/generic-openbsd/sys/disklabel.h +17 -5
  323. package/libc/include/generic-openbsd/sys/dkio.h +3 -5
  324. package/libc/include/generic-openbsd/sys/filedesc.h +3 -2
  325. package/libc/include/generic-openbsd/sys/mbuf.h +1 -1
  326. package/libc/include/generic-openbsd/sys/mman.h +7 -2
  327. package/libc/include/generic-openbsd/sys/mutex.h +10 -7
  328. package/libc/include/generic-openbsd/sys/namei.h +8 -7
  329. package/libc/include/generic-openbsd/sys/param.h +1 -1
  330. package/libc/include/generic-openbsd/sys/pledge.h +1 -3
  331. package/libc/include/generic-openbsd/sys/protosw.h +8 -1
  332. package/libc/include/generic-openbsd/sys/ptrace.h +4 -1
  333. package/libc/include/generic-openbsd/sys/sched.h +8 -1
  334. package/libc/include/generic-openbsd/sys/signal.h +4 -2
  335. package/libc/include/generic-openbsd/sys/socketvar.h +2 -1
  336. package/libc/include/generic-openbsd/sys/sockio.h +11 -1
  337. package/libc/include/generic-openbsd/sys/syscall.h +5 -3
  338. package/libc/include/generic-openbsd/sys/syscallargs.h +9 -2
  339. package/libc/include/generic-openbsd/sys/sysctl.h +7 -4
  340. package/libc/include/generic-openbsd/sys/types.h +6 -2
  341. package/libc/include/generic-openbsd/sys/videoio.h +143 -68
  342. package/libc/include/generic-openbsd/sys/xcall.h +2 -2
  343. package/libc/include/generic-openbsd/time.h +2 -2
  344. package/libc/include/generic-openbsd/unistd.h +2 -2
  345. package/libc/include/generic-openbsd/uvm/uvm_anon.h +2 -3
  346. package/libc/include/generic-openbsd/uvm/uvm_extern.h +1 -19
  347. package/libc/include/generic-openbsd/uvm/uvm_pager.h +3 -4
  348. package/libc/include/generic-openbsd/uvm/uvm_pmemrange.h +1 -2
  349. package/libc/include/generic-openbsd/uvm/uvm_swap.h +4 -1
  350. package/libc/include/generic-openbsd/uvm/uvm_vnode.h +3 -4
  351. package/libc/include/generic-openbsd/uvm/uvmexp.h +41 -35
  352. package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
  353. package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
  354. package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
  355. package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
  356. package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
  357. package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
  358. package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
  359. package/libc/include/mips-linux-any/asm/errno.h +2 -0
  360. package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
  361. package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
  362. package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
  363. package/libc/include/mips64-openbsd-none/machine/octeonvar.h +1 -27
  364. package/libc/include/mips64-openbsd-none/octeon/octeonvar.h +1 -27
  365. package/libc/include/mips64el-openbsd-none/loongson/apmvar.h +1 -1
  366. package/libc/include/mips64el-openbsd-none/loongson/param.h +1 -5
  367. package/libc/include/mips64el-openbsd-none/machine/apmvar.h +1 -1
  368. package/libc/include/mips64el-openbsd-none/machine/param.h +1 -5
  369. package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
  370. package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
  371. package/libc/include/powerpc-openbsd-eabihf/powerpc/intr.h +1 -4
  372. package/libc/include/powerpc64-openbsd-none/machine/atomic.h +3 -3
  373. package/libc/include/powerpc64-openbsd-none/powerpc64/atomic.h +3 -3
  374. package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
  375. package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
  376. package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
  377. package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
  378. package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
  379. package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
  380. package/libc/include/riscv64-openbsd-none/machine/cpu.h +4 -8
  381. package/libc/include/riscv64-openbsd-none/machine/cpufunc.h +4 -4
  382. package/libc/include/riscv64-openbsd-none/machine/pmap.h +5 -1
  383. package/libc/include/riscv64-openbsd-none/machine/pte.h +9 -1
  384. package/libc/include/riscv64-openbsd-none/riscv64/cpu.h +4 -8
  385. package/libc/include/riscv64-openbsd-none/riscv64/cpufunc.h +4 -4
  386. package/libc/include/riscv64-openbsd-none/riscv64/pmap.h +5 -1
  387. package/libc/include/riscv64-openbsd-none/riscv64/pte.h +9 -1
  388. package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
  389. package/libc/include/sparc-linux-any/asm/errno.h +2 -0
  390. package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
  391. package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
  392. package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
  393. package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
  394. package/libc/include/x86-linux-any/asm/kvm.h +13 -8
  395. package/libc/include/x86-linux-any/asm/svm.h +16 -16
  396. package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
  397. package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
  398. package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
  399. package/libc/include/x86-openbsd-none/i386/specialreg.h +3 -1
  400. package/libc/include/x86-openbsd-none/machine/specialreg.h +3 -1
  401. package/libc/include/x86_64-openbsd-none/amd64/conf.h +11 -2
  402. package/libc/include/x86_64-openbsd-none/amd64/cpu.h +14 -4
  403. package/libc/include/x86_64-openbsd-none/amd64/cpufunc.h +2 -3
  404. package/libc/include/x86_64-openbsd-none/amd64/ghcb.h +2 -1
  405. package/libc/include/x86_64-openbsd-none/amd64/i82489var.h +2 -4
  406. package/libc/include/x86_64-openbsd-none/amd64/i8259.h +1 -53
  407. package/libc/include/x86_64-openbsd-none/amd64/intr.h +5 -2
  408. package/libc/include/x86_64-openbsd-none/amd64/intrdefs.h +9 -7
  409. package/libc/include/x86_64-openbsd-none/amd64/kexec.h +48 -0
  410. package/libc/include/x86_64-openbsd-none/amd64/specialreg.h +4 -1
  411. package/libc/include/x86_64-openbsd-none/machine/conf.h +11 -2
  412. package/libc/include/x86_64-openbsd-none/machine/cpu.h +14 -4
  413. package/libc/include/x86_64-openbsd-none/machine/cpufunc.h +2 -3
  414. package/libc/include/x86_64-openbsd-none/machine/ghcb.h +2 -1
  415. package/libc/include/x86_64-openbsd-none/machine/i82489var.h +2 -4
  416. package/libc/include/x86_64-openbsd-none/machine/i8259.h +1 -53
  417. package/libc/include/x86_64-openbsd-none/machine/intr.h +5 -2
  418. package/libc/include/x86_64-openbsd-none/machine/intrdefs.h +9 -7
  419. package/libc/include/x86_64-openbsd-none/machine/kexec.h +48 -0
  420. package/libc/include/x86_64-openbsd-none/machine/specialreg.h +4 -1
  421. package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
  422. package/libc/openbsd/abilists +0 -0
  423. package/libcxx/include/__algorithm/all_of.h +11 -5
  424. package/libcxx/include/__algorithm/comp.h +4 -0
  425. package/libcxx/include/__algorithm/copy.h +28 -147
  426. package/libcxx/include/__algorithm/copy_backward.h +9 -24
  427. package/libcxx/include/__algorithm/copy_n.h +50 -16
  428. package/libcxx/include/__algorithm/count.h +2 -2
  429. package/libcxx/include/__algorithm/equal.h +43 -55
  430. package/libcxx/include/__algorithm/fill.h +26 -8
  431. package/libcxx/include/__algorithm/fill_n.h +32 -46
  432. package/libcxx/include/__algorithm/find.h +96 -39
  433. package/libcxx/include/__algorithm/find_end.h +105 -0
  434. package/libcxx/include/__algorithm/for_each.h +18 -24
  435. package/libcxx/include/__algorithm/for_each_n.h +20 -47
  436. package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
  437. package/libcxx/include/__algorithm/for_each_segment.h +26 -0
  438. package/libcxx/include/__algorithm/generate.h +4 -2
  439. package/libcxx/include/__algorithm/generate_n.h +19 -6
  440. package/libcxx/include/__algorithm/is_permutation.h +4 -4
  441. package/libcxx/include/__algorithm/iterator_operations.h +3 -0
  442. package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
  443. package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
  444. package/libcxx/include/__algorithm/make_heap.h +16 -4
  445. package/libcxx/include/__algorithm/mismatch.h +2 -2
  446. package/libcxx/include/__algorithm/move.h +8 -19
  447. package/libcxx/include/__algorithm/move_backward.h +9 -24
  448. package/libcxx/include/__algorithm/none_of.h +4 -4
  449. package/libcxx/include/__algorithm/partial_sort.h +1 -1
  450. package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
  451. package/libcxx/include/__algorithm/pstl.h +9 -9
  452. package/libcxx/include/__algorithm/radix_sort.h +27 -25
  453. package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
  454. package/libcxx/include/__algorithm/ranges_equal.h +17 -26
  455. package/libcxx/include/__algorithm/ranges_fill.h +7 -6
  456. package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
  457. package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
  458. package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
  459. package/libcxx/include/__algorithm/rotate.h +27 -44
  460. package/libcxx/include/__algorithm/search_n.h +49 -37
  461. package/libcxx/include/__algorithm/sift_down.h +19 -18
  462. package/libcxx/include/__algorithm/simd_utils.h +33 -4
  463. package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
  464. package/libcxx/include/__algorithm/stable_sort.h +1 -1
  465. package/libcxx/include/__assertion_handler +31 -4
  466. package/libcxx/include/__atomic/atomic.h +36 -60
  467. package/libcxx/include/__atomic/atomic_flag.h +19 -37
  468. package/libcxx/include/__atomic/atomic_ref.h +29 -12
  469. package/libcxx/include/__atomic/atomic_sync.h +127 -55
  470. package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
  471. package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
  472. package/libcxx/include/__atomic/contention_t.h +27 -3
  473. package/libcxx/include/__atomic/floating_point_helper.h +55 -0
  474. package/libcxx/include/__bit/countl.h +1 -2
  475. package/libcxx/include/__bit/countr.h +1 -2
  476. package/libcxx/include/__bit/has_single_bit.h +1 -1
  477. package/libcxx/include/__bit/popcount.h +0 -1
  478. package/libcxx/include/__bit/rotate.h +15 -26
  479. package/libcxx/include/__bit_reference +207 -18
  480. package/libcxx/include/__charconv/from_chars_integral.h +1 -1
  481. package/libcxx/include/__charconv/from_chars_result.h +1 -1
  482. package/libcxx/include/__charconv/to_chars_integral.h +1 -0
  483. package/libcxx/include/__charconv/to_chars_result.h +1 -1
  484. package/libcxx/include/__charconv/traits.h +3 -24
  485. package/libcxx/include/__chrono/day.h +11 -0
  486. package/libcxx/include/__chrono/duration.h +58 -33
  487. package/libcxx/include/__chrono/file_clock.h +4 -2
  488. package/libcxx/include/__chrono/is_clock.h +72 -0
  489. package/libcxx/include/__chrono/leap_second.h +13 -0
  490. package/libcxx/include/__chrono/month.h +13 -0
  491. package/libcxx/include/__chrono/month_weekday.h +22 -0
  492. package/libcxx/include/__chrono/monthday.h +20 -0
  493. package/libcxx/include/__chrono/steady_clock.h +1 -1
  494. package/libcxx/include/__chrono/system_clock.h +3 -3
  495. package/libcxx/include/__chrono/time_point.h +37 -13
  496. package/libcxx/include/__chrono/weekday.h +25 -0
  497. package/libcxx/include/__chrono/year.h +11 -0
  498. package/libcxx/include/__chrono/year_month.h +13 -0
  499. package/libcxx/include/__chrono/year_month_day.h +23 -0
  500. package/libcxx/include/__chrono/year_month_weekday.h +26 -0
  501. package/libcxx/include/__chrono/zoned_time.h +16 -0
  502. package/libcxx/include/__compare/is_eq.h +6 -6
  503. package/libcxx/include/__compare/strong_order.h +12 -30
  504. package/libcxx/include/__compare/three_way_comparable.h +2 -2
  505. package/libcxx/include/__concepts/comparison_common_type.h +40 -0
  506. package/libcxx/include/__concepts/equality_comparable.h +2 -1
  507. package/libcxx/include/__condition_variable/condition_variable.h +1 -1
  508. package/libcxx/include/__config +63 -280
  509. package/libcxx/include/__configuration/abi.h +14 -24
  510. package/libcxx/include/__configuration/availability.h +65 -118
  511. package/libcxx/include/__configuration/compiler.h +6 -6
  512. package/libcxx/include/__configuration/experimental.h +38 -0
  513. package/libcxx/include/__configuration/hardening.h +215 -0
  514. package/libcxx/include/__configuration/language.h +3 -0
  515. package/libcxx/include/__configuration/platform.h +9 -16
  516. package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
  517. package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
  518. package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
  519. package/libcxx/include/__exception/exception.h +6 -4
  520. package/libcxx/include/__exception/exception_ptr.h +27 -5
  521. package/libcxx/include/__exception/nested_exception.h +2 -2
  522. package/libcxx/include/__exception/operations.h +5 -5
  523. package/libcxx/include/__expected/bad_expected_access.h +8 -6
  524. package/libcxx/include/__expected/expected.h +62 -64
  525. package/libcxx/include/__expected/unexpected.h +4 -4
  526. package/libcxx/include/__filesystem/copy_options.h +4 -4
  527. package/libcxx/include/__filesystem/directory_entry.h +37 -33
  528. package/libcxx/include/__filesystem/directory_iterator.h +9 -11
  529. package/libcxx/include/__filesystem/directory_options.h +7 -4
  530. package/libcxx/include/__filesystem/file_status.h +3 -3
  531. package/libcxx/include/__filesystem/filesystem_error.h +9 -10
  532. package/libcxx/include/__filesystem/operations.h +97 -66
  533. package/libcxx/include/__filesystem/path.h +68 -64
  534. package/libcxx/include/__filesystem/path_iterator.h +1 -3
  535. package/libcxx/include/__filesystem/perm_options.h +4 -4
  536. package/libcxx/include/__filesystem/perms.h +4 -4
  537. package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
  538. package/libcxx/include/__filesystem/space_info.h +1 -1
  539. package/libcxx/include/__filesystem/u8path.h +12 -14
  540. package/libcxx/include/__flat_map/flat_map.h +88 -71
  541. package/libcxx/include/__flat_map/flat_multimap.h +251 -172
  542. package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
  543. package/libcxx/include/__flat_map/utils.h +1 -0
  544. package/libcxx/include/__flat_set/flat_multiset.h +211 -143
  545. package/libcxx/include/__flat_set/flat_set.h +86 -68
  546. package/libcxx/include/__format/concepts.h +0 -14
  547. package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
  548. package/libcxx/include/__format/fmt_pair_like.h +42 -0
  549. package/libcxx/include/__format/format_arg.h +7 -10
  550. package/libcxx/include/__format/format_args.h +1 -1
  551. package/libcxx/include/__format/format_context.h +5 -5
  552. package/libcxx/include/__format/format_parse_context.h +2 -2
  553. package/libcxx/include/__format/formatter_output.h +30 -34
  554. package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
  555. package/libcxx/include/__format/range_default_formatter.h +2 -41
  556. package/libcxx/include/__format/range_format.h +71 -0
  557. package/libcxx/include/__format/range_formatter.h +1 -0
  558. package/libcxx/include/__format/width_estimation_table.h +4 -2
  559. package/libcxx/include/__functional/bind.h +10 -15
  560. package/libcxx/include/__functional/bind_back.h +1 -1
  561. package/libcxx/include/__functional/bind_front.h +1 -1
  562. package/libcxx/include/__functional/function.h +57 -75
  563. package/libcxx/include/__functional/hash.h +1 -10
  564. package/libcxx/include/__functional/identity.h +1 -1
  565. package/libcxx/include/__functional/is_transparent.h +8 -0
  566. package/libcxx/include/__functional/mem_fn.h +2 -1
  567. package/libcxx/include/__functional/operations.h +18 -0
  568. package/libcxx/include/__functional/ranges_operations.h +7 -0
  569. package/libcxx/include/__functional/reference_wrapper.h +7 -5
  570. package/libcxx/include/__functional/weak_result_type.h +14 -28
  571. package/libcxx/include/__fwd/ios.h +1 -1
  572. package/libcxx/include/__fwd/tuple.h +14 -0
  573. package/libcxx/include/__hash_table +371 -357
  574. package/libcxx/include/__ios/fpos.h +4 -4
  575. package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
  576. package/libcxx/include/__iterator/bounded_iter.h +7 -8
  577. package/libcxx/include/__iterator/concepts.h +6 -9
  578. package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
  579. package/libcxx/include/__iterator/distance.h +40 -18
  580. package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
  581. package/libcxx/include/__iterator/insert_iterator.h +1 -7
  582. package/libcxx/include/__iterator/istream_iterator.h +6 -7
  583. package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
  584. package/libcxx/include/__iterator/iter_move.h +1 -1
  585. package/libcxx/include/__iterator/iterator.h +13 -0
  586. package/libcxx/include/__iterator/iterator_traits.h +13 -14
  587. package/libcxx/include/__iterator/ostream_iterator.h +1 -7
  588. package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
  589. package/libcxx/include/__iterator/reverse_iterator.h +8 -13
  590. package/libcxx/include/__iterator/segmented_iterator.h +3 -8
  591. package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
  592. package/libcxx/include/__iterator/wrap_iter.h +8 -6
  593. package/libcxx/include/__locale +3 -10
  594. package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
  595. package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
  596. package/libcxx/include/__locale_dir/messages.h +1 -1
  597. package/libcxx/include/__locale_dir/money.h +2 -2
  598. package/libcxx/include/__locale_dir/num.h +190 -243
  599. package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
  600. package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
  601. package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
  602. package/libcxx/include/__locale_dir/support/linux.h +0 -37
  603. package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
  604. package/libcxx/include/__locale_dir/support/newlib.h +243 -0
  605. package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
  606. package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
  607. package/libcxx/include/__locale_dir/support/windows.h +0 -29
  608. package/libcxx/include/__locale_dir/time.h +3 -7
  609. package/libcxx/include/__math/hypot.h +1 -1
  610. package/libcxx/include/__math/logarithms.h +1 -1
  611. package/libcxx/include/__math/traits.h +80 -11
  612. package/libcxx/include/__mdspan/extents.h +7 -4
  613. package/libcxx/include/__mdspan/layout_stride.h +4 -5
  614. package/libcxx/include/__mdspan/mdspan.h +29 -23
  615. package/libcxx/include/__memory/addressof.h +7 -5
  616. package/libcxx/include/__memory/align.h +18 -1
  617. package/libcxx/include/__memory/allocate_at_least.h +15 -10
  618. package/libcxx/include/__memory/allocator.h +14 -26
  619. package/libcxx/include/__memory/allocator_traits.h +6 -4
  620. package/libcxx/include/__memory/compressed_pair.h +15 -9
  621. package/libcxx/include/__memory/construct_at.h +12 -23
  622. package/libcxx/include/__memory/inout_ptr.h +1 -1
  623. package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
  624. package/libcxx/include/__memory/out_ptr.h +1 -1
  625. package/libcxx/include/__memory/pointer_traits.h +1 -1
  626. package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
  627. package/libcxx/include/__memory/shared_count.h +9 -30
  628. package/libcxx/include/__memory/shared_ptr.h +100 -145
  629. package/libcxx/include/__memory/temp_value.h +1 -2
  630. package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
  631. package/libcxx/include/__memory/unique_ptr.h +14 -16
  632. package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
  633. package/libcxx/include/__memory_resource/memory_resource.h +4 -2
  634. package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
  635. package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
  636. package/libcxx/include/__memory_resource/pool_options.h +1 -1
  637. package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
  638. package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
  639. package/libcxx/include/__mutex/mutex.h +2 -2
  640. package/libcxx/include/__mutex/once_flag.h +14 -11
  641. package/libcxx/include/__mutex/tag_types.h +3 -3
  642. package/libcxx/include/__mutex/unique_lock.h +8 -7
  643. package/libcxx/include/__new/align_val_t.h +6 -0
  644. package/libcxx/include/__new/allocate.h +1 -2
  645. package/libcxx/include/__new/exceptions.h +8 -2
  646. package/libcxx/include/__new/global_new_delete.h +4 -11
  647. package/libcxx/include/__new/interference_size.h +0 -4
  648. package/libcxx/include/__new/launder.h +3 -5
  649. package/libcxx/include/__new/nothrow_t.h +1 -1
  650. package/libcxx/include/__numeric/gcd_lcm.h +24 -34
  651. package/libcxx/include/__numeric/midpoint.h +9 -14
  652. package/libcxx/include/__numeric/pstl.h +2 -2
  653. package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
  654. package/libcxx/include/__ostream/basic_ostream.h +8 -8
  655. package/libcxx/include/__pstl/backends/default.h +14 -14
  656. package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
  657. package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
  658. package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
  659. package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
  660. package/libcxx/include/__random/binomial_distribution.h +10 -4
  661. package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
  662. package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
  663. package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
  664. package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
  665. package/libcxx/include/__ranges/adjacent_view.h +419 -0
  666. package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
  667. package/libcxx/include/__ranges/chunk_by_view.h +6 -6
  668. package/libcxx/include/__ranges/common_view.h +7 -7
  669. package/libcxx/include/__ranges/drop_view.h +8 -8
  670. package/libcxx/include/__ranges/drop_while_view.h +5 -5
  671. package/libcxx/include/__ranges/elements_of.h +49 -0
  672. package/libcxx/include/__ranges/empty_view.h +5 -5
  673. package/libcxx/include/__ranges/filter_view.h +10 -10
  674. package/libcxx/include/__ranges/iota_view.h +41 -22
  675. package/libcxx/include/__ranges/owning_view.h +15 -15
  676. package/libcxx/include/__ranges/ref_view.h +6 -6
  677. package/libcxx/include/__ranges/repeat_view.h +17 -10
  678. package/libcxx/include/__ranges/single_view.h +8 -8
  679. package/libcxx/include/__ranges/take_view.h +9 -9
  680. package/libcxx/include/__ranges/transform_view.h +1 -2
  681. package/libcxx/include/__ranges/view_interface.h +10 -10
  682. package/libcxx/include/__ranges/zip_transform_view.h +357 -0
  683. package/libcxx/include/__ranges/zip_view.h +20 -20
  684. package/libcxx/include/__split_buffer +612 -240
  685. package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
  686. package/libcxx/include/__stop_token/stop_callback.h +2 -2
  687. package/libcxx/include/__stop_token/stop_source.h +1 -1
  688. package/libcxx/include/__stop_token/stop_state.h +4 -4
  689. package/libcxx/include/__stop_token/stop_token.h +1 -1
  690. package/libcxx/include/__string/char_traits.h +51 -31
  691. package/libcxx/include/__string/constexpr_c_functions.h +5 -5
  692. package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
  693. package/libcxx/include/__system_error/error_category.h +8 -8
  694. package/libcxx/include/__system_error/error_code.h +5 -5
  695. package/libcxx/include/__system_error/error_condition.h +4 -4
  696. package/libcxx/include/__system_error/system_error.h +1 -1
  697. package/libcxx/include/__thread/id.h +1 -1
  698. package/libcxx/include/__thread/jthread.h +1 -1
  699. package/libcxx/include/__thread/poll_with_backoff.h +27 -8
  700. package/libcxx/include/__thread/support/c11.h +8 -8
  701. package/libcxx/include/__thread/support/pthread.h +8 -8
  702. package/libcxx/include/__thread/support/windows.h +8 -8
  703. package/libcxx/include/__thread/thread.h +13 -8
  704. package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
  705. package/libcxx/include/__tree +849 -701
  706. package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
  707. package/libcxx/include/__tuple/tuple_element.h +0 -12
  708. package/libcxx/include/__tuple/tuple_size.h +0 -4
  709. package/libcxx/include/__tuple/tuple_transform.h +45 -0
  710. package/libcxx/include/__type_traits/aligned_storage.h +13 -40
  711. package/libcxx/include/__type_traits/desugars_to.h +4 -0
  712. package/libcxx/include/__type_traits/invoke.h +8 -0
  713. package/libcxx/include/__type_traits/is_allocator.h +6 -7
  714. package/libcxx/include/__type_traits/is_array.h +26 -0
  715. package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
  716. package/libcxx/include/__type_traits/is_final.h +1 -1
  717. package/libcxx/include/__type_traits/is_floating_point.h +7 -6
  718. package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
  719. package/libcxx/include/__type_traits/is_specialization.h +2 -6
  720. package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
  721. package/libcxx/include/__type_traits/make_transparent.h +52 -0
  722. package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
  723. package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
  724. package/libcxx/include/__utility/cmp.h +19 -7
  725. package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
  726. package/libcxx/include/__utility/in_place.h +1 -1
  727. package/libcxx/include/__utility/integer_sequence.h +56 -41
  728. package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
  729. package/libcxx/include/__utility/pair.h +22 -25
  730. package/libcxx/include/__utility/scope_guard.h +2 -0
  731. package/libcxx/include/__utility/try_key_extraction.h +114 -0
  732. package/libcxx/include/__vector/vector.h +187 -160
  733. package/libcxx/include/__vector/vector_bool.h +76 -83
  734. package/libcxx/include/any +118 -155
  735. package/libcxx/include/array +88 -56
  736. package/libcxx/include/atomic +2 -0
  737. package/libcxx/include/barrier +20 -24
  738. package/libcxx/include/bitset +49 -30
  739. package/libcxx/include/ccomplex +3 -11
  740. package/libcxx/include/chrono +47 -0
  741. package/libcxx/include/ciso646 +3 -6
  742. package/libcxx/include/complex +77 -65
  743. package/libcxx/include/complex.h +10 -10
  744. package/libcxx/include/condition_variable +3 -3
  745. package/libcxx/include/cstdalign +3 -10
  746. package/libcxx/include/cstdbool +3 -10
  747. package/libcxx/include/ctgmath +2 -11
  748. package/libcxx/include/ctype.h +24 -24
  749. package/libcxx/include/cwchar +2 -2
  750. package/libcxx/include/deque +109 -225
  751. package/libcxx/include/errno.h +269 -269
  752. package/libcxx/include/exception +4 -1
  753. package/libcxx/include/ext/hash_map +7 -48
  754. package/libcxx/include/ext/hash_set +2 -8
  755. package/libcxx/include/fenv.h +43 -43
  756. package/libcxx/include/flat_map +663 -11
  757. package/libcxx/include/flat_set +543 -8
  758. package/libcxx/include/float.h +16 -16
  759. package/libcxx/include/forward_list +33 -53
  760. package/libcxx/include/fstream +57 -42
  761. package/libcxx/include/future +41 -51
  762. package/libcxx/include/initializer_list +9 -3
  763. package/libcxx/include/inttypes.h +16 -16
  764. package/libcxx/include/ios +28 -28
  765. package/libcxx/include/istream +19 -13
  766. package/libcxx/include/iterator +10 -0
  767. package/libcxx/include/latch +7 -5
  768. package/libcxx/include/limits +4 -4
  769. package/libcxx/include/list +61 -79
  770. package/libcxx/include/map +386 -274
  771. package/libcxx/include/math.h +19 -0
  772. package/libcxx/include/mdspan +1 -5
  773. package/libcxx/include/mutex +29 -19
  774. package/libcxx/include/optional +644 -149
  775. package/libcxx/include/print +9 -5
  776. package/libcxx/include/queue +39 -37
  777. package/libcxx/include/ranges +48 -0
  778. package/libcxx/include/regex +33 -31
  779. package/libcxx/include/scoped_allocator +16 -11
  780. package/libcxx/include/semaphore +15 -18
  781. package/libcxx/include/set +220 -192
  782. package/libcxx/include/shared_mutex +3 -8
  783. package/libcxx/include/span +53 -37
  784. package/libcxx/include/sstream +34 -28
  785. package/libcxx/include/stack +13 -15
  786. package/libcxx/include/stddef.h +10 -10
  787. package/libcxx/include/stdexcept +2 -2
  788. package/libcxx/include/stdio.h +20 -21
  789. package/libcxx/include/streambuf +59 -19
  790. package/libcxx/include/string +574 -573
  791. package/libcxx/include/string_view +113 -89
  792. package/libcxx/include/strstream +10 -10
  793. package/libcxx/include/syncstream +4 -4
  794. package/libcxx/include/tgmath.h +12 -12
  795. package/libcxx/include/tuple +242 -212
  796. package/libcxx/include/type_traits +8 -2
  797. package/libcxx/include/typeindex +5 -3
  798. package/libcxx/include/typeinfo +92 -89
  799. package/libcxx/include/unordered_map +179 -304
  800. package/libcxx/include/unordered_set +168 -195
  801. package/libcxx/include/utility +12 -0
  802. package/libcxx/include/valarray +106 -161
  803. package/libcxx/include/variant +25 -33
  804. package/libcxx/include/version +41 -24
  805. package/libcxx/include/wctype.h +29 -29
  806. package/libcxx/libc/hdr/errno_macros.h +3 -1
  807. package/libcxx/libc/hdr/stdint_proxy.h +18 -0
  808. package/libcxx/libc/hdr/types/wchar_t.h +23 -0
  809. package/libcxx/libc/hdr/wchar_overlay.h +69 -0
  810. package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
  811. package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
  812. package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
  813. package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
  814. package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
  815. package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
  816. package/libcxx/libc/shared/libc_common.h +5 -0
  817. package/libcxx/libc/src/__support/CPP/bit.h +50 -12
  818. package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
  819. package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
  820. package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
  821. package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
  822. package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
  823. package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
  824. package/libcxx/libc/src/__support/big_int.h +14 -14
  825. package/libcxx/libc/src/__support/common.h +3 -2
  826. package/libcxx/libc/src/__support/ctype_utils.h +19 -12
  827. package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
  828. package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
  829. package/libcxx/libc/src/__support/libc_assert.h +2 -0
  830. package/libcxx/libc/src/__support/macros/attributes.h +44 -1
  831. package/libcxx/libc/src/__support/macros/config.h +23 -0
  832. package/libcxx/libc/src/__support/macros/null_check.h +1 -2
  833. package/libcxx/libc/src/__support/macros/optimization.h +3 -0
  834. package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
  835. package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
  836. package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
  837. package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
  838. package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
  839. package/libcxx/libc/src/__support/math_extras.h +20 -4
  840. package/libcxx/libc/src/__support/str_to_float.h +98 -125
  841. package/libcxx/libc/src/__support/str_to_integer.h +39 -27
  842. package/libcxx/libc/src/__support/wctype_utils.h +588 -0
  843. package/libcxx/src/any.cpp +4 -0
  844. package/libcxx/src/atomic.cpp +365 -80
  845. package/libcxx/src/barrier.cpp +4 -3
  846. package/libcxx/src/charconv.cpp +6 -3
  847. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  848. package/libcxx/src/error_category.cpp +3 -1
  849. package/libcxx/src/exception.cpp +2 -10
  850. package/libcxx/src/experimental/time_zone.cpp +1 -1
  851. package/libcxx/src/experimental/tzdb.cpp +4 -1
  852. package/libcxx/src/filesystem/error.h +4 -22
  853. package/libcxx/src/filesystem/format_string.h +9 -18
  854. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  855. package/libcxx/src/filesystem/operations.cpp +2 -9
  856. package/libcxx/src/filesystem/path.cpp +3 -1
  857. package/libcxx/src/include/aligned_alloc.h +65 -0
  858. package/libcxx/src/include/config_elast.h +1 -1
  859. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  860. package/libcxx/src/include/overridable_function.h +8 -10
  861. package/libcxx/src/iostream.cpp +56 -37
  862. package/libcxx/src/locale.cpp +213 -196
  863. package/libcxx/src/memory.cpp +12 -14
  864. package/libcxx/src/mutex_destructor.cpp +1 -1
  865. package/libcxx/src/new.cpp +5 -5
  866. package/libcxx/src/optional.cpp +4 -0
  867. package/libcxx/src/print.cpp +9 -1
  868. package/libcxx/src/random.cpp +0 -26
  869. package/libcxx/src/string.cpp +10 -25
  870. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  871. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  872. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  873. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  874. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  875. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  876. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  877. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  878. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  879. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  880. package/libcxx/src/system_error.cpp +2 -0
  881. package/libcxx/src/thread.cpp +1 -3
  882. package/libcxx/src/valarray.cpp +1 -2
  883. package/libcxx/src/vector.cpp +2 -2
  884. package/libcxxabi/include/__cxxabi_config.h +42 -23
  885. package/libcxxabi/src/cxa_exception.cpp +4 -2
  886. package/libcxxabi/src/cxa_exception.h +16 -14
  887. package/libcxxabi/src/cxa_personality.cpp +126 -9
  888. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  889. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  890. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  891. package/libcxxabi/src/demangle/Utility.h +21 -7
  892. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  893. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  894. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  895. package/libtsan/LICENSE.TXT +311 -0
  896. package/libtsan/builtins/assembly.h +41 -8
  897. package/libtsan/interception/interception_win.cpp +4 -0
  898. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  899. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  900. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  901. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  902. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  903. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  904. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  905. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  906. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  907. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  908. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  909. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  910. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  911. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  912. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  913. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  914. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  915. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  916. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  917. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  918. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  919. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  920. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  921. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  922. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  923. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  924. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  925. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  926. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  927. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  928. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  929. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  930. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  931. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  932. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  933. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  934. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  935. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  936. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  937. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  938. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  939. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  940. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  941. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  942. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  943. package/libtsan/tsan_debugging.cpp +2 -2
  944. package/libtsan/tsan_flags.cpp +37 -0
  945. package/libtsan/tsan_flags.h +8 -0
  946. package/libtsan/tsan_flags.inc +12 -0
  947. package/libtsan/tsan_interceptors.h +9 -1
  948. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  949. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  950. package/libtsan/tsan_interface.h +3 -3
  951. package/libtsan/tsan_interface_ann.cpp +23 -9
  952. package/libtsan/tsan_mman.cpp +18 -4
  953. package/libtsan/tsan_platform.h +44 -7
  954. package/libtsan/tsan_platform_linux.cpp +42 -14
  955. package/libtsan/tsan_platform_mac.cpp +16 -3
  956. package/libtsan/tsan_report.h +14 -1
  957. package/libtsan/tsan_rtl.cpp +14 -0
  958. package/libtsan/tsan_rtl.h +7 -2
  959. package/libtsan/tsan_rtl_aarch64.S +3 -5
  960. package/libtsan/tsan_rtl_access.cpp +8 -3
  961. package/libtsan/tsan_rtl_amd64.S +2 -0
  962. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  963. package/libtsan/tsan_rtl_report.cpp +132 -65
  964. package/libtsan/tsan_rtl_thread.cpp +31 -9
  965. package/libtsan/tsan_symbolize.cpp +1 -1
  966. package/libtsan/tsan_symbolize.h +1 -1
  967. package/libtsan/tsan_trace.h +1 -1
  968. package/libunwind/include/__libunwind_config.h +11 -2
  969. package/libunwind/include/libunwind.h +117 -11
  970. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  971. package/libunwind/src/AddressSpace.hpp +42 -20
  972. package/libunwind/src/CompactUnwinder.hpp +16 -5
  973. package/libunwind/src/DwarfInstructions.hpp +24 -13
  974. package/libunwind/src/DwarfParser.hpp +62 -23
  975. package/libunwind/src/EHHeaderParser.hpp +7 -4
  976. package/libunwind/src/Registers.hpp +226 -22
  977. package/libunwind/src/Unwind-seh.cpp +6 -7
  978. package/libunwind/src/Unwind-wasm.c +7 -7
  979. package/libunwind/src/UnwindCursor.hpp +167 -49
  980. package/libunwind/src/UnwindLevel1.c +46 -17
  981. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  982. package/libunwind/src/UnwindRegistersSave.S +86 -2
  983. package/libunwind/src/assembly.h +5 -1
  984. package/libunwind/src/config.h +9 -0
  985. package/libunwind/src/gcc_personality_v0.c +79 -6
  986. package/libunwind/src/libunwind.cpp +104 -4
  987. package/libunwind/src/libunwind_ext.h +7 -1
  988. package/libunwind/src/shadow_stack_unwind.h +2 -2
  989. package/lldb/pretty_printers.py +948 -0
  990. package/package.json +1 -1
  991. package/std/Build/Cache/Path.zig +9 -2
  992. package/std/Build/Cache.zig +16 -7
  993. package/std/Build/Configuration.zig +3436 -0
  994. package/std/Build/Module.zig +99 -225
  995. package/std/Build/Step/CheckFile.zig +17 -63
  996. package/std/Build/Step/Compile.zig +97 -1420
  997. package/std/Build/Step/ConfigHeader.zig +55 -944
  998. package/std/Build/Step/Fail.zig +10 -20
  999. package/std/Build/Step/FindProgram.zig +31 -0
  1000. package/std/Build/Step/Fmt.zig +22 -57
  1001. package/std/Build/Step/InstallArtifact.zig +26 -141
  1002. package/std/Build/Step/InstallDir.zig +14 -67
  1003. package/std/Build/Step/InstallFile.zig +12 -21
  1004. package/std/Build/Step/ObjCopy.zig +82 -199
  1005. package/std/Build/Step/Options.zig +26 -261
  1006. package/std/Build/Step/Run.zig +139 -2214
  1007. package/std/Build/Step/TranslateC.zig +55 -164
  1008. package/std/Build/Step/UpdateSourceFiles.zig +38 -91
  1009. package/std/Build/Step/WriteFile.zig +113 -328
  1010. package/std/Build/Step.zig +45 -916
  1011. package/std/Build/abi.zig +1 -1
  1012. package/std/Build.zig +644 -718
  1013. package/std/Io/Dir.zig +12 -7
  1014. package/std/Io/Dispatch.zig +8 -18
  1015. package/std/Io/File/Writer.zig +8 -6
  1016. package/std/Io/File.zig +6 -9
  1017. package/std/Io/Kqueue.zig +3 -3
  1018. package/std/Io/Reader.zig +8 -14
  1019. package/std/Io/RwLock.zig +2 -0
  1020. package/std/Io/Semaphore.zig +112 -17
  1021. package/std/Io/Terminal.zig +1 -1
  1022. package/std/Io/Threaded.zig +176 -39
  1023. package/std/Io/Uring.zig +18 -20
  1024. package/std/Io/Writer.zig +75 -10
  1025. package/std/Io/net/HostName.zig +11 -6
  1026. package/std/Io/net.zig +11 -11
  1027. package/std/Io.zig +111 -38
  1028. package/std/Random/ChaCha.zig +2 -2
  1029. package/std/Random/benchmark.zig +2 -2
  1030. package/std/Random.zig +6 -6
  1031. package/std/SemanticVersion.zig +1 -1
  1032. package/std/Target/Query.zig +4 -5
  1033. package/std/Target/aarch64.zig +620 -77
  1034. package/std/Target/amdgcn.zig +421 -21
  1035. package/std/Target/arm.zig +40 -6
  1036. package/std/Target/bpf.zig +6 -0
  1037. package/std/Target/hexagon.zig +41 -6
  1038. package/std/Target/loongarch.zig +18 -0
  1039. package/std/Target/mips.zig +6 -0
  1040. package/std/Target/nvptx.zig +58 -35
  1041. package/std/Target/powerpc.zig +27 -19
  1042. package/std/Target/riscv.zig +512 -177
  1043. package/std/Target/sparc.zig +17 -0
  1044. package/std/Target/spirv.zig +1 -1
  1045. package/std/Target/wasm.zig +7 -0
  1046. package/std/Target/x86.zig +200 -31
  1047. package/std/Target/xtensa.zig +65 -0
  1048. package/std/Target.zig +94 -59
  1049. package/std/Thread.zig +17 -4
  1050. package/std/array_hash_map.zig +103 -57
  1051. package/std/array_list.zig +20 -35
  1052. package/std/ascii.zig +0 -9
  1053. package/std/atomic.zig +2 -0
  1054. package/std/base64.zig +5 -5
  1055. package/std/bit_set.zig +85 -93
  1056. package/std/c/haiku.zig +3 -0
  1057. package/std/c/serenity.zig +1 -6
  1058. package/std/c.zig +123 -32
  1059. package/std/compress/flate/Decompress.zig +3 -4
  1060. package/std/compress/zstd/Decompress.zig +7 -9
  1061. package/std/crypto/25519/curve25519.zig +2 -2
  1062. package/std/crypto/25519/edwards25519.zig +3 -3
  1063. package/std/crypto/25519/ristretto255.zig +2 -2
  1064. package/std/crypto/25519/scalar.zig +6 -6
  1065. package/std/crypto/25519/x25519.zig +1 -1
  1066. package/std/crypto/Certificate.zig +14 -2
  1067. package/std/crypto/Sha1.zig +1 -1
  1068. package/std/crypto/aegis.zig +45 -39
  1069. package/std/crypto/aes_ccm.zig +22 -22
  1070. package/std/crypto/aes_gcm.zig +10 -12
  1071. package/std/crypto/aes_ocb.zig +9 -9
  1072. package/std/crypto/argon2.zig +15 -15
  1073. package/std/crypto/ascon.zig +75 -35
  1074. package/std/crypto/bcrypt.zig +20 -10
  1075. package/std/crypto/benchmark.zig +7 -7
  1076. package/std/crypto/blake2.zig +100 -64
  1077. package/std/crypto/cbc_mac.zig +1 -1
  1078. package/std/crypto/chacha20.zig +10 -10
  1079. package/std/crypto/cmac.zig +3 -3
  1080. package/std/crypto/codecs/asn1/Oid.zig +12 -1
  1081. package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
  1082. package/std/crypto/codecs/asn1.zig +1 -1
  1083. package/std/crypto/codecs/base64_hex_ct.zig +3 -5
  1084. package/std/crypto/ecdsa.zig +9 -9
  1085. package/std/crypto/ff.zig +4 -5
  1086. package/std/crypto/ghash_polyval.zig +4 -4
  1087. package/std/crypto/hkdf.zig +1 -1
  1088. package/std/crypto/isap.zig +3 -3
  1089. package/std/crypto/kangarootwelve.zig +1 -1
  1090. package/std/crypto/keccak_p.zig +8 -8
  1091. package/std/crypto/md5.zig +1 -1
  1092. package/std/crypto/ml_dsa.zig +39 -39
  1093. package/std/crypto/ml_kem.zig +12 -34
  1094. package/std/crypto/modes.zig +2 -2
  1095. package/std/crypto/pbkdf2.zig +1 -1
  1096. package/std/crypto/pcurves/common.zig +4 -5
  1097. package/std/crypto/pcurves/p256/scalar.zig +3 -3
  1098. package/std/crypto/pcurves/p384/scalar.zig +2 -2
  1099. package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
  1100. package/std/crypto/pcurves/tests/p256.zig +5 -5
  1101. package/std/crypto/pcurves/tests/p384.zig +5 -5
  1102. package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
  1103. package/std/crypto/salsa20.zig +8 -14
  1104. package/std/crypto/sha2.zig +2 -2
  1105. package/std/crypto/sha3.zig +2 -4
  1106. package/std/crypto/siphash.zig +1 -1
  1107. package/std/crypto/timing_safe.zig +10 -9
  1108. package/std/crypto/tls/Client.zig +89 -13
  1109. package/std/crypto/tls.zig +1 -1
  1110. package/std/crypto.zig +4 -3
  1111. package/std/debug/Dwarf.zig +21 -12
  1112. package/std/debug/Pdb.zig +25 -17
  1113. package/std/debug/SelfInfo/Elf.zig +1 -0
  1114. package/std/debug/cpu_context.zig +168 -24
  1115. package/std/debug.zig +17 -9
  1116. package/std/deque.zig +1 -1
  1117. package/std/elf.zig +22 -5
  1118. package/std/enums.zig +8 -20
  1119. package/std/fmt/float.zig +2 -0
  1120. package/std/fmt/parse_float/decimal.zig +1 -1
  1121. package/std/fmt/parse_float.zig +1 -1
  1122. package/std/fmt.zig +7 -8
  1123. package/std/fs/path.zig +7 -5
  1124. package/std/hash/Adler32.zig +3 -3
  1125. package/std/hash/benchmark.zig +2 -2
  1126. package/std/hash/wyhash.zig +2 -2
  1127. package/std/hash/xxhash.zig +0 -6
  1128. package/std/hash_map.zig +22 -2
  1129. package/std/heap/ArenaAllocator.zig +3 -5
  1130. package/std/heap/BufferFirstAllocator.zig +165 -0
  1131. package/std/heap/SafeAllocator.zig +2180 -0
  1132. package/std/heap/debug_allocator.zig +2 -2
  1133. package/std/heap/memory_pool.zig +34 -197
  1134. package/std/heap.zig +20 -133
  1135. package/std/http.zig +4 -5
  1136. package/std/json/Scanner.zig +2 -2
  1137. package/std/json/static.zig +2 -2
  1138. package/std/json.zig +1 -1
  1139. package/std/{builtin → lang}/assembly.zig +71 -0
  1140. package/std/{builtin.zig → lang.zig} +5 -3
  1141. package/std/leb128.zig +2 -2
  1142. package/std/math/acos.zig +6 -0
  1143. package/std/math/asin.zig +6 -0
  1144. package/std/math/atan.zig +5 -0
  1145. package/std/math/big/int.zig +5 -5
  1146. package/std/math/big.zig +4 -4
  1147. package/std/math/copysign.zig +1 -1
  1148. package/std/math/float.zig +62 -0
  1149. package/std/math/frexp.zig +4 -4
  1150. package/std/math/hypot.zig +4 -0
  1151. package/std/math/ilogb.zig +1 -1
  1152. package/std/math/isfinite.zig +1 -1
  1153. package/std/math/isinf.zig +1 -1
  1154. package/std/math/isnan.zig +1 -2
  1155. package/std/math/isnormal.zig +2 -2
  1156. package/std/math/iszero.zig +2 -2
  1157. package/std/math/ldexp.zig +2 -2
  1158. package/std/math/log10.zig +0 -2
  1159. package/std/math/modf.zig +1 -2
  1160. package/std/math/nextafter.zig +3 -4
  1161. package/std/math/pow.zig +1 -1
  1162. package/std/math/powi.zig +2 -3
  1163. package/std/math/signbit.zig +0 -1
  1164. package/std/math.zig +21 -26
  1165. package/std/mem/Allocator.zig +5 -9
  1166. package/std/mem.zig +52 -75
  1167. package/std/meta/trailer_flags.zig +1 -1
  1168. package/std/meta.zig +4 -36
  1169. package/std/multi_array_list.zig +24 -0
  1170. package/std/os/emscripten.zig +7 -6
  1171. package/std/os/linux/IoUring.zig +2 -0
  1172. package/std/os/linux/alpha.zig +358 -0
  1173. package/std/os/linux/arm.zig +0 -26
  1174. package/std/os/linux/bpf.zig +6 -0
  1175. package/std/os/linux/ioctl.zig +3 -2
  1176. package/std/os/linux/syscalls.zig +528 -1
  1177. package/std/os/linux/tls.zig +12 -1
  1178. package/std/os/linux/x86.zig +2 -2
  1179. package/std/os/linux/xtensa.zig +171 -0
  1180. package/std/os/linux.zig +794 -52
  1181. package/std/os/plan9.zig +1 -1
  1182. package/std/os/uefi/hii.zig +1 -1
  1183. package/std/os/uefi/tables/boot_services.zig +9 -8
  1184. package/std/os/uefi/tables/runtime_services.zig +1 -1
  1185. package/std/os/windows.zig +130 -1
  1186. package/std/os.zig +36 -0
  1187. package/std/pie.zig +21 -0
  1188. package/std/posix.zig +2 -2
  1189. package/std/process/Child.zig +20 -0
  1190. package/std/process/Environ.zig +28 -4
  1191. package/std/process.zig +13 -5
  1192. package/std/simd.zig +4 -21
  1193. package/std/start.zig +45 -12
  1194. package/std/std.zig +8 -1
  1195. package/std/tar/Writer.zig +39 -33
  1196. package/std/tar.zig +8 -4
  1197. package/std/testing.zig +68 -15
  1198. package/std/unicode.zig +13 -8
  1199. package/std/zig/Ast/Render.zig +6 -30
  1200. package/std/zig/Ast.zig +12 -37
  1201. package/std/zig/AstGen.zig +174 -258
  1202. package/std/zig/AstRlAnnotate.zig +1 -11
  1203. package/std/zig/AstSmith.zig +5 -11
  1204. package/std/zig/ErrorBundle.zig +6 -2
  1205. package/std/zig/LibCDirs.zig +14 -7
  1206. package/std/zig/LibCInstallation.zig +50 -14
  1207. package/std/zig/Parse.zig +11 -76
  1208. package/std/zig/PkgConfig.zig +146 -0
  1209. package/std/zig/TokenSmith.zig +0 -6
  1210. package/std/zig/WindowsSdk.zig +18 -18
  1211. package/std/zig/Zir.zig +15 -69
  1212. package/std/zig/ZonGen.zig +19 -27
  1213. package/std/zig/llvm/Builder.zig +39 -33
  1214. package/std/zig/llvm/bitcode_writer.zig +3 -3
  1215. package/std/zig/llvm/ir.zig +8 -8
  1216. package/std/zig/system/arm.zig +56 -2
  1217. package/std/zig/system/linux.zig +4 -0
  1218. package/std/zig/system/loongarch.zig +25 -9
  1219. package/std/zig/system/windows.zig +34 -1
  1220. package/std/zig/system/x86.zig +60 -16
  1221. package/std/zig/system.zig +18 -25
  1222. package/std/zig/target.zig +1 -4
  1223. package/std/zig/tokenizer.zig +4 -43
  1224. package/std/zig.zig +98 -22
  1225. package/std/zip.zig +5 -5
  1226. package/std/zon/Serializer.zig +6 -2
  1227. package/std/zon/parse.zig +1 -1
  1228. package/zig.h +24 -2
  1229. package/compiler/build_runner.zig +0 -1857
  1230. package/compiler_rt/long_double.zig +0 -37
  1231. package/include/amxbf16transposeintrin.h +0 -94
  1232. package/include/amxcomplextransposeintrin.h +0 -303
  1233. package/include/amxfp16transposeintrin.h +0 -94
  1234. package/include/amxmovrstransposeintrin.h +0 -200
  1235. package/include/amxtf32transposeintrin.h +0 -105
  1236. package/include/amxtransposeintrin.h +0 -248
  1237. package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
  1238. package/libc/include/mips64el-openbsd-none/loongson/hibernate.h +0 -33
  1239. package/libc/include/mips64el-openbsd-none/loongson/hibernate_var.h +0 -39
  1240. package/libc/include/mips64el-openbsd-none/machine/hibernate.h +0 -33
  1241. package/libc/include/mips64el-openbsd-none/machine/hibernate_var.h +0 -39
  1242. package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
  1243. package/libc/mingw/math/lrintl.c +0 -18
  1244. package/libc/mingw/math/rintl.c +0 -16
  1245. package/libc/mingw/winpthreads/spinlock.c +0 -82
  1246. package/libc/musl/src/linux/tee.c +0 -8
  1247. package/libc/musl/src/math/i386/lrintl.c +0 -8
  1248. package/libc/musl/src/math/i386/rintl.c +0 -7
  1249. package/libc/musl/src/math/lrintl.c +0 -36
  1250. package/libc/musl/src/math/rintl.c +0 -29
  1251. package/libc/musl/src/math/s390x/rintl.c +0 -15
  1252. package/libc/musl/src/math/x32/lrintl.s +0 -7
  1253. package/libc/musl/src/math/x32/rintl.s +0 -6
  1254. package/libc/musl/src/math/x86_64/lrintl.c +0 -8
  1255. package/libc/musl/src/math/x86_64/rintl.c +0 -7
  1256. package/libc/musl/src/string/strdup.c +0 -10
  1257. package/libc/musl/src/string/strndup.c +0 -12
  1258. package/libc/musl/src/string/wcsdup.c +0 -10
  1259. package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
  1260. package/libc/musl/src/thread/pthread_spin_init.c +0 -6
  1261. package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
  1262. package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
  1263. package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
  1264. package/libc/musl/src/unistd/dup2.c +0 -20
  1265. package/libc/musl/src/unistd/dup3.c +0 -26
  1266. package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
  1267. package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
  1268. package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
  1269. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  1270. package/std/Build/Step/CheckObject.zig +0 -2764
@@ -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 error.OutOfMemory,
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 = try astgen.string_bytes.toOwnedSlice(gpa),
249
- .extra = try astgen.extra.toOwnedSlice(gpa),
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.addBuiltinValue(callconv_expr, .calling_convention) } },
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.addBuiltinValue(node, .calling_convention_c)
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 sfba = std.heap.stackFallback(256, astgen.arena);
1780
- const sfba_allocator = sfba.get();
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(sfba_allocator, @intCast(struct_init.ast.fields.len));
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(sfba_allocator, name_index);
1782
+ const gop = try duplicate_names.getOrPut(bfa, name_index);
1793
1783
 
1794
1784
  if (gop.found_existing) {
1795
- try gop.value_ptr.append(sfba_allocator, name_token);
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(sfba_allocator, name_token);
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 countDefers(outer_scope: *Scope, inner_scope: *Scope) struct {
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 => |defer_scope| {
2999
- scope = defer_scope.parent;
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: DefersToEmit,
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
- .both_sans_err => {
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
- var local_val_scope: Scope.LocalVal = undefined;
3140
- var opt_remapped_err_code: Zir.Inst.OptionalIndex = .none;
3141
- const sub_scope = if (scope_tag != .defer_error) &defer_gen.base else blk: {
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 extra_insts: []const Zir.Inst.Index = if (opt_remapped_err_code.unwrap()) |ec| &.{ec} else &.{};
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, extra_insts);
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.addBuiltinValue(addrspace_node, .address_space);
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.addBuiltinValue(addrspace_expr, .address_space);
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.addBuiltinValue(callconv_expr, .calling_convention) } },
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.addBuiltinValue(decl_node, .calling_convention_inline);
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.addBuiltinValue(addrspace_node, .address_space);
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 = .{0} ** 16,
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.builtin.Type.ContainerLayout,
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.builtin.Type.ContainerLayout,
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.builtin.Type.ContainerLayout,
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.builtin.Type.ContainerLayout = if (container_decl.layout_token) |t| switch (tree.tokenTag(t)) {
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.builtin.Type.ContainerLayout = if (container_decl.layout_token) |t| switch (tree.tokenTag(t)) {
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 error.OutOfMemory,
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 error.OutOfMemory,
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 error.OutOfMemory,
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 error.OutOfMemory,
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, .{ .both = err_code });
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
- const defer_counts = countDefers(defer_outer, scope);
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.addUnNode(.ret_node, err_code, node);
8024
- return Zir.Inst.Ref.unreachable_value;
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
- const err_code = if (ri.rl == .ptr) try gz.addUnNode(.load, ri.rl.ptr.inst, node) else operand;
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
- const defer_counts = countDefers(defer_outer, scope);
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
- const which_ones: DefersToEmit = if (!defer_counts.need_err_code) .both_sans_err else .{
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
- if (ident_name_raw.len >= 2) integer: {
8154
- // Keep in sync with logic in `comptimeExpr2`.
8155
- const first_c = ident_name_raw[0];
8156
- if (first_c == 'i' or first_c == 'u') {
8157
- const signedness: std.builtin.Signedness = switch (first_c == 'i') {
8158
- true => .signed,
8159
- false => .unsigned,
8160
- };
8161
- if (ident_name_raw.len >= 3 and ident_name_raw[1] == '0') {
8162
- return astgen.failNode(
8163
- ident,
8164
- "primitive integer type '{s}' has leading zero",
8165
- .{ident_name_raw},
8166
- );
8167
- }
8168
- const bit_count = parseBitCount(ident_name_raw[1..]) catch |err| switch (err) {
8169
- error.Overflow => return astgen.failNode(
8170
- ident,
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 SFBA to optimize for the common case.
8408
- var sfba = std.heap.stackFallback(@sizeOf(usize) * 2, astgen.arena);
8409
- var intermediate_tunnels = try sfba.get().alloc(*Scope.Namespace, num_tunnels - 1);
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 error.OutOfMemory,
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.addBuiltinValue(clobbers_node, .clobbers),
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.addBuiltinValue(node, .branch_hint);
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.addBuiltinValue(node, .export_options);
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.addBuiltinValue(node, .extern_options);
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.addBuiltinValue(node, .float_mode);
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.addBuiltinValue(node, .signedness);
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.addBuiltinValue(node, .pointer_size);
9303
- const ptr_attrs_ty = try gz.addBuiltinValue(node, .pointer_attributes);
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.addBuiltinValue(node, .fn_attributes);
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.addBuiltinValue(node, .container_layout);
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.addBuiltinValue(node, .container_layout);
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.addBuiltinValue(node, .enum_mode);
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.addBuiltinValue(node, .reduce_op);
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.addBuiltinValue(node, .atomic_order);
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.addBuiltinValue(node, .atomic_order);
9544
- const atomic_rmw_op_type = try gz.addBuiltinValue(node, .atomic_rmw_op);
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.addBuiltinValue(node, .atomic_order);
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.addBuiltinValue(node, .call_modifier);
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.addBuiltinValue(node, .prefetch_options);
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.addBuiltinValue(node, .atomic_order);
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.builtin.CallModifier = blk: {
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
- .{ "u1", .u1_type },
10223
- .{ "u8", .u8_type },
10224
- .{ "undefined", .undef },
10140
+ .{ "i128", .i128_type },
10141
+ .{ "u256", .u256_type },
10225
10142
  .{ "usize", .usize_type },
10226
- .{ "void", .void_type },
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 addBuiltinValue(gz: *GenZir, src_node: Ast.Node.Index, val: Zir.Inst.BuiltinValue) !Zir.Inst.Ref {
11890
- return addExtendedNodeSmall(gz, .builtin_value, src_node, @intFromEnum(val));
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.builtin.Type.ContainerLayout,
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 SFBA to avoid using the GPA for small namespaces.
12930
- var sfba_state = std.heap.stackFallback(512, astgen.gpa);
12931
- const sfba = sfba_state.get();
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(sfba);
12938
- test_names.deinit(sfba);
12939
- decltest_names.deinit(sfba);
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(sfba, name.index);
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(sfba, name);
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(sfba, name_str_index);
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,