@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
package/std/Io/Writer.zig CHANGED
@@ -781,7 +781,7 @@ test splatByteAll {
781
781
  defer aw.deinit();
782
782
 
783
783
  try aw.writer.splatByteAll('7', 45);
784
- try testing.expectEqualStrings("7" ** 45, aw.writer.buffered());
784
+ try testing.expectEqualStrings(&@as([45]u8, @splat('7')), aw.writer.buffered());
785
785
  }
786
786
 
787
787
  pub fn splatBytePreserve(w: *Writer, preserve: usize, byte: u8, n: usize) Error!void {
@@ -802,12 +802,14 @@ pub fn splatBytePreserve(w: *Writer, preserve: usize, byte: u8, n: usize) Error!
802
802
  return;
803
803
  }
804
804
  }
805
- // All the next bytes received must be preserved.
806
- if (preserve < w.end) {
807
- @memmove(w.buffer[0..preserve], w.buffer[w.end - preserve ..][0..preserve]);
808
- w.end = preserve;
809
- }
810
- while (remaining > 0) remaining -= try w.splatByte(byte, remaining);
805
+ // Ensure the contract of `rebase` is upheld.
806
+ assert(w.end + remaining > w.buffer.len);
807
+ // Offset the amount preserved by the amount we have left to splat
808
+ // since the remaining splat is always going to be part of that
809
+ // preservation.
810
+ try w.vtable.rebase(w, preserve -| remaining, remaining);
811
+ @memset(w.buffer[w.end..][0..remaining], byte);
812
+ w.end += remaining;
811
813
  }
812
814
 
813
815
  /// Writes the same byte many times, allowing short writes.
@@ -1170,6 +1172,14 @@ pub fn printValue(
1170
1172
  },
1171
1173
  else => invalidFmtError(fmt, value),
1172
1174
  },
1175
+ 'q' => switch (@typeInfo(T)) {
1176
+ .pointer => |info| switch (info.size) {
1177
+ .one, .slice => return printStringEscaped(w, value),
1178
+ .many, .c => return printStringEscaped(w, std.mem.span(value)),
1179
+ },
1180
+ .array => return printStringEscaped(w, &value),
1181
+ else => invalidFmtError(fmt, value),
1182
+ },
1173
1183
  'B' => switch (@typeInfo(T)) {
1174
1184
  .int, .comptime_int => return w.printByteSize(value, .decimal, options),
1175
1185
  .@"struct" => return value.formatByteSize(w, .decimal),
@@ -1446,6 +1456,14 @@ fn printEnumNonexhaustive(w: *Writer, value: anytype) Error!void {
1446
1456
  try w.writeByte(')');
1447
1457
  }
1448
1458
 
1459
+ /// Prints a double quote, then escapes a string according to Zig string
1460
+ /// literal rules, then a double quote.
1461
+ pub fn printStringEscaped(w: *Writer, bytes: []const u8) Error!void {
1462
+ try w.writeByte('"');
1463
+ try std.zig.stringEscape(bytes, w);
1464
+ try w.writeByte('"');
1465
+ }
1466
+
1449
1467
  pub fn printVector(
1450
1468
  w: *Writer,
1451
1469
  comptime fmt: []const u8,
@@ -1517,7 +1535,7 @@ pub fn printIntAny(
1517
1535
  // The type must have the same size as `base` or be wider in order for the
1518
1536
  // division to work
1519
1537
  const min_int_bits = comptime @max(value_info.bits, 8);
1520
- const MinInt = std.meta.Int(.unsigned, min_int_bits);
1538
+ const MinInt = @Int(.unsigned, min_int_bits);
1521
1539
 
1522
1540
  const abs_value = @abs(value);
1523
1541
  // The worst case in terms of space needed is base 2, plus 1 for the sign
@@ -1637,7 +1655,7 @@ pub fn printFloatHex(w: *Writer, value: anytype, case: std.fmt.Case, opt_precisi
1637
1655
  });
1638
1656
 
1639
1657
  const T = @TypeOf(v);
1640
- const TU = std.meta.Int(.unsigned, @bitSizeOf(T));
1658
+ const TU = @Int(.unsigned, @bitSizeOf(T));
1641
1659
 
1642
1660
  const mantissa_bits = std.math.floatMantissaBits(T);
1643
1661
  const fractional_bits = std.math.floatFractionalBits(T);
@@ -1924,7 +1942,6 @@ test "serialize signed LEB128" {
1924
1942
  try testLeb128Encoding(i128, std.math.minInt(i128), "\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7E");
1925
1943
 
1926
1944
  // Specific cases
1927
- try testLeb128Encoding(i0, 0, "\x00");
1928
1945
  try testLeb128Encoding(i8, 0, "\x00");
1929
1946
 
1930
1947
  try testLeb128Encoding(i2, -1, "\x7F");
@@ -2101,6 +2118,11 @@ test "printFloat with comptime_float" {
2101
2118
  try testing.expectFmt("1", "{}", .{1.0});
2102
2119
  }
2103
2120
 
2121
+ test "{q} format string" {
2122
+ const data: []const u8 = "i\tlike\"cheese\x00\x05cheese";
2123
+ try testing.expectFmt("hello \"i\\tlike\\\"cheese\\x00\\x05cheese\" world", "hello {q} world", .{data});
2124
+ }
2125
+
2104
2126
  fn testPrintIntCase(expected: []const u8, value: anytype, base: u8, case: std.fmt.Case, options: std.fmt.Options) !void {
2105
2127
  var buffer: [100]u8 = undefined;
2106
2128
  var w: Writer = .fixed(&buffer);
@@ -2888,3 +2910,46 @@ test "writableSlice with fixed writer" {
2888
2910
  try w.writeByte(1);
2889
2911
  try std.testing.expectError(error.WriteFailed, w.writableSlice(2));
2890
2912
  }
2913
+
2914
+ test splatBytePreserve {
2915
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 5, .splat_len = 5 });
2916
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 9, .preserve = 5, .splat_len = 2 });
2917
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 5, .splat_len = 6 });
2918
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 6, .splat_len = 6 });
2919
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 5, .splat_len = 10 });
2920
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 6, .splat_len = 10 });
2921
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 6, .splat_len = 11 });
2922
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 6, .splat_len = 80 });
2923
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 6, .splat_len = 85 });
2924
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 10, .splat_len = 6 });
2925
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 10, .splat_len = 11 });
2926
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 10, .splat_len = 80 });
2927
+ try testSplatBytePreserve(.{ .buf_len = 10, .fill_len = 5, .preserve = 10, .splat_len = 85 });
2928
+ }
2929
+
2930
+ fn testSplatBytePreserve(options: struct { buf_len: u4, fill_len: u4, preserve: u4, splat_len: u8 }) !void {
2931
+ assert(options.fill_len <= options.buf_len);
2932
+ assert(options.preserve <= options.buf_len);
2933
+
2934
+ const fill_buf = "abcdefghijklmno";
2935
+ const fill = fill_buf[0..options.fill_len];
2936
+ var expected_out_buf: [256]u8 = @splat('X');
2937
+ @memcpy(expected_out_buf[0..options.fill_len], fill);
2938
+ const expected_out = expected_out_buf[0 .. options.fill_len + options.splat_len];
2939
+ const expected_preserved = expected_out[expected_out.len -| options.preserve..];
2940
+
2941
+ var out_buf: [256]u8 = undefined;
2942
+ var fw: Writer = .fixed(&out_buf);
2943
+ var indirect_buffer: [16]u8 = undefined;
2944
+ var twi: std.testing.WriterIndirect = .init(&fw, indirect_buffer[0..options.buf_len]);
2945
+ const w = &twi.interface;
2946
+
2947
+ try w.writeAll(fill);
2948
+ try w.splatBytePreserve(options.preserve, 'X', options.splat_len);
2949
+
2950
+ try std.testing.expectEqualStrings(expected_preserved, w.buffer[w.end -| options.preserve..w.end]);
2951
+
2952
+ try w.flush();
2953
+
2954
+ try std.testing.expectEqualStrings(expected_out, fw.buffer[0..fw.end]);
2955
+ }
@@ -76,9 +76,14 @@ test validate {
76
76
  try validate("a-b.com");
77
77
  try validate("a.b.c.d.e.f.g");
78
78
  try validate("127.0.0.1"); // Also a valid hostname
79
- try validate("a" ** 63 ++ ".com"); // Label exactly 63 chars (valid)
80
- try validate("a." ** 127 ++ "a"); // Total length 255 (valid)
81
- try validate("a." ** 127 ++ "a."); // Total length 255 + trailing dot (valid)
79
+
80
+ const many_a: [63]u8 = @splat('a');
81
+ try validate(&many_a ++ ".com"); // Label exactly 63 chars (valid)
82
+
83
+ const many_a_dot_buf: [127][2]u8 = @splat(.{ 'a', '.' });
84
+ const many_a_dot: []const u8 = @ptrCast(&many_a_dot_buf);
85
+ try validate(many_a_dot ++ "a"); // Total length 255 (valid)
86
+ try validate(many_a_dot ++ "a."); // Total length 255 + trailing dot (valid)
82
87
 
83
88
  // Invalid hostnames
84
89
  try std.testing.expectError(error.InvalidHostName, validate(""));
@@ -92,9 +97,9 @@ test validate {
92
97
  try std.testing.expectError(error.InvalidHostName, validate("host_name.com"));
93
98
  try std.testing.expectError(error.InvalidHostName, validate("."));
94
99
  try std.testing.expectError(error.InvalidHostName, validate(".."));
95
- try std.testing.expectError(error.InvalidHostName, validate("a" ** 64 ++ ".com")); // Label length 64 (too long)
96
- try std.testing.expectError(error.NameTooLong, validate("a." ** 127 ++ "ab")); // Total length 256 (too long)
97
- try std.testing.expectError(error.NameTooLong, validate("a." ** 127 ++ "ab.")); // Total length 256 + trailing dot (too long)
100
+ try std.testing.expectError(error.InvalidHostName, validate(&many_a ++ "a.com")); // Label length 64 (too long)
101
+ try std.testing.expectError(error.NameTooLong, validate(many_a_dot ++ "ab")); // Total length 256 (too long)
102
+ try std.testing.expectError(error.NameTooLong, validate(many_a_dot ++ "ab.")); // Total length 256 + trailing dot (too long)
98
103
  }
99
104
 
100
105
  pub fn init(bytes: []const u8) ValidateError!HostName {
package/std/Io/net.zig CHANGED
@@ -1245,6 +1245,15 @@ pub const Stream = struct {
1245
1245
 
1246
1246
  const max_iovecs_len = 8;
1247
1247
 
1248
+ /// This is a low-level API that calls the `Io` interface function directly.
1249
+ /// For a higher level API, see `reader`.
1250
+ pub fn read(s: *const Stream, io: Io, data: [][]u8) Reader.Error!usize {
1251
+ return (try io.operate(.{ .net_read = .{
1252
+ .socket_handle = s.socket.handle,
1253
+ .data = data,
1254
+ } })).net_read;
1255
+ }
1256
+
1248
1257
  pub fn close(s: *const Stream, io: Io) void {
1249
1258
  io.vtable.netClose(io.userdata, (&s.socket.handle)[0..1]);
1250
1259
  }
@@ -1259,16 +1268,7 @@ pub const Stream = struct {
1259
1268
  stream: Stream,
1260
1269
  err: ?Error,
1261
1270
 
1262
- pub const Error = error{
1263
- SystemResources,
1264
- ConnectionResetByPeer,
1265
- Timeout,
1266
- SocketUnconnected,
1267
- /// The file descriptor does not hold the required rights to read
1268
- /// from it.
1269
- AccessDenied,
1270
- NetworkDown,
1271
- } || Io.Cancelable || Io.UnexpectedError;
1271
+ pub const Error = Io.Operation.NetRead.Error || Io.Cancelable;
1272
1272
 
1273
1273
  pub fn init(stream: Stream, io: Io, buffer: []u8) Reader {
1274
1274
  return .{
@@ -1302,7 +1302,7 @@ pub const Stream = struct {
1302
1302
  const dest_n, const data_size = try io_r.writableVector(&iovecs_buffer, data);
1303
1303
  const dest = iovecs_buffer[0..dest_n];
1304
1304
  assert(dest[0].len > 0);
1305
- const n = io.vtable.netRead(io.userdata, r.stream.socket.handle, dest) catch |err| {
1305
+ const n = r.stream.read(io, dest) catch |err| {
1306
1306
  r.err = err;
1307
1307
  return error.ReadFailed;
1308
1308
  };
package/std/Io.zig CHANGED
@@ -54,9 +54,6 @@ pub const VTable = struct {
54
54
  /// If it returns `null` it means `result` has been already populated and
55
55
  /// `await` will be a no-op.
56
56
  ///
57
- /// When this function returns non-null, the implementation guarantees that
58
- /// a unit of concurrency has been assigned to the returned task.
59
- ///
60
57
  /// Thread-safe.
61
58
  async: *const fn (
62
59
  /// Corresponds to `Io.userdata`.
@@ -111,10 +108,6 @@ pub const VTable = struct {
111
108
  result_alignment: std.mem.Alignment,
112
109
  ) void,
113
110
 
114
- /// When this function returns, implementation guarantees that `start` has
115
- /// either already been called, or a unit of concurrency has been assigned
116
- /// to the task of calling the function.
117
- ///
118
111
  /// Thread-safe.
119
112
  groupAsync: *const fn (
120
113
  /// Corresponds to `Io.userdata`.
@@ -243,8 +236,6 @@ pub const VTable = struct {
243
236
  netConnectUnix: *const fn (?*anyopaque, *const net.UnixAddress) net.UnixAddress.ConnectError!net.Socket.Handle,
244
237
  netSocketCreatePair: *const fn (?*anyopaque, net.Socket.CreatePairOptions) net.Socket.CreatePairError![2]net.Socket,
245
238
  netSend: *const fn (?*anyopaque, net.Socket.Handle, []net.OutgoingMessage, net.SendFlags) struct { ?net.Socket.SendError, usize },
246
- /// Returns 0 on end of stream.
247
- netRead: *const fn (?*anyopaque, src: net.Socket.Handle, data: [][]u8) net.Stream.Reader.Error!usize,
248
239
  netWrite: *const fn (?*anyopaque, dest: net.Socket.Handle, header: []const u8, data: []const []const u8, splat: usize) net.Stream.Writer.Error!usize,
249
240
  netWriteFile: *const fn (?*anyopaque, net.Socket.Handle, header: []const u8, *Io.File.Reader, Io.Limit) net.Stream.Writer.WriteFileError!usize,
250
241
  netClose: *const fn (?*anyopaque, handle: []const net.Socket.Handle) void,
@@ -261,6 +252,7 @@ pub const Operation = union(enum) {
261
252
  /// other systems this tag is unreachable.
262
253
  device_io_control: DeviceIoControl,
263
254
  net_receive: NetReceive,
255
+ net_read: NetRead,
264
256
 
265
257
  pub const Tag = @typeInfo(Operation).@"union".tag_type.?;
266
258
 
@@ -386,6 +378,23 @@ pub const Operation = union(enum) {
386
378
  pub const Result = struct { ?net.Socket.ReceiveError, usize };
387
379
  };
388
380
 
381
+ pub const NetRead = struct {
382
+ socket_handle: net.Socket.Handle,
383
+ data: [][]u8,
384
+
385
+ pub const Error = error{
386
+ SystemResources,
387
+ ConnectionResetByPeer,
388
+ SocketUnconnected,
389
+ /// The file descriptor does not hold the required rights to read
390
+ /// from it.
391
+ AccessDenied,
392
+ NetworkDown,
393
+ } || Io.UnexpectedError;
394
+
395
+ pub const Result = Error!usize;
396
+ };
397
+
389
398
  pub const Result = Result: {
390
399
  const operation_fields = @typeInfo(Operation).@"union".fields;
391
400
  var field_names: [operation_fields.len][]const u8 = undefined;
@@ -680,6 +689,13 @@ pub const Limit = enum(usize) {
680
689
  };
681
690
  }
682
691
 
692
+ pub fn toInt64(l: Limit) ?u64 {
693
+ return switch (l) {
694
+ else => @intFromEnum(l),
695
+ .unlimited => null,
696
+ };
697
+ }
698
+
683
699
  /// Reduces a slice to account for the limit, leaving room for one extra
684
700
  /// byte above the limit, allowing for the use case of differentiating
685
701
  /// between end-of-stream and reaching the limit.
@@ -874,7 +890,7 @@ pub const Clock = enum {
874
890
  if (t.clock == clock) return t;
875
891
  const now_old = t.clock.now(io);
876
892
  const now_new = clock.now(io);
877
- const duration = now_old.durationTo(t);
893
+ const duration = now_old.durationTo(t.raw);
878
894
  return .{
879
895
  .clock = clock,
880
896
  .raw = now_new.addDuration(duration),
@@ -1235,8 +1251,11 @@ pub const Group = struct {
1235
1251
  /// cancelation propagation boundary.
1236
1252
  ///
1237
1253
  /// Once this function is called, there are resources associated with the
1238
- /// group. To release those resources, `Group.await` or `Group.cancel` must
1239
- /// eventually be called.
1254
+ /// group. To release those resources, `await` or `cancel` must eventually
1255
+ /// be called.
1256
+ ///
1257
+ /// `function` is not guaranteed to have been called until `await` or
1258
+ /// `cancel` is called.
1240
1259
  pub fn async(g: *Group, io: Io, function: anytype, args: std.meta.ArgsTuple(@TypeOf(function))) void {
1241
1260
  const Args = @TypeOf(args);
1242
1261
  const TypeErased = struct {
@@ -1274,6 +1293,9 @@ pub const Group = struct {
1274
1293
  /// will also cause `error.Canceled` to be returned when the group
1275
1294
  /// does ultimately finish.
1276
1295
  ///
1296
+ /// After this function returns, all tasks of the `Group` created with
1297
+ /// `async` or `concurrent` are guaranteed to have run.
1298
+ ///
1277
1299
  /// Idempotent. Not threadsafe.
1278
1300
  ///
1279
1301
  /// It is safe to call this function concurrently with `Group.async` or
@@ -1288,6 +1310,9 @@ pub const Group = struct {
1288
1310
  /// Equivalent to `await` but immediately requests cancelation on all
1289
1311
  /// members of the group.
1290
1312
  ///
1313
+ /// After this function returns, all tasks of the `Group` created with
1314
+ /// `async` or `concurrent` are guaranteed to have run.
1315
+ ///
1291
1316
  /// For a description of cancelation and cancelation points, see `Future.cancel`.
1292
1317
  ///
1293
1318
  /// Idempotent. Not threadsafe.
@@ -1665,20 +1690,29 @@ pub const Condition = struct {
1665
1690
  .epoch = .init(0),
1666
1691
  };
1667
1692
 
1693
+ /// Blocks until the condition is signaled or canceled.
1694
+ ///
1695
+ /// See also:
1696
+ /// * `waitUncancelable`
1697
+ /// * `waitTimeout`
1668
1698
  pub fn wait(cond: *Condition, io: Io, mutex: *Mutex) Cancelable!void {
1669
- try waitInner(cond, io, mutex, false);
1699
+ waitTimeout(cond, io, mutex, .none) catch |err| switch (err) {
1700
+ error.Timeout => unreachable,
1701
+ error.Canceled => |e| return e,
1702
+ };
1670
1703
  }
1671
1704
 
1672
- /// Same as `wait`, except does not introduce a cancelation point.
1705
+ pub const WaitTimeoutError = Cancelable || Timeout.Error;
1706
+
1707
+ /// Blocks until the condition is signaled, canceled, or the provided
1708
+ /// timeout expires.
1673
1709
  ///
1674
- /// For a description of cancelation and cancelation points, see `Future.cancel`.
1675
- pub fn waitUncancelable(cond: *Condition, io: Io, mutex: *Mutex) void {
1676
- waitInner(cond, io, mutex, true) catch |err| switch (err) {
1677
- error.Canceled => unreachable,
1678
- };
1679
- }
1710
+ /// See also:
1711
+ /// * `wait`
1712
+ /// * `waitUncancelable`
1713
+ pub fn waitTimeout(cond: *Condition, io: Io, mutex: *Mutex, timeout: Timeout) WaitTimeoutError!void {
1714
+ const deadline = timeout.toDeadline(io);
1680
1715
 
1681
- fn waitInner(cond: *Condition, io: Io, mutex: *Mutex, uncancelable: bool) Cancelable!void {
1682
1716
  var epoch = cond.epoch.load(.acquire); // `.acquire` to ensure ordered before state load
1683
1717
 
1684
1718
  {
@@ -1690,10 +1724,7 @@ pub const Condition = struct {
1690
1724
  defer mutex.lockUncancelable(io);
1691
1725
 
1692
1726
  while (true) {
1693
- const result = if (uncancelable)
1694
- io.futexWaitUncancelable(u32, &cond.epoch.raw, epoch)
1695
- else
1696
- io.futexWait(u32, &cond.epoch.raw, epoch);
1727
+ const result = io.futexWaitTimeout(u32, &cond.epoch.raw, epoch, deadline);
1697
1728
 
1698
1729
  epoch = cond.epoch.load(.acquire); // `.acquire` to ensure ordered before `state` laod
1699
1730
 
@@ -1713,13 +1744,62 @@ pub const Condition = struct {
1713
1744
  }
1714
1745
 
1715
1746
  // There are no more signals available; this was a spurious wakeup or an error. If it
1716
- // was an error, we will remove ourselves as a waiter and return that error. Otherwise,
1717
- // we'll loop back to the futex wait.
1747
+ // was an error, we will remove ourselves as a waiter and return that error. If a
1748
+ // timeout was specified and the deadline has passed, we remove ourselves as a waiter
1749
+ // and return `error.Timeout`. Otherwise, we'll loop back to the futex wait.
1718
1750
  result catch |err| {
1719
1751
  const prev_state = cond.state.fetchSub(.{ .waiters = 1, .signals = 0 }, .monotonic);
1720
1752
  assert(prev_state.waiters > 0); // underflow caused by illegal state
1721
1753
  return err;
1722
1754
  };
1755
+ switch (deadline) {
1756
+ .none => {},
1757
+ .deadline => |d| if (d.untilNow(io).raw.nanoseconds >= 0) {
1758
+ const prev_state = cond.state.fetchSub(.{ .waiters = 1, .signals = 0 }, .monotonic);
1759
+ assert(prev_state.waiters > 0); // underflow caused by illegal state
1760
+ return error.Timeout;
1761
+ },
1762
+ .duration => unreachable,
1763
+ }
1764
+ }
1765
+ }
1766
+
1767
+ /// Same as `wait`, except does not introduce a cancelation point.
1768
+ ///
1769
+ /// See `Future.cancel` for a description of cancelation points.
1770
+ pub fn waitUncancelable(cond: *Condition, io: Io, mutex: *Mutex) void {
1771
+ var epoch = cond.epoch.load(.acquire); // `.acquire` to ensure ordered before state load
1772
+
1773
+ {
1774
+ const prev_state = cond.state.fetchAdd(.{ .waiters = 1, .signals = 0 }, .monotonic);
1775
+ assert(prev_state.waiters < math.maxInt(u16)); // overflow caused by too many waiters
1776
+ }
1777
+
1778
+ mutex.unlock(io);
1779
+ defer mutex.lockUncancelable(io);
1780
+
1781
+ while (true) {
1782
+ io.futexWaitUncancelable(u32, &cond.epoch.raw, epoch);
1783
+
1784
+ epoch = cond.epoch.load(.acquire); // `.acquire` to ensure ordered before `state` laod
1785
+
1786
+ // Even on error, try to consume a pending signal first. Otherwise a race might
1787
+ // cause a signal to get stuck in the state with no corresponding waiter.
1788
+ {
1789
+ var prev_state = cond.state.load(.monotonic);
1790
+ while (prev_state.signals > 0) {
1791
+ prev_state = cond.state.cmpxchgWeak(prev_state, .{
1792
+ .waiters = prev_state.waiters - 1,
1793
+ .signals = prev_state.signals - 1,
1794
+ }, .acquire, .monotonic) orelse {
1795
+ // We successfully consumed a signal.
1796
+ return;
1797
+ };
1798
+ }
1799
+ }
1800
+
1801
+ // There are no more signals available; this was a spurious wakeup,
1802
+ // so we'll loop back to the futex wait.
1723
1803
  }
1724
1804
  }
1725
1805
 
@@ -2626,7 +2706,6 @@ pub const failing: std.Io = .{
2626
2706
  .netConnectUnix = failingNetConnectUnix,
2627
2707
  .netSocketCreatePair = failingNetSocketCreatePair,
2628
2708
  .netSend = failingNetSend,
2629
- .netRead = failingNetRead,
2630
2709
  .netWrite = failingNetWrite,
2631
2710
  .netWriteFile = failingNetWriteFile,
2632
2711
  .netClose = unreachableNetClose,
@@ -2774,6 +2853,7 @@ pub fn failingOperate(userdata: ?*anyopaque, operation: Operation) Cancelable!Op
2774
2853
  .file_write_streaming => .{ .file_write_streaming = error.InputOutput },
2775
2854
  .device_io_control => unreachable,
2776
2855
  .net_receive => .{ .net_receive = .{ error.NetworkDown, 0 } },
2856
+ .net_read => .{ .net_read = error.NetworkDown },
2777
2857
  };
2778
2858
  }
2779
2859
 
@@ -2851,7 +2931,7 @@ pub fn failingDirAccess(userdata: ?*anyopaque, dir: Dir, sub_path: []const u8, o
2851
2931
  return error.FileNotFound;
2852
2932
  }
2853
2933
 
2854
- pub fn failingDirCreateFile(userdata: ?*anyopaque, dir: Dir, sub_path: []const u8, options: File.CreateFlags) File.OpenError!File {
2934
+ pub fn failingDirCreateFile(userdata: ?*anyopaque, dir: Dir, sub_path: []const u8, options: Dir.CreateFileOptions) File.OpenError!File {
2855
2935
  _ = userdata;
2856
2936
  _ = dir;
2857
2937
  _ = sub_path;
@@ -2867,7 +2947,7 @@ pub fn failingDirCreateFileAtomic(userdata: ?*anyopaque, dir: Dir, sub_path: []c
2867
2947
  return error.NoSpaceLeft;
2868
2948
  }
2869
2949
 
2870
- pub fn failingDirOpenFile(userdata: ?*anyopaque, dir: Dir, sub_path: []const u8, flags: File.OpenFlags) File.OpenError!File {
2950
+ pub fn failingDirOpenFile(userdata: ?*anyopaque, dir: Dir, sub_path: []const u8, flags: Dir.OpenFileOptions) File.OpenError!File {
2871
2951
  _ = userdata;
2872
2952
  _ = dir;
2873
2953
  _ = sub_path;
@@ -3204,7 +3284,7 @@ pub fn unreachableFileMemoryMapWrite(userdata: ?*anyopaque, mm: *File.MemoryMap)
3204
3284
  unreachable;
3205
3285
  }
3206
3286
 
3207
- pub fn failingProcessExecutableOpen(userdata: ?*anyopaque, flags: File.OpenFlags) std.process.OpenExecutableError!File {
3287
+ pub fn failingProcessExecutableOpen(userdata: ?*anyopaque, flags: Dir.OpenFileOptions) std.process.OpenExecutableError!File {
3208
3288
  _ = userdata;
3209
3289
  _ = flags;
3210
3290
  return error.FileNotFound;
@@ -3377,13 +3457,6 @@ pub fn failingNetSend(userdata: ?*anyopaque, handle: net.Socket.Handle, messages
3377
3457
  return .{ error.NetworkDown, 0 };
3378
3458
  }
3379
3459
 
3380
- pub fn failingNetRead(userdata: ?*anyopaque, src: net.Socket.Handle, data: [][]u8) net.Stream.Reader.Error!usize {
3381
- _ = userdata;
3382
- _ = src;
3383
- _ = data;
3384
- return error.NetworkDown;
3385
- }
3386
-
3387
3460
  pub fn failingNetWrite(userdata: ?*anyopaque, dest: net.Socket.Handle, header: []const u8, data: []const []const u8, splat: usize) net.Stream.Writer.Error!usize {
3388
3461
  _ = userdata;
3389
3462
  _ = dest;
@@ -14,7 +14,7 @@ const State = [8 * Cipher.block_length]u8;
14
14
  state: State,
15
15
  offset: usize,
16
16
 
17
- const nonce = [_]u8{0} ** Cipher.nonce_length;
17
+ const nonce: [Cipher.nonce_length]u8 = @splat(0);
18
18
 
19
19
  pub const secret_seed_length = Cipher.key_length;
20
20
 
@@ -38,7 +38,7 @@ pub fn addEntropy(self: *Self, bytes: []const u8) void {
38
38
  );
39
39
  }
40
40
  if (i < bytes.len) {
41
- var k = [_]u8{0} ** Cipher.key_length;
41
+ var k: [Cipher.key_length]u8 = @splat(0);
42
42
  const src = bytes[i..];
43
43
  @memcpy(k[0..src.len], src);
44
44
  Cipher.xor(
@@ -55,12 +55,12 @@ const csprngs = [_]Rng{
55
55
  Rng{
56
56
  .ty = Random.Ascon,
57
57
  .name = "ascon",
58
- .init_u8s = &[_]u8{0} ** 32,
58
+ .init_u8s = &@as([32]u8, @splat(0)),
59
59
  },
60
60
  Rng{
61
61
  .ty = Random.ChaCha,
62
62
  .name = "chacha",
63
- .init_u8s = &[_]u8{0} ** 32,
63
+ .init_u8s = &@as([32]u8, @splat(0)),
64
64
  },
65
65
  };
66
66
 
package/std/Random.zig CHANGED
@@ -125,9 +125,9 @@ pub fn enumValueWithIndex(r: Random, comptime EnumType: type, comptime Index: ty
125
125
  /// `i` is evenly distributed.
126
126
  pub fn int(r: Random, comptime T: type) T {
127
127
  const bits = @typeInfo(T).int.bits;
128
- const UnsignedT = std.meta.Int(.unsigned, bits);
128
+ const UnsignedT = @Int(.unsigned, bits);
129
129
  const ceil_bytes = comptime std.math.divCeil(u16, bits, 8) catch unreachable;
130
- const ByteAlignedT = std.meta.Int(.unsigned, ceil_bytes * 8);
130
+ const ByteAlignedT = @Int(.unsigned, ceil_bytes * 8);
131
131
 
132
132
  var rand_bytes: [ceil_bytes]u8 = undefined;
133
133
  r.bytes(&rand_bytes);
@@ -215,7 +215,7 @@ pub fn intRangeLessThanBiased(r: Random, comptime T: type, at_least: T, less_tha
215
215
  const info = @typeInfo(T).int;
216
216
  if (info.signedness == .signed) {
217
217
  // Two's complement makes this math pretty easy.
218
- const UnsignedT = std.meta.Int(.unsigned, info.bits);
218
+ const UnsignedT = @Int(.unsigned, info.bits);
219
219
  const lo: UnsignedT = @bitCast(at_least);
220
220
  const hi: UnsignedT = @bitCast(less_than);
221
221
  const result = lo +% r.uintLessThanBiased(UnsignedT, hi -% lo);
@@ -234,7 +234,7 @@ pub fn intRangeLessThan(r: Random, comptime T: type, at_least: T, less_than: T)
234
234
  const info = @typeInfo(T).int;
235
235
  if (info.signedness == .signed) {
236
236
  // Two's complement makes this math pretty easy.
237
- const UnsignedT = std.meta.Int(.unsigned, info.bits);
237
+ const UnsignedT = @Int(.unsigned, info.bits);
238
238
  const lo: UnsignedT = @bitCast(at_least);
239
239
  const hi: UnsignedT = @bitCast(less_than);
240
240
  const result = lo +% r.uintLessThan(UnsignedT, hi -% lo);
@@ -252,7 +252,7 @@ pub fn intRangeAtMostBiased(r: Random, comptime T: type, at_least: T, at_most: T
252
252
  const info = @typeInfo(T).int;
253
253
  if (info.signedness == .signed) {
254
254
  // Two's complement makes this math pretty easy.
255
- const UnsignedT = std.meta.Int(.unsigned, info.bits);
255
+ const UnsignedT = @Int(.unsigned, info.bits);
256
256
  const lo: UnsignedT = @bitCast(at_least);
257
257
  const hi: UnsignedT = @bitCast(at_most);
258
258
  const result = lo +% r.uintAtMostBiased(UnsignedT, hi -% lo);
@@ -271,7 +271,7 @@ pub fn intRangeAtMost(r: Random, comptime T: type, at_least: T, at_most: T) T {
271
271
  const info = @typeInfo(T).int;
272
272
  if (info.signedness == .signed) {
273
273
  // Two's complement makes this math pretty easy.
274
- const UnsignedT = std.meta.Int(.unsigned, info.bits);
274
+ const UnsignedT = @Int(.unsigned, info.bits);
275
275
  const lo: UnsignedT = @bitCast(at_least);
276
276
  const hi: UnsignedT = @bitCast(at_most);
277
277
  const result = lo +% r.uintAtMost(UnsignedT, hi -% lo);
@@ -146,7 +146,7 @@ fn parseNum(text: []const u8) error{ InvalidVersion, Overflow }!usize {
146
146
 
147
147
  return std.fmt.parseUnsigned(usize, text, 10) catch |err| switch (err) {
148
148
  error.InvalidCharacter => return error.InvalidVersion,
149
- error.Overflow => return error.Overflow,
149
+ error.Overflow => |e| return e,
150
150
  };
151
151
  }
152
152
 
@@ -253,7 +253,7 @@ pub fn parse(args: ParseOptions) !Query {
253
253
  } else if (abi.isAndroid()) {
254
254
  result.android_api_level = std.fmt.parseUnsigned(u32, abi_ver_text, 10) catch |err| switch (err) {
255
255
  error.InvalidCharacter => return error.InvalidVersion,
256
- error.Overflow => return error.Overflow,
256
+ error.Overflow => |e| return e,
257
257
  };
258
258
  } else {
259
259
  return error.InvalidAbiVersion;
@@ -282,7 +282,7 @@ pub fn parse(args: ParseOptions) !Query {
282
282
  } else if (mem.eql(u8, cpu_name, "baseline")) {
283
283
  result.cpu_model = .baseline;
284
284
  } else {
285
- result.cpu_model = .{ .explicit = try arch.parseCpuModel(cpu_name) };
285
+ result.cpu_model = .{ .explicit = arch.parseCpuModel(cpu_name) orelse return error.UnknownCpuModel };
286
286
  }
287
287
 
288
288
  while (index < cpu_features.len) {
@@ -346,7 +346,7 @@ pub fn parseVersion(ver: []const u8) error{ InvalidVersion, Overflow }!SemanticV
346
346
  fn parseVersionComponentInner(component: []const u8) error{ InvalidVersion, Overflow }!usize {
347
347
  return std.fmt.parseUnsigned(usize, component, 10) catch |err| switch (err) {
348
348
  error.InvalidCharacter => return error.InvalidVersion,
349
- error.Overflow => return error.Overflow,
349
+ error.Overflow => |e| return e,
350
350
  };
351
351
  }
352
352
  }).parseVersionComponentInner;
@@ -533,9 +533,8 @@ pub fn serializeCpuAlloc(q: Query, ally: Allocator) Allocator.Error![]u8 {
533
533
  return buffer.toOwnedSlice();
534
534
  }
535
535
 
536
+ /// Deprecated; use `zigTriple` instead. Will be removed in 0.18.0.
536
537
  pub fn allocDescription(self: Query, allocator: Allocator) ![]u8 {
537
- // TODO is there anything else worthy of the description that is not
538
- // already captured in the triple?
539
538
  return self.zigTriple(allocator);
540
539
  }
541
540