@zigc/lib 0.17.0-dev.27 → 0.17.0-dev.292

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 (1102) hide show
  1. package/c/fcntl.zig +6 -1
  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 +27 -26
  11. package/c/wchar.zig +10 -0
  12. package/c.zig +2 -2
  13. package/compiler/aro/aro/CodeGen.zig +7 -8
  14. package/compiler/aro/aro/Compilation.zig +17 -17
  15. package/compiler/aro/aro/Driver.zig +14 -13
  16. package/compiler/aro/aro/Parser.zig +20 -15
  17. package/compiler/aro/aro/Pragma.zig +3 -2
  18. package/compiler/aro/aro/Preprocessor.zig +9 -6
  19. package/compiler/aro/aro/pragmas/message.zig +3 -2
  20. package/compiler/aro/aro/text_literal.zig +3 -2
  21. package/compiler/aro/assembly_backend/x86_64.zig +4 -4
  22. package/compiler/build_runner.zig +2 -4
  23. package/compiler/reduce/Walk.zig +8 -13
  24. package/compiler/resinator/compile.zig +1 -1
  25. package/compiler/resinator/cvtres.zig +4 -4
  26. package/compiler/resinator/errors.zig +7 -7
  27. package/compiler/resinator/ico.zig +4 -4
  28. package/compiler/resinator/parse.zig +2 -2
  29. package/compiler/resinator/res.zig +1 -1
  30. package/compiler/std-docs.zig +1 -1
  31. package/compiler/test_runner.zig +1 -1
  32. package/compiler/translate-c/MacroTranslator.zig +1 -1
  33. package/compiler/translate-c/Translator.zig +6 -2
  34. package/compiler/translate-c/ast.zig +16 -23
  35. package/compiler/translate-c/main.zig +1 -1
  36. package/compiler_rt/addf3.zig +1 -1
  37. package/compiler_rt/arm.zig +3 -3
  38. package/compiler_rt/atomics.zig +1 -1
  39. package/compiler_rt/comparef.zig +3 -3
  40. package/compiler_rt/cos.zig +1 -3
  41. package/compiler_rt/count0bits.zig +1 -1
  42. package/compiler_rt/divdf3.zig +2 -2
  43. package/compiler_rt/divsf3.zig +1 -1
  44. package/compiler_rt/divtf3.zig +1 -1
  45. package/compiler_rt/divxf3.zig +1 -1
  46. package/compiler_rt/exp.zig +0 -2
  47. package/compiler_rt/exp2.zig +0 -2
  48. package/compiler_rt/extendf.zig +5 -5
  49. package/compiler_rt/fabs.zig +1 -3
  50. package/compiler_rt/float_from_int.zig +3 -4
  51. package/compiler_rt/fma.zig +0 -2
  52. package/compiler_rt/fmax.zig +1 -3
  53. package/compiler_rt/fmin.zig +1 -3
  54. package/compiler_rt/fmod.zig +2 -4
  55. package/compiler_rt/limb64.zig +3 -2
  56. package/compiler_rt/log.zig +0 -2
  57. package/compiler_rt/log10.zig +0 -2
  58. package/compiler_rt/log2.zig +0 -2
  59. package/compiler_rt/mulf3.zig +2 -2
  60. package/compiler_rt/rem_pio2l.zig +1 -1
  61. package/compiler_rt/round.zig +0 -2
  62. package/compiler_rt/sin.zig +1 -3
  63. package/compiler_rt/sincos.zig +1 -3
  64. package/compiler_rt/sqrt.zig +0 -2
  65. package/compiler_rt/ssp.zig +2 -2
  66. package/compiler_rt/tan.zig +1 -3
  67. package/compiler_rt/trunc.zig +0 -2
  68. package/compiler_rt/truncf.zig +3 -3
  69. package/compiler_rt/trunctfhf2.zig +3 -0
  70. package/compiler_rt.zig +5 -26
  71. package/docs/wasm/Walk.zig +1 -3
  72. package/docs/wasm/html_render.zig +1 -2
  73. package/docs/wasm/markdown/Parser.zig +16 -20
  74. package/fuzzer.zig +2 -0
  75. package/include/__clang_spirv_builtins.h +12 -12
  76. package/include/__float_float.h +176 -0
  77. package/include/__float_header_macro.h +12 -0
  78. package/include/__float_infinity_nan.h +20 -0
  79. package/include/amo.h +131 -0
  80. package/include/amxavx512intrin.h +215 -1
  81. package/include/amxintrin.h +0 -2
  82. package/include/arm_acle.h +37 -27
  83. package/include/arm_neon.h +218 -82
  84. package/include/arm_sme.h +8 -8
  85. package/include/arm_sve.h +4162 -3782
  86. package/include/avx10_2_512bf16intrin.h +19 -12
  87. package/include/avx10_2_512convertintrin.h +1 -1
  88. package/include/avx10_2_512niintrin.h +31 -31
  89. package/include/avx10_2_512satcvtdsintrin.h +1 -1
  90. package/include/avx10_2bf16intrin.h +54 -45
  91. package/include/avx10_2convertintrin.h +2 -2
  92. package/include/avx10_2copyintrin.h +1 -1
  93. package/include/avx10_2niintrin.h +14 -14
  94. package/include/avx10_2satcvtdsintrin.h +2 -2
  95. package/include/avx2intrin.h +275 -377
  96. package/include/avx512bf16intrin.h +25 -16
  97. package/include/avx512bitalgintrin.h +19 -30
  98. package/include/avx512bwintrin.h +386 -505
  99. package/include/avx512cdintrin.h +42 -55
  100. package/include/avx512dqintrin.h +132 -161
  101. package/include/avx512fintrin.h +1015 -1424
  102. package/include/avx512fp16intrin.h +112 -110
  103. package/include/avx512ifmaintrin.h +32 -34
  104. package/include/avx512ifmavlintrin.h +73 -46
  105. package/include/avx512vbmi2intrin.h +43 -32
  106. package/include/avx512vbmiintrin.h +19 -27
  107. package/include/avx512vbmivlintrin.h +35 -49
  108. package/include/avx512vlbf16intrin.h +32 -22
  109. package/include/avx512vlbitalgintrin.h +37 -53
  110. package/include/avx512vlbwintrin.h +470 -573
  111. package/include/avx512vlcdintrin.h +74 -102
  112. package/include/avx512vldqintrin.h +110 -127
  113. package/include/avx512vlfp16intrin.h +130 -111
  114. package/include/avx512vlintrin.h +945 -1299
  115. package/include/avx512vlvbmi2intrin.h +78 -63
  116. package/include/avx512vlvnniintrin.h +21 -18
  117. package/include/avx512vlvp2intersectintrin.h +2 -2
  118. package/include/avx512vnniintrin.h +10 -10
  119. package/include/avx512vp2intersectintrin.h +1 -2
  120. package/include/avx512vpopcntdqintrin.h +8 -10
  121. package/include/avx512vpopcntdqvlintrin.h +17 -15
  122. package/include/avxifmaintrin.h +16 -0
  123. package/include/avxintrin.h +165 -241
  124. package/include/avxvnniint16intrin.h +118 -99
  125. package/include/avxvnniint8intrin.h +56 -32
  126. package/include/avxvnniintrin.h +16 -8
  127. package/include/cpuid.h +101 -4
  128. package/include/emmintrin.h +168 -168
  129. package/include/f16cintrin.h +23 -9
  130. package/include/float.h +16 -155
  131. package/include/fma4intrin.h +98 -96
  132. package/include/fmaintrin.h +96 -66
  133. package/include/gfniintrin.h +21 -16
  134. package/include/hexagon_types.h +23 -20
  135. package/include/hvx_hexagon_protos.h +649 -860
  136. package/include/immintrin.h +0 -12
  137. package/include/intrin.h +4 -0
  138. package/include/lasxintrin.h +113 -0
  139. package/include/llvm_libc_wrappers/assert.h +3 -5
  140. package/include/llvm_libc_wrappers/ctype.h +3 -115
  141. package/include/llvm_libc_wrappers/inttypes.h +3 -5
  142. package/include/llvm_libc_wrappers/stdio.h +10 -38
  143. package/include/llvm_libc_wrappers/stdlib.h +3 -24
  144. package/include/llvm_libc_wrappers/string.h +2 -70
  145. package/include/llvm_libc_wrappers/time.h +4 -10
  146. package/include/mmintrin.h +188 -257
  147. package/include/module.modulemap +23 -4
  148. package/include/movrs_avx10_2_512intrin.h +2 -2
  149. package/include/movrs_avx10_2intrin.h +4 -4
  150. package/include/pmmintrin.h +12 -24
  151. package/include/ptrauth.h +16 -2
  152. package/include/riscv_mips.h +34 -0
  153. package/include/riscv_nds.h +89 -0
  154. package/include/sifive_vector.h +58 -2
  155. package/include/sm4evexintrin.h +2 -2
  156. package/include/smmintrin.h +77 -59
  157. package/include/spirvintrin.h +194 -0
  158. package/include/stddefer.h +19 -0
  159. package/include/tmmintrin.h +116 -147
  160. package/include/vaesintrin.h +1 -2
  161. package/include/xmmintrin.h +44 -70
  162. package/include/xopintrin.h +20 -10
  163. package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
  164. package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
  165. package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
  166. package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
  167. package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
  168. package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
  169. package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
  170. package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
  171. package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
  172. package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
  173. package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
  174. package/libc/include/any-linux-any/linux/android/binder.h +1 -1
  175. package/libc/include/any-linux-any/linux/bpf.h +28 -0
  176. package/libc/include/any-linux-any/linux/btrfs.h +1 -0
  177. package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
  178. package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
  179. package/libc/include/any-linux-any/linux/dpll.h +1 -0
  180. package/libc/include/any-linux-any/linux/elf.h +2 -0
  181. package/libc/include/any-linux-any/linux/ethtool.h +21 -5
  182. package/libc/include/any-linux-any/linux/fs.h +1 -0
  183. package/libc/include/any-linux-any/linux/hyperv.h +1 -1
  184. package/libc/include/any-linux-any/linux/idxd.h +134 -134
  185. package/libc/include/any-linux-any/linux/if_alg.h +1 -1
  186. package/libc/include/any-linux-any/linux/if_link.h +1 -0
  187. package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
  188. package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
  189. package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
  190. package/libc/include/any-linux-any/linux/io_uring.h +33 -2
  191. package/libc/include/any-linux-any/linux/iommufd.h +39 -0
  192. package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
  193. package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
  194. package/libc/include/any-linux-any/linux/kvm.h +30 -6
  195. package/libc/include/any-linux-any/linux/landlock.h +22 -8
  196. package/libc/include/any-linux-any/linux/magic.h +1 -0
  197. package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
  198. package/libc/include/any-linux-any/linux/mount.h +11 -2
  199. package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
  200. package/libc/include/any-linux-any/linux/mshv.h +2 -0
  201. package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
  202. package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
  203. package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
  204. package/libc/include/any-linux-any/linux/nfs.h +1 -1
  205. package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
  206. package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
  207. package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
  208. package/libc/include/any-linux-any/linux/nl80211.h +104 -3
  209. package/libc/include/any-linux-any/linux/pci.h +7 -0
  210. package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
  211. package/libc/include/any-linux-any/linux/pcitest.h +1 -0
  212. package/libc/include/any-linux-any/linux/perf_event.h +24 -3
  213. package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
  214. package/libc/include/any-linux-any/linux/prctl.h +30 -0
  215. package/libc/include/any-linux-any/linux/rseq.h +62 -5
  216. package/libc/include/any-linux-any/linux/shm.h +0 -1
  217. package/libc/include/any-linux-any/linux/stddef.h +4 -0
  218. package/libc/include/any-linux-any/linux/sysctl.h +1 -2
  219. package/libc/include/any-linux-any/linux/taskstats.h +12 -1
  220. package/libc/include/any-linux-any/linux/tcp.h +23 -3
  221. package/libc/include/any-linux-any/linux/typelimits.h +8 -0
  222. package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
  223. package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
  224. package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
  225. package/libc/include/any-linux-any/linux/vduse.h +80 -5
  226. package/libc/include/any-linux-any/linux/version.h +3 -3
  227. package/libc/include/any-linux-any/linux/vfio.h +4 -0
  228. package/libc/include/any-linux-any/linux/videodev2.h +3 -0
  229. package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
  230. package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
  231. package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
  232. package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
  233. package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
  234. package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
  235. package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
  236. package/libc/include/arc-linux-any/asm/swab.h +0 -63
  237. package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
  238. package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
  239. package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
  240. package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
  241. package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
  242. package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
  243. package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
  244. package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
  245. package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
  246. package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
  247. package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
  248. package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
  249. package/libc/include/mips-linux-any/asm/errno.h +2 -0
  250. package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
  251. package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
  252. package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
  253. package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
  254. package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
  255. package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
  256. package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
  257. package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
  258. package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
  259. package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
  260. package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
  261. package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
  262. package/libc/include/sparc-linux-any/asm/errno.h +2 -0
  263. package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
  264. package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
  265. package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
  266. package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
  267. package/libc/include/x86-linux-any/asm/kvm.h +13 -8
  268. package/libc/include/x86-linux-any/asm/svm.h +16 -16
  269. package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
  270. package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
  271. package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
  272. package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
  273. package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
  274. package/libcxx/include/__algorithm/all_of.h +11 -5
  275. package/libcxx/include/__algorithm/comp.h +4 -0
  276. package/libcxx/include/__algorithm/copy.h +28 -147
  277. package/libcxx/include/__algorithm/copy_backward.h +9 -24
  278. package/libcxx/include/__algorithm/copy_n.h +50 -16
  279. package/libcxx/include/__algorithm/count.h +2 -2
  280. package/libcxx/include/__algorithm/equal.h +43 -55
  281. package/libcxx/include/__algorithm/fill.h +26 -8
  282. package/libcxx/include/__algorithm/fill_n.h +32 -46
  283. package/libcxx/include/__algorithm/find.h +96 -39
  284. package/libcxx/include/__algorithm/find_end.h +105 -0
  285. package/libcxx/include/__algorithm/for_each.h +18 -24
  286. package/libcxx/include/__algorithm/for_each_n.h +20 -47
  287. package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
  288. package/libcxx/include/__algorithm/for_each_segment.h +26 -0
  289. package/libcxx/include/__algorithm/generate.h +4 -2
  290. package/libcxx/include/__algorithm/generate_n.h +19 -6
  291. package/libcxx/include/__algorithm/is_permutation.h +4 -4
  292. package/libcxx/include/__algorithm/iterator_operations.h +3 -0
  293. package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
  294. package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
  295. package/libcxx/include/__algorithm/make_heap.h +16 -4
  296. package/libcxx/include/__algorithm/mismatch.h +2 -2
  297. package/libcxx/include/__algorithm/move.h +8 -19
  298. package/libcxx/include/__algorithm/move_backward.h +9 -24
  299. package/libcxx/include/__algorithm/none_of.h +4 -4
  300. package/libcxx/include/__algorithm/partial_sort.h +1 -1
  301. package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
  302. package/libcxx/include/__algorithm/pstl.h +9 -9
  303. package/libcxx/include/__algorithm/radix_sort.h +27 -25
  304. package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
  305. package/libcxx/include/__algorithm/ranges_equal.h +17 -26
  306. package/libcxx/include/__algorithm/ranges_fill.h +7 -6
  307. package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
  308. package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
  309. package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
  310. package/libcxx/include/__algorithm/rotate.h +27 -44
  311. package/libcxx/include/__algorithm/search_n.h +49 -37
  312. package/libcxx/include/__algorithm/sift_down.h +19 -18
  313. package/libcxx/include/__algorithm/simd_utils.h +33 -4
  314. package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
  315. package/libcxx/include/__algorithm/stable_sort.h +1 -1
  316. package/libcxx/include/__assertion_handler +31 -4
  317. package/libcxx/include/__atomic/atomic.h +36 -60
  318. package/libcxx/include/__atomic/atomic_flag.h +19 -37
  319. package/libcxx/include/__atomic/atomic_ref.h +29 -12
  320. package/libcxx/include/__atomic/atomic_sync.h +127 -55
  321. package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
  322. package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
  323. package/libcxx/include/__atomic/contention_t.h +27 -3
  324. package/libcxx/include/__atomic/floating_point_helper.h +55 -0
  325. package/libcxx/include/__bit/countl.h +1 -2
  326. package/libcxx/include/__bit/countr.h +1 -2
  327. package/libcxx/include/__bit/has_single_bit.h +1 -1
  328. package/libcxx/include/__bit/popcount.h +0 -1
  329. package/libcxx/include/__bit/rotate.h +15 -26
  330. package/libcxx/include/__bit_reference +207 -18
  331. package/libcxx/include/__charconv/from_chars_integral.h +1 -1
  332. package/libcxx/include/__charconv/from_chars_result.h +1 -1
  333. package/libcxx/include/__charconv/to_chars_integral.h +1 -0
  334. package/libcxx/include/__charconv/to_chars_result.h +1 -1
  335. package/libcxx/include/__charconv/traits.h +3 -24
  336. package/libcxx/include/__chrono/day.h +11 -0
  337. package/libcxx/include/__chrono/duration.h +58 -33
  338. package/libcxx/include/__chrono/file_clock.h +4 -2
  339. package/libcxx/include/__chrono/is_clock.h +72 -0
  340. package/libcxx/include/__chrono/leap_second.h +13 -0
  341. package/libcxx/include/__chrono/month.h +13 -0
  342. package/libcxx/include/__chrono/month_weekday.h +22 -0
  343. package/libcxx/include/__chrono/monthday.h +20 -0
  344. package/libcxx/include/__chrono/steady_clock.h +1 -1
  345. package/libcxx/include/__chrono/system_clock.h +3 -3
  346. package/libcxx/include/__chrono/time_point.h +37 -13
  347. package/libcxx/include/__chrono/weekday.h +25 -0
  348. package/libcxx/include/__chrono/year.h +11 -0
  349. package/libcxx/include/__chrono/year_month.h +13 -0
  350. package/libcxx/include/__chrono/year_month_day.h +23 -0
  351. package/libcxx/include/__chrono/year_month_weekday.h +26 -0
  352. package/libcxx/include/__chrono/zoned_time.h +16 -0
  353. package/libcxx/include/__compare/is_eq.h +6 -6
  354. package/libcxx/include/__compare/strong_order.h +12 -30
  355. package/libcxx/include/__compare/three_way_comparable.h +2 -2
  356. package/libcxx/include/__concepts/comparison_common_type.h +40 -0
  357. package/libcxx/include/__concepts/equality_comparable.h +2 -1
  358. package/libcxx/include/__condition_variable/condition_variable.h +1 -1
  359. package/libcxx/include/__config +63 -280
  360. package/libcxx/include/__configuration/abi.h +14 -24
  361. package/libcxx/include/__configuration/availability.h +65 -118
  362. package/libcxx/include/__configuration/compiler.h +6 -6
  363. package/libcxx/include/__configuration/experimental.h +38 -0
  364. package/libcxx/include/__configuration/hardening.h +215 -0
  365. package/libcxx/include/__configuration/language.h +3 -0
  366. package/libcxx/include/__configuration/platform.h +9 -16
  367. package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
  368. package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
  369. package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
  370. package/libcxx/include/__exception/exception.h +6 -4
  371. package/libcxx/include/__exception/exception_ptr.h +27 -5
  372. package/libcxx/include/__exception/nested_exception.h +2 -2
  373. package/libcxx/include/__exception/operations.h +5 -5
  374. package/libcxx/include/__expected/bad_expected_access.h +8 -6
  375. package/libcxx/include/__expected/expected.h +62 -64
  376. package/libcxx/include/__expected/unexpected.h +4 -4
  377. package/libcxx/include/__filesystem/copy_options.h +4 -4
  378. package/libcxx/include/__filesystem/directory_entry.h +37 -33
  379. package/libcxx/include/__filesystem/directory_iterator.h +9 -11
  380. package/libcxx/include/__filesystem/directory_options.h +7 -4
  381. package/libcxx/include/__filesystem/file_status.h +3 -3
  382. package/libcxx/include/__filesystem/filesystem_error.h +9 -10
  383. package/libcxx/include/__filesystem/operations.h +97 -66
  384. package/libcxx/include/__filesystem/path.h +68 -64
  385. package/libcxx/include/__filesystem/path_iterator.h +1 -3
  386. package/libcxx/include/__filesystem/perm_options.h +4 -4
  387. package/libcxx/include/__filesystem/perms.h +4 -4
  388. package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
  389. package/libcxx/include/__filesystem/space_info.h +1 -1
  390. package/libcxx/include/__filesystem/u8path.h +12 -14
  391. package/libcxx/include/__flat_map/flat_map.h +88 -71
  392. package/libcxx/include/__flat_map/flat_multimap.h +251 -172
  393. package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
  394. package/libcxx/include/__flat_map/utils.h +1 -0
  395. package/libcxx/include/__flat_set/flat_multiset.h +211 -143
  396. package/libcxx/include/__flat_set/flat_set.h +86 -68
  397. package/libcxx/include/__format/concepts.h +0 -14
  398. package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
  399. package/libcxx/include/__format/fmt_pair_like.h +42 -0
  400. package/libcxx/include/__format/format_arg.h +7 -10
  401. package/libcxx/include/__format/format_args.h +1 -1
  402. package/libcxx/include/__format/format_context.h +5 -5
  403. package/libcxx/include/__format/format_parse_context.h +2 -2
  404. package/libcxx/include/__format/formatter_output.h +30 -34
  405. package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
  406. package/libcxx/include/__format/range_default_formatter.h +2 -41
  407. package/libcxx/include/__format/range_format.h +71 -0
  408. package/libcxx/include/__format/range_formatter.h +1 -0
  409. package/libcxx/include/__format/width_estimation_table.h +4 -2
  410. package/libcxx/include/__functional/bind.h +10 -15
  411. package/libcxx/include/__functional/bind_back.h +1 -1
  412. package/libcxx/include/__functional/bind_front.h +1 -1
  413. package/libcxx/include/__functional/function.h +57 -75
  414. package/libcxx/include/__functional/hash.h +1 -10
  415. package/libcxx/include/__functional/identity.h +1 -1
  416. package/libcxx/include/__functional/is_transparent.h +8 -0
  417. package/libcxx/include/__functional/mem_fn.h +2 -1
  418. package/libcxx/include/__functional/operations.h +18 -0
  419. package/libcxx/include/__functional/ranges_operations.h +7 -0
  420. package/libcxx/include/__functional/reference_wrapper.h +7 -5
  421. package/libcxx/include/__functional/weak_result_type.h +14 -28
  422. package/libcxx/include/__fwd/ios.h +1 -1
  423. package/libcxx/include/__fwd/tuple.h +14 -0
  424. package/libcxx/include/__hash_table +371 -357
  425. package/libcxx/include/__ios/fpos.h +4 -4
  426. package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
  427. package/libcxx/include/__iterator/bounded_iter.h +7 -8
  428. package/libcxx/include/__iterator/concepts.h +6 -9
  429. package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
  430. package/libcxx/include/__iterator/distance.h +40 -18
  431. package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
  432. package/libcxx/include/__iterator/insert_iterator.h +1 -7
  433. package/libcxx/include/__iterator/istream_iterator.h +6 -7
  434. package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
  435. package/libcxx/include/__iterator/iter_move.h +1 -1
  436. package/libcxx/include/__iterator/iterator.h +13 -0
  437. package/libcxx/include/__iterator/iterator_traits.h +13 -14
  438. package/libcxx/include/__iterator/ostream_iterator.h +1 -7
  439. package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
  440. package/libcxx/include/__iterator/reverse_iterator.h +8 -13
  441. package/libcxx/include/__iterator/segmented_iterator.h +3 -8
  442. package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
  443. package/libcxx/include/__iterator/wrap_iter.h +8 -6
  444. package/libcxx/include/__locale +3 -10
  445. package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
  446. package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
  447. package/libcxx/include/__locale_dir/messages.h +1 -1
  448. package/libcxx/include/__locale_dir/money.h +2 -2
  449. package/libcxx/include/__locale_dir/num.h +190 -243
  450. package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
  451. package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
  452. package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
  453. package/libcxx/include/__locale_dir/support/linux.h +0 -37
  454. package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
  455. package/libcxx/include/__locale_dir/support/newlib.h +243 -0
  456. package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
  457. package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
  458. package/libcxx/include/__locale_dir/support/windows.h +0 -29
  459. package/libcxx/include/__locale_dir/time.h +3 -7
  460. package/libcxx/include/__math/hypot.h +1 -1
  461. package/libcxx/include/__math/logarithms.h +1 -1
  462. package/libcxx/include/__math/traits.h +80 -11
  463. package/libcxx/include/__mdspan/extents.h +7 -4
  464. package/libcxx/include/__mdspan/layout_stride.h +4 -5
  465. package/libcxx/include/__mdspan/mdspan.h +29 -23
  466. package/libcxx/include/__memory/addressof.h +7 -5
  467. package/libcxx/include/__memory/align.h +18 -1
  468. package/libcxx/include/__memory/allocate_at_least.h +15 -10
  469. package/libcxx/include/__memory/allocator.h +14 -26
  470. package/libcxx/include/__memory/allocator_traits.h +6 -4
  471. package/libcxx/include/__memory/compressed_pair.h +15 -9
  472. package/libcxx/include/__memory/construct_at.h +12 -23
  473. package/libcxx/include/__memory/inout_ptr.h +1 -1
  474. package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
  475. package/libcxx/include/__memory/out_ptr.h +1 -1
  476. package/libcxx/include/__memory/pointer_traits.h +1 -1
  477. package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
  478. package/libcxx/include/__memory/shared_count.h +9 -30
  479. package/libcxx/include/__memory/shared_ptr.h +100 -145
  480. package/libcxx/include/__memory/temp_value.h +1 -2
  481. package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
  482. package/libcxx/include/__memory/unique_ptr.h +14 -16
  483. package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
  484. package/libcxx/include/__memory_resource/memory_resource.h +4 -2
  485. package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
  486. package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
  487. package/libcxx/include/__memory_resource/pool_options.h +1 -1
  488. package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
  489. package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
  490. package/libcxx/include/__mutex/mutex.h +2 -2
  491. package/libcxx/include/__mutex/once_flag.h +14 -11
  492. package/libcxx/include/__mutex/tag_types.h +3 -3
  493. package/libcxx/include/__mutex/unique_lock.h +8 -7
  494. package/libcxx/include/__new/align_val_t.h +6 -0
  495. package/libcxx/include/__new/allocate.h +1 -2
  496. package/libcxx/include/__new/exceptions.h +8 -2
  497. package/libcxx/include/__new/global_new_delete.h +4 -11
  498. package/libcxx/include/__new/interference_size.h +0 -4
  499. package/libcxx/include/__new/launder.h +3 -5
  500. package/libcxx/include/__new/nothrow_t.h +1 -1
  501. package/libcxx/include/__numeric/gcd_lcm.h +24 -34
  502. package/libcxx/include/__numeric/midpoint.h +9 -14
  503. package/libcxx/include/__numeric/pstl.h +2 -2
  504. package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
  505. package/libcxx/include/__ostream/basic_ostream.h +8 -8
  506. package/libcxx/include/__pstl/backends/default.h +14 -14
  507. package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
  508. package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
  509. package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
  510. package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
  511. package/libcxx/include/__random/binomial_distribution.h +10 -4
  512. package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
  513. package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
  514. package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
  515. package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
  516. package/libcxx/include/__ranges/adjacent_view.h +419 -0
  517. package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
  518. package/libcxx/include/__ranges/chunk_by_view.h +6 -6
  519. package/libcxx/include/__ranges/common_view.h +7 -7
  520. package/libcxx/include/__ranges/drop_view.h +8 -8
  521. package/libcxx/include/__ranges/drop_while_view.h +5 -5
  522. package/libcxx/include/__ranges/elements_of.h +49 -0
  523. package/libcxx/include/__ranges/empty_view.h +5 -5
  524. package/libcxx/include/__ranges/filter_view.h +10 -10
  525. package/libcxx/include/__ranges/iota_view.h +41 -22
  526. package/libcxx/include/__ranges/owning_view.h +15 -15
  527. package/libcxx/include/__ranges/ref_view.h +6 -6
  528. package/libcxx/include/__ranges/repeat_view.h +17 -10
  529. package/libcxx/include/__ranges/single_view.h +8 -8
  530. package/libcxx/include/__ranges/take_view.h +9 -9
  531. package/libcxx/include/__ranges/transform_view.h +1 -2
  532. package/libcxx/include/__ranges/view_interface.h +10 -10
  533. package/libcxx/include/__ranges/zip_transform_view.h +357 -0
  534. package/libcxx/include/__ranges/zip_view.h +20 -20
  535. package/libcxx/include/__split_buffer +612 -240
  536. package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
  537. package/libcxx/include/__stop_token/stop_callback.h +2 -2
  538. package/libcxx/include/__stop_token/stop_source.h +1 -1
  539. package/libcxx/include/__stop_token/stop_state.h +4 -4
  540. package/libcxx/include/__stop_token/stop_token.h +1 -1
  541. package/libcxx/include/__string/char_traits.h +51 -31
  542. package/libcxx/include/__string/constexpr_c_functions.h +5 -5
  543. package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
  544. package/libcxx/include/__system_error/error_category.h +8 -8
  545. package/libcxx/include/__system_error/error_code.h +5 -5
  546. package/libcxx/include/__system_error/error_condition.h +4 -4
  547. package/libcxx/include/__system_error/system_error.h +1 -1
  548. package/libcxx/include/__thread/id.h +1 -1
  549. package/libcxx/include/__thread/jthread.h +1 -1
  550. package/libcxx/include/__thread/poll_with_backoff.h +27 -8
  551. package/libcxx/include/__thread/support/c11.h +8 -8
  552. package/libcxx/include/__thread/support/pthread.h +8 -8
  553. package/libcxx/include/__thread/support/windows.h +8 -8
  554. package/libcxx/include/__thread/thread.h +13 -8
  555. package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
  556. package/libcxx/include/__tree +849 -701
  557. package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
  558. package/libcxx/include/__tuple/tuple_element.h +0 -12
  559. package/libcxx/include/__tuple/tuple_size.h +0 -4
  560. package/libcxx/include/__tuple/tuple_transform.h +45 -0
  561. package/libcxx/include/__type_traits/aligned_storage.h +13 -40
  562. package/libcxx/include/__type_traits/desugars_to.h +4 -0
  563. package/libcxx/include/__type_traits/invoke.h +8 -0
  564. package/libcxx/include/__type_traits/is_allocator.h +6 -7
  565. package/libcxx/include/__type_traits/is_array.h +26 -0
  566. package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
  567. package/libcxx/include/__type_traits/is_final.h +1 -1
  568. package/libcxx/include/__type_traits/is_floating_point.h +7 -6
  569. package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
  570. package/libcxx/include/__type_traits/is_specialization.h +2 -6
  571. package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
  572. package/libcxx/include/__type_traits/make_transparent.h +52 -0
  573. package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
  574. package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
  575. package/libcxx/include/__utility/cmp.h +19 -7
  576. package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
  577. package/libcxx/include/__utility/in_place.h +1 -1
  578. package/libcxx/include/__utility/integer_sequence.h +56 -41
  579. package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
  580. package/libcxx/include/__utility/pair.h +22 -25
  581. package/libcxx/include/__utility/scope_guard.h +2 -0
  582. package/libcxx/include/__utility/try_key_extraction.h +114 -0
  583. package/libcxx/include/__vector/vector.h +187 -160
  584. package/libcxx/include/__vector/vector_bool.h +76 -83
  585. package/libcxx/include/any +118 -155
  586. package/libcxx/include/array +88 -56
  587. package/libcxx/include/atomic +2 -0
  588. package/libcxx/include/barrier +20 -24
  589. package/libcxx/include/bitset +49 -30
  590. package/libcxx/include/ccomplex +3 -11
  591. package/libcxx/include/chrono +47 -0
  592. package/libcxx/include/ciso646 +3 -6
  593. package/libcxx/include/complex +77 -65
  594. package/libcxx/include/complex.h +10 -10
  595. package/libcxx/include/condition_variable +3 -3
  596. package/libcxx/include/cstdalign +3 -10
  597. package/libcxx/include/cstdbool +3 -10
  598. package/libcxx/include/ctgmath +2 -11
  599. package/libcxx/include/ctype.h +24 -24
  600. package/libcxx/include/cwchar +2 -2
  601. package/libcxx/include/deque +109 -225
  602. package/libcxx/include/errno.h +269 -269
  603. package/libcxx/include/exception +4 -1
  604. package/libcxx/include/ext/hash_map +7 -48
  605. package/libcxx/include/ext/hash_set +2 -8
  606. package/libcxx/include/fenv.h +43 -43
  607. package/libcxx/include/flat_map +663 -11
  608. package/libcxx/include/flat_set +543 -8
  609. package/libcxx/include/float.h +16 -16
  610. package/libcxx/include/forward_list +33 -53
  611. package/libcxx/include/fstream +57 -42
  612. package/libcxx/include/future +41 -51
  613. package/libcxx/include/initializer_list +9 -3
  614. package/libcxx/include/inttypes.h +16 -16
  615. package/libcxx/include/ios +28 -28
  616. package/libcxx/include/istream +19 -13
  617. package/libcxx/include/iterator +10 -0
  618. package/libcxx/include/latch +7 -5
  619. package/libcxx/include/limits +4 -4
  620. package/libcxx/include/list +61 -79
  621. package/libcxx/include/map +386 -274
  622. package/libcxx/include/math.h +19 -0
  623. package/libcxx/include/mdspan +1 -5
  624. package/libcxx/include/mutex +29 -19
  625. package/libcxx/include/optional +644 -149
  626. package/libcxx/include/print +9 -5
  627. package/libcxx/include/queue +39 -37
  628. package/libcxx/include/ranges +48 -0
  629. package/libcxx/include/regex +33 -31
  630. package/libcxx/include/scoped_allocator +16 -11
  631. package/libcxx/include/semaphore +15 -18
  632. package/libcxx/include/set +220 -192
  633. package/libcxx/include/shared_mutex +3 -8
  634. package/libcxx/include/span +53 -37
  635. package/libcxx/include/sstream +34 -28
  636. package/libcxx/include/stack +13 -15
  637. package/libcxx/include/stddef.h +10 -10
  638. package/libcxx/include/stdexcept +2 -2
  639. package/libcxx/include/stdio.h +20 -21
  640. package/libcxx/include/streambuf +59 -19
  641. package/libcxx/include/string +574 -573
  642. package/libcxx/include/string_view +113 -89
  643. package/libcxx/include/strstream +10 -10
  644. package/libcxx/include/syncstream +4 -4
  645. package/libcxx/include/tgmath.h +12 -12
  646. package/libcxx/include/tuple +242 -212
  647. package/libcxx/include/type_traits +8 -2
  648. package/libcxx/include/typeindex +5 -3
  649. package/libcxx/include/typeinfo +92 -89
  650. package/libcxx/include/unordered_map +179 -304
  651. package/libcxx/include/unordered_set +168 -195
  652. package/libcxx/include/utility +12 -0
  653. package/libcxx/include/valarray +106 -161
  654. package/libcxx/include/variant +25 -33
  655. package/libcxx/include/version +41 -24
  656. package/libcxx/include/wctype.h +29 -29
  657. package/libcxx/libc/hdr/errno_macros.h +3 -1
  658. package/libcxx/libc/hdr/stdint_proxy.h +18 -0
  659. package/libcxx/libc/hdr/types/wchar_t.h +23 -0
  660. package/libcxx/libc/hdr/wchar_overlay.h +69 -0
  661. package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
  662. package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
  663. package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
  664. package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
  665. package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
  666. package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
  667. package/libcxx/libc/shared/libc_common.h +5 -0
  668. package/libcxx/libc/src/__support/CPP/bit.h +50 -12
  669. package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
  670. package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
  671. package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
  672. package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
  673. package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
  674. package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
  675. package/libcxx/libc/src/__support/big_int.h +14 -14
  676. package/libcxx/libc/src/__support/common.h +3 -2
  677. package/libcxx/libc/src/__support/ctype_utils.h +19 -12
  678. package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
  679. package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
  680. package/libcxx/libc/src/__support/libc_assert.h +2 -0
  681. package/libcxx/libc/src/__support/macros/attributes.h +44 -1
  682. package/libcxx/libc/src/__support/macros/config.h +23 -0
  683. package/libcxx/libc/src/__support/macros/null_check.h +1 -2
  684. package/libcxx/libc/src/__support/macros/optimization.h +3 -0
  685. package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
  686. package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
  687. package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
  688. package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
  689. package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
  690. package/libcxx/libc/src/__support/math_extras.h +20 -4
  691. package/libcxx/libc/src/__support/str_to_float.h +98 -125
  692. package/libcxx/libc/src/__support/str_to_integer.h +39 -27
  693. package/libcxx/libc/src/__support/wctype_utils.h +588 -0
  694. package/libcxx/src/any.cpp +4 -0
  695. package/libcxx/src/atomic.cpp +365 -80
  696. package/libcxx/src/barrier.cpp +4 -3
  697. package/libcxx/src/charconv.cpp +6 -3
  698. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  699. package/libcxx/src/error_category.cpp +3 -1
  700. package/libcxx/src/exception.cpp +2 -10
  701. package/libcxx/src/experimental/time_zone.cpp +1 -1
  702. package/libcxx/src/experimental/tzdb.cpp +4 -1
  703. package/libcxx/src/filesystem/error.h +4 -22
  704. package/libcxx/src/filesystem/format_string.h +9 -18
  705. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  706. package/libcxx/src/filesystem/operations.cpp +2 -9
  707. package/libcxx/src/filesystem/path.cpp +3 -1
  708. package/libcxx/src/include/aligned_alloc.h +65 -0
  709. package/libcxx/src/include/config_elast.h +1 -1
  710. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  711. package/libcxx/src/include/overridable_function.h +8 -10
  712. package/libcxx/src/iostream.cpp +56 -37
  713. package/libcxx/src/locale.cpp +213 -196
  714. package/libcxx/src/memory.cpp +12 -14
  715. package/libcxx/src/mutex_destructor.cpp +1 -1
  716. package/libcxx/src/new.cpp +5 -5
  717. package/libcxx/src/optional.cpp +4 -0
  718. package/libcxx/src/print.cpp +9 -1
  719. package/libcxx/src/random.cpp +0 -26
  720. package/libcxx/src/string.cpp +10 -25
  721. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  722. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  723. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  724. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  725. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  726. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  727. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  728. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  729. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  730. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  731. package/libcxx/src/system_error.cpp +2 -0
  732. package/libcxx/src/thread.cpp +1 -3
  733. package/libcxx/src/valarray.cpp +1 -2
  734. package/libcxx/src/vector.cpp +2 -2
  735. package/libcxxabi/include/__cxxabi_config.h +42 -23
  736. package/libcxxabi/src/cxa_exception.cpp +4 -2
  737. package/libcxxabi/src/cxa_exception.h +16 -14
  738. package/libcxxabi/src/cxa_personality.cpp +126 -9
  739. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  740. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  741. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  742. package/libcxxabi/src/demangle/Utility.h +21 -7
  743. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  744. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  745. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  746. package/libtsan/LICENSE.TXT +311 -0
  747. package/libtsan/builtins/assembly.h +41 -8
  748. package/libtsan/interception/interception_win.cpp +4 -0
  749. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  750. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  751. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  752. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  753. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  754. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  755. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  756. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  757. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  758. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  759. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  760. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  761. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  762. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  763. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  764. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  765. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  766. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  767. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  768. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  769. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  770. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  771. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  772. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  773. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  774. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  775. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  776. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  777. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  778. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  779. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  780. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  781. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  782. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  783. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  784. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  785. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  786. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  787. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  788. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  789. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  790. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  791. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  792. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  793. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  794. package/libtsan/tsan_debugging.cpp +2 -2
  795. package/libtsan/tsan_flags.cpp +37 -0
  796. package/libtsan/tsan_flags.h +8 -0
  797. package/libtsan/tsan_flags.inc +12 -0
  798. package/libtsan/tsan_interceptors.h +9 -1
  799. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  800. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  801. package/libtsan/tsan_interface.h +3 -3
  802. package/libtsan/tsan_interface_ann.cpp +23 -9
  803. package/libtsan/tsan_mman.cpp +18 -4
  804. package/libtsan/tsan_platform.h +44 -7
  805. package/libtsan/tsan_platform_linux.cpp +42 -14
  806. package/libtsan/tsan_platform_mac.cpp +16 -3
  807. package/libtsan/tsan_report.h +14 -1
  808. package/libtsan/tsan_rtl.cpp +14 -0
  809. package/libtsan/tsan_rtl.h +7 -2
  810. package/libtsan/tsan_rtl_aarch64.S +3 -5
  811. package/libtsan/tsan_rtl_access.cpp +8 -3
  812. package/libtsan/tsan_rtl_amd64.S +2 -0
  813. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  814. package/libtsan/tsan_rtl_report.cpp +132 -65
  815. package/libtsan/tsan_rtl_thread.cpp +31 -9
  816. package/libtsan/tsan_symbolize.cpp +1 -1
  817. package/libtsan/tsan_symbolize.h +1 -1
  818. package/libtsan/tsan_trace.h +1 -1
  819. package/libunwind/include/__libunwind_config.h +11 -2
  820. package/libunwind/include/libunwind.h +117 -11
  821. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  822. package/libunwind/src/AddressSpace.hpp +42 -20
  823. package/libunwind/src/CompactUnwinder.hpp +16 -5
  824. package/libunwind/src/DwarfInstructions.hpp +24 -13
  825. package/libunwind/src/DwarfParser.hpp +62 -23
  826. package/libunwind/src/EHHeaderParser.hpp +7 -4
  827. package/libunwind/src/Registers.hpp +226 -22
  828. package/libunwind/src/Unwind-seh.cpp +6 -7
  829. package/libunwind/src/Unwind-wasm.c +7 -7
  830. package/libunwind/src/UnwindCursor.hpp +167 -49
  831. package/libunwind/src/UnwindLevel1.c +46 -17
  832. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  833. package/libunwind/src/UnwindRegistersSave.S +86 -2
  834. package/libunwind/src/assembly.h +5 -1
  835. package/libunwind/src/config.h +9 -0
  836. package/libunwind/src/gcc_personality_v0.c +79 -6
  837. package/libunwind/src/libunwind.cpp +104 -4
  838. package/libunwind/src/libunwind_ext.h +7 -1
  839. package/libunwind/src/shadow_stack_unwind.h +2 -2
  840. package/lldb/pretty_printers.py +948 -0
  841. package/package.json +1 -1
  842. package/std/Build/Cache/Path.zig +1 -1
  843. package/std/Build/Cache.zig +6 -6
  844. package/std/Build/Step/Compile.zig +18 -20
  845. package/std/Build/Step/ConfigHeader.zig +1 -1
  846. package/std/Build/Step/Run.zig +15 -8
  847. package/std/Build/Step.zig +2 -7
  848. package/std/Build/Watch/FsEvents.zig +1 -1
  849. package/std/Build/WebServer.zig +2 -2
  850. package/std/Build/abi.zig +1 -1
  851. package/std/Build.zig +0 -3
  852. package/std/Io/Dir.zig +9 -4
  853. package/std/Io/Dispatch.zig +8 -18
  854. package/std/Io/File/Writer.zig +8 -6
  855. package/std/Io/File.zig +0 -9
  856. package/std/Io/Kqueue.zig +3 -3
  857. package/std/Io/Reader.zig +8 -14
  858. package/std/Io/Semaphore.zig +112 -17
  859. package/std/Io/Terminal.zig +1 -1
  860. package/std/Io/Threaded.zig +183 -46
  861. package/std/Io/Uring.zig +18 -20
  862. package/std/Io/Writer.zig +10 -7
  863. package/std/Io/net/HostName.zig +11 -6
  864. package/std/Io/net.zig +11 -11
  865. package/std/Io.zig +104 -38
  866. package/std/Random/ChaCha.zig +2 -2
  867. package/std/Random/benchmark.zig +2 -2
  868. package/std/Random.zig +6 -6
  869. package/std/SemanticVersion.zig +1 -1
  870. package/std/Target/Query.zig +2 -2
  871. package/std/Target/aarch64.zig +620 -77
  872. package/std/Target/amdgcn.zig +421 -21
  873. package/std/Target/arm.zig +40 -6
  874. package/std/Target/bpf.zig +6 -0
  875. package/std/Target/hexagon.zig +41 -6
  876. package/std/Target/loongarch.zig +18 -0
  877. package/std/Target/mips.zig +6 -0
  878. package/std/Target/nvptx.zig +58 -35
  879. package/std/Target/powerpc.zig +27 -19
  880. package/std/Target/riscv.zig +415 -177
  881. package/std/Target/sparc.zig +17 -0
  882. package/std/Target/wasm.zig +7 -0
  883. package/std/Target/x86.zig +200 -31
  884. package/std/Target/xtensa.zig +65 -0
  885. package/std/Target.zig +67 -14
  886. package/std/Thread.zig +5 -2
  887. package/std/array_hash_map.zig +103 -57
  888. package/std/array_list.zig +10 -31
  889. package/std/base64.zig +5 -5
  890. package/std/bit_set.zig +86 -69
  891. package/std/c/haiku.zig +3 -0
  892. package/std/c/serenity.zig +1 -6
  893. package/std/c.zig +123 -32
  894. package/std/compress/flate/Decompress.zig +3 -4
  895. package/std/compress/zstd/Decompress.zig +7 -9
  896. package/std/crypto/25519/curve25519.zig +2 -2
  897. package/std/crypto/25519/edwards25519.zig +3 -3
  898. package/std/crypto/25519/ristretto255.zig +2 -2
  899. package/std/crypto/25519/scalar.zig +6 -6
  900. package/std/crypto/25519/x25519.zig +1 -1
  901. package/std/crypto/Certificate.zig +14 -2
  902. package/std/crypto/Sha1.zig +1 -1
  903. package/std/crypto/aegis.zig +45 -39
  904. package/std/crypto/aes_ccm.zig +22 -22
  905. package/std/crypto/aes_gcm.zig +10 -12
  906. package/std/crypto/aes_ocb.zig +9 -9
  907. package/std/crypto/argon2.zig +15 -15
  908. package/std/crypto/ascon.zig +75 -33
  909. package/std/crypto/bcrypt.zig +20 -10
  910. package/std/crypto/benchmark.zig +7 -7
  911. package/std/crypto/blake2.zig +100 -64
  912. package/std/crypto/cbc_mac.zig +1 -1
  913. package/std/crypto/chacha20.zig +10 -10
  914. package/std/crypto/cmac.zig +3 -3
  915. package/std/crypto/codecs/asn1/Oid.zig +12 -1
  916. package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
  917. package/std/crypto/codecs/asn1.zig +1 -1
  918. package/std/crypto/codecs/base64_hex_ct.zig +3 -5
  919. package/std/crypto/ecdsa.zig +9 -9
  920. package/std/crypto/ff.zig +4 -5
  921. package/std/crypto/ghash_polyval.zig +4 -4
  922. package/std/crypto/hkdf.zig +1 -1
  923. package/std/crypto/isap.zig +3 -3
  924. package/std/crypto/kangarootwelve.zig +1 -1
  925. package/std/crypto/keccak_p.zig +8 -8
  926. package/std/crypto/md5.zig +1 -1
  927. package/std/crypto/ml_dsa.zig +39 -39
  928. package/std/crypto/ml_kem.zig +12 -34
  929. package/std/crypto/modes.zig +2 -2
  930. package/std/crypto/pbkdf2.zig +1 -1
  931. package/std/crypto/pcurves/common.zig +4 -5
  932. package/std/crypto/pcurves/p256/scalar.zig +3 -3
  933. package/std/crypto/pcurves/p384/scalar.zig +2 -2
  934. package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
  935. package/std/crypto/pcurves/tests/p256.zig +5 -5
  936. package/std/crypto/pcurves/tests/p384.zig +5 -5
  937. package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
  938. package/std/crypto/salsa20.zig +8 -8
  939. package/std/crypto/sha2.zig +2 -2
  940. package/std/crypto/sha3.zig +2 -2
  941. package/std/crypto/siphash.zig +1 -1
  942. package/std/crypto/timing_safe.zig +10 -9
  943. package/std/crypto/tls/Client.zig +89 -13
  944. package/std/crypto/tls.zig +1 -1
  945. package/std/crypto.zig +4 -3
  946. package/std/debug/Dwarf.zig +15 -12
  947. package/std/debug/Pdb.zig +25 -17
  948. package/std/debug.zig +14 -8
  949. package/std/deque.zig +1 -1
  950. package/std/elf.zig +1 -1
  951. package/std/enums.zig +8 -8
  952. package/std/fmt/parse_float/decimal.zig +1 -1
  953. package/std/fmt/parse_float.zig +1 -1
  954. package/std/fmt.zig +14 -10
  955. package/std/fs/path.zig +7 -5
  956. package/std/hash/Adler32.zig +3 -3
  957. package/std/hash/benchmark.zig +2 -2
  958. package/std/hash/wyhash.zig +2 -2
  959. package/std/hash/xxhash.zig +0 -6
  960. package/std/hash_map.zig +20 -1
  961. package/std/heap/BufferFirstAllocator.zig +165 -0
  962. package/std/heap/debug_allocator.zig +2 -2
  963. package/std/heap/memory_pool.zig +34 -197
  964. package/std/heap.zig +2 -133
  965. package/std/http/Client.zig +21 -24
  966. package/std/http.zig +4 -5
  967. package/std/json/Scanner.zig +2 -2
  968. package/std/json/static.zig +2 -2
  969. package/std/{builtin.zig → lang.zig} +5 -1
  970. package/std/leb128.zig +2 -2
  971. package/std/math/big/int.zig +5 -5
  972. package/std/math/big.zig +4 -4
  973. package/std/math/copysign.zig +1 -1
  974. package/std/math/float.zig +62 -0
  975. package/std/math/frexp.zig +4 -4
  976. package/std/math/ilogb.zig +1 -1
  977. package/std/math/isfinite.zig +1 -1
  978. package/std/math/isinf.zig +1 -1
  979. package/std/math/isnan.zig +1 -2
  980. package/std/math/isnormal.zig +2 -2
  981. package/std/math/iszero.zig +2 -2
  982. package/std/math/ldexp.zig +2 -2
  983. package/std/math/log10.zig +0 -2
  984. package/std/math/modf.zig +1 -2
  985. package/std/math/nextafter.zig +3 -4
  986. package/std/math/pow.zig +1 -1
  987. package/std/math/powi.zig +2 -3
  988. package/std/math/signbit.zig +0 -1
  989. package/std/math.zig +21 -26
  990. package/std/mem/Allocator.zig +0 -6
  991. package/std/mem.zig +31 -31
  992. package/std/meta/trailer_flags.zig +1 -1
  993. package/std/meta.zig +4 -36
  994. package/std/multi_array_list.zig +24 -0
  995. package/std/os/emscripten.zig +7 -6
  996. package/std/os/linux/IoUring.zig +2 -0
  997. package/std/os/linux/aarch64.zig +41 -12
  998. package/std/os/linux/arc.zig +41 -12
  999. package/std/os/linux/arm.zig +41 -12
  1000. package/std/os/linux/bpf.zig +6 -0
  1001. package/std/os/linux/hexagon.zig +33 -11
  1002. package/std/os/linux/ioctl.zig +2 -2
  1003. package/std/os/linux/loongarch32.zig +41 -13
  1004. package/std/os/linux/loongarch64.zig +41 -12
  1005. package/std/os/linux/m68k.zig +41 -13
  1006. package/std/os/linux/mips.zig +67 -36
  1007. package/std/os/linux/mips64.zig +60 -29
  1008. package/std/os/linux/mipsn32.zig +60 -29
  1009. package/std/os/linux/or1k.zig +41 -12
  1010. package/std/os/linux/powerpc.zig +41 -12
  1011. package/std/os/linux/powerpc64.zig +41 -12
  1012. package/std/os/linux/riscv32.zig +41 -12
  1013. package/std/os/linux/riscv64.zig +41 -12
  1014. package/std/os/linux/s390x.zig +44 -7
  1015. package/std/os/linux/sparc64.zig +83 -52
  1016. package/std/os/linux/syscalls.zig +26 -1
  1017. package/std/os/linux/thumb.zig +52 -36
  1018. package/std/os/linux/x32.zig +41 -12
  1019. package/std/os/linux/x86.zig +44 -15
  1020. package/std/os/linux/x86_64.zig +41 -12
  1021. package/std/os/linux.zig +416 -450
  1022. package/std/os/plan9.zig +1 -1
  1023. package/std/os/uefi/hii.zig +1 -1
  1024. package/std/os/uefi/tables/boot_services.zig +9 -8
  1025. package/std/os/uefi/tables/runtime_services.zig +1 -1
  1026. package/std/os/windows.zig +130 -1
  1027. package/std/os.zig +41 -0
  1028. package/std/posix.zig +1 -1
  1029. package/std/process/Environ.zig +1 -1
  1030. package/std/process.zig +5 -4
  1031. package/std/simd.zig +4 -21
  1032. package/std/sort.zig +3 -3
  1033. package/std/start.zig +17 -4
  1034. package/std/std.zig +8 -1
  1035. package/std/tar/Writer.zig +39 -33
  1036. package/std/tar.zig +8 -4
  1037. package/std/testing.zig +2 -2
  1038. package/std/unicode.zig +13 -8
  1039. package/std/zig/Ast/Render.zig +6 -30
  1040. package/std/zig/Ast.zig +12 -37
  1041. package/std/zig/AstGen.zig +175 -332
  1042. package/std/zig/AstRlAnnotate.zig +1 -22
  1043. package/std/zig/AstSmith.zig +5 -11
  1044. package/std/zig/BuiltinFn.zig +0 -32
  1045. package/std/zig/ErrorBundle.zig +6 -2
  1046. package/std/zig/LibCInstallation.zig +34 -12
  1047. package/std/zig/Parse.zig +11 -76
  1048. package/std/zig/TokenSmith.zig +0 -6
  1049. package/std/zig/WindowsSdk.zig +18 -18
  1050. package/std/zig/Zir.zig +65 -132
  1051. package/std/zig/ZonGen.zig +19 -27
  1052. package/std/zig/llvm/Builder.zig +39 -33
  1053. package/std/zig/llvm/bitcode_writer.zig +3 -3
  1054. package/std/zig/llvm/ir.zig +8 -8
  1055. package/std/zig/system/arm.zig +56 -2
  1056. package/std/zig/system/windows.zig +34 -1
  1057. package/std/zig/system/x86.zig +60 -16
  1058. package/std/zig/system.zig +0 -10
  1059. package/std/zig/target.zig +1 -4
  1060. package/std/zig/tokenizer.zig +4 -43
  1061. package/std/zig.zig +3 -14
  1062. package/std/zip.zig +5 -5
  1063. package/std/zon/parse.zig +1 -1
  1064. package/zig.h +340 -1
  1065. package/compiler_rt/long_double.zig +0 -37
  1066. package/include/amxbf16transposeintrin.h +0 -94
  1067. package/include/amxcomplextransposeintrin.h +0 -303
  1068. package/include/amxfp16transposeintrin.h +0 -94
  1069. package/include/amxmovrstransposeintrin.h +0 -200
  1070. package/include/amxtf32transposeintrin.h +0 -105
  1071. package/include/amxtransposeintrin.h +0 -248
  1072. package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
  1073. package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
  1074. package/libc/mingw/math/lrintl.c +0 -18
  1075. package/libc/mingw/math/rintl.c +0 -16
  1076. package/libc/mingw/winpthreads/spinlock.c +0 -82
  1077. package/libc/musl/src/linux/tee.c +0 -8
  1078. package/libc/musl/src/math/i386/lrintl.c +0 -8
  1079. package/libc/musl/src/math/i386/rintl.c +0 -7
  1080. package/libc/musl/src/math/lrintl.c +0 -36
  1081. package/libc/musl/src/math/rintl.c +0 -29
  1082. package/libc/musl/src/math/s390x/rintl.c +0 -15
  1083. package/libc/musl/src/math/x32/lrintl.s +0 -7
  1084. package/libc/musl/src/math/x32/rintl.s +0 -6
  1085. package/libc/musl/src/math/x86_64/lrintl.c +0 -8
  1086. package/libc/musl/src/math/x86_64/rintl.c +0 -7
  1087. package/libc/musl/src/string/strdup.c +0 -10
  1088. package/libc/musl/src/string/strndup.c +0 -12
  1089. package/libc/musl/src/string/wcsdup.c +0 -10
  1090. package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
  1091. package/libc/musl/src/thread/pthread_spin_init.c +0 -6
  1092. package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
  1093. package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
  1094. package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
  1095. package/libc/musl/src/unistd/dup2.c +0 -20
  1096. package/libc/musl/src/unistd/dup3.c +0 -26
  1097. package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
  1098. package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
  1099. package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
  1100. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  1101. package/std/Build/Step/CheckObject.zig +0 -2764
  1102. /package/std/{builtin → lang}/assembly.zig +0 -0
@@ -0,0 +1,948 @@
1
+ # pretty printing for the zig language, zig standard library, and zig compiler.
2
+ # put commands in ~/.lldbinit to run them automatically when starting lldb
3
+ # `command script import /path/to/zig/lib/lldb/pretty_printers.py` to import this file
4
+ # `type category enable zig.lang` to enable pretty printing for the zig language
5
+ # `type category enable zig.std` to enable pretty printing for the zig standard library
6
+ # `type category enable zig.compiler` to enable pretty printing for the zig compiler
7
+ import lldb
8
+ import re
9
+
10
+ # Helpers
11
+
12
+ page_size = 1 << 12
13
+
14
+ def log2_int(i): return i.bit_length() - 1
15
+
16
+ def create_struct(parent, name, struct_type, inits):
17
+ struct_bytes, struct_data = bytearray(struct_type.size), lldb.SBData()
18
+ for field in struct_type.fields:
19
+ field_size = field.type.size
20
+ field_init = inits[field.name]
21
+ if isinstance(field_init, int):
22
+ match struct_data.byte_order:
23
+ case lldb.eByteOrderLittle:
24
+ byte_order = 'little'
25
+ case lldb.eByteOrderBig:
26
+ byte_order = 'big'
27
+ field_bytes = field_init.to_bytes(field_size, byte_order, signed=field.type.GetTypeFlags() & lldb.eTypeIsSigned != 0)
28
+ elif isinstance(field_init, lldb.SBValue):
29
+ field_bytes = field_init.data.uint8
30
+ else: return
31
+ match struct_data.byte_order:
32
+ case lldb.eByteOrderLittle:
33
+ field_bytes = field_bytes[:field_size]
34
+ field_start = field.byte_offset
35
+ struct_bytes[field_start:field_start + len(field_bytes)] = field_bytes
36
+ case lldb.eByteOrderBig:
37
+ field_bytes = field_bytes[-field_size:]
38
+ field_end = field.byte_offset + field_size
39
+ struct_bytes[field_end - len(field_bytes):field_end] = field_bytes
40
+ struct_data.SetData(lldb.SBError(), struct_bytes, struct_data.byte_order, struct_data.GetAddressByteSize())
41
+ return parent.CreateValueFromData(name, struct_data, struct_type)
42
+
43
+ # Define Zig Language
44
+
45
+ zig_keywords = {
46
+ 'addrspace',
47
+ 'align',
48
+ 'allowzero',
49
+ 'and',
50
+ 'anyframe',
51
+ 'anytype',
52
+ 'asm',
53
+ 'break',
54
+ 'callconv',
55
+ 'catch',
56
+ 'comptime',
57
+ 'const',
58
+ 'continue',
59
+ 'defer',
60
+ 'else',
61
+ 'enum',
62
+ 'errdefer',
63
+ 'error',
64
+ 'export',
65
+ 'extern',
66
+ 'fn',
67
+ 'for',
68
+ 'if',
69
+ 'inline',
70
+ 'noalias',
71
+ 'noinline',
72
+ 'nosuspend',
73
+ 'opaque',
74
+ 'or',
75
+ 'orelse',
76
+ 'packed',
77
+ 'pub',
78
+ 'resume',
79
+ 'return',
80
+ 'linksection',
81
+ 'struct',
82
+ 'suspend',
83
+ 'switch',
84
+ 'test',
85
+ 'threadlocal',
86
+ 'try',
87
+ 'union',
88
+ 'unreachable',
89
+ 'var',
90
+ 'volatile',
91
+ 'while',
92
+ }
93
+ zig_primitives = {
94
+ 'anyerror',
95
+ 'anyframe',
96
+ 'anyopaque',
97
+ 'bool',
98
+ 'c_int',
99
+ 'c_long',
100
+ 'c_longdouble',
101
+ 'c_longlong',
102
+ 'c_short',
103
+ 'c_uint',
104
+ 'c_ulong',
105
+ 'c_ulonglong',
106
+ 'c_ushort',
107
+ 'comptime_float',
108
+ 'comptime_int',
109
+ 'f128',
110
+ 'f16',
111
+ 'f32',
112
+ 'f64',
113
+ 'f80',
114
+ 'false',
115
+ 'isize',
116
+ 'noreturn',
117
+ 'null',
118
+ 'true',
119
+ 'type',
120
+ 'undefined',
121
+ 'usize',
122
+ 'void',
123
+ }
124
+ zig_integer_type = re.compile('[iu][1-9][0-9]+')
125
+ zig_identifier_regex = re.compile('[A-Z_a-z][0-9A-Z_a-z]*')
126
+ def zig_IsVariableName(string): return string != '_' and string not in zig_keywords and string not in zig_primitives and not zig_integer_type.fullmatch(string) and zig_identifier_regex.fullmatch(string)
127
+ def zig_IsFieldName(string): return string not in zig_keywords and zig_identifier_regex.fullmatch(string)
128
+
129
+ class zig_Slice_SynthProvider:
130
+ def __init__(self, value, _=None): self.value = value
131
+ def update(self):
132
+ try:
133
+ self.ptr = self.value.GetChildMemberWithName('ptr')
134
+ self.len = self.value.GetChildMemberWithName('len').unsigned if self.ptr.unsigned > page_size else 0
135
+ self.elem_type = self.ptr.type.GetPointeeType()
136
+ self.elem_size = self.elem_type.size
137
+ except: pass
138
+ def has_children(self): return True
139
+ def num_children(self): return self.len or 0
140
+ def get_child_index(self, name):
141
+ try: return int(name.removeprefix('[').removesuffix(']'))
142
+ except: return -1
143
+ def get_child_at_index(self, index):
144
+ if index not in range(self.len): return None
145
+ try: return self.ptr.CreateChildAtOffset('[%d]' % index, index * self.elem_size, self.elem_type)
146
+ except: return None
147
+
148
+ def zig_String_decode(value, offset=0, length=None):
149
+ try:
150
+ value = value.GetNonSyntheticValue()
151
+ data = value.GetChildMemberWithName('ptr').GetPointeeData(offset, length if length is not None else value.GetChildMemberWithName('len').unsigned)
152
+ b = bytes(data.uint8)
153
+ b = b.replace(b'\\', b'\\\\')
154
+ b = b.replace(b'\n', b'\\n')
155
+ b = b.replace(b'\r', b'\\r')
156
+ b = b.replace(b'\t', b'\\t')
157
+ b = b.replace(b'"', b'\\"')
158
+ b = b.replace(b'\'', b'\\\'')
159
+ s = b.decode(encoding='ascii', errors='backslashreplace')
160
+ return s if s.isprintable() else ''.join((c if c.isprintable() else '\\x%02x' % ord(c) for c in s))
161
+ except: return None
162
+ def zig_String_SummaryProvider(value, _=None): return '"%s"' % zig_String_decode(value)
163
+ def zig_String_AsIdentifier(value, pred):
164
+ string = zig_String_decode(value)
165
+ return string if pred(string) else '@"%s"' % string
166
+
167
+ class zig_Optional_SynthProvider:
168
+ def __init__(self, value, _=None): self.value = value
169
+ def update(self):
170
+ try:
171
+ self.child = self.value.GetChildMemberWithName('some').unsigned == 1 and self.value.GetChildMemberWithName('data').Clone('child')
172
+ except: pass
173
+ def has_children(self): return bool(self.child)
174
+ def num_children(self): return int(self.child)
175
+ def get_child_index(self, name): return 0 if self.child and (name == 'child' or name == '?') else -1
176
+ def get_child_at_index(self, index): return self.child if self.child and index == 0 else None
177
+ def zig_Optional_SummaryProvider(value, _=None):
178
+ child = value.GetChildMemberWithName('child')
179
+ return child or 'null'
180
+
181
+ class zig_ErrorUnion_SynthProvider:
182
+ def __init__(self, value, _=None): self.value = value
183
+ def update(self):
184
+ try:
185
+ self.error_set = self.value.GetChildMemberWithName('tag').Clone('error_set')
186
+ self.payload = self.value.GetChildMemberWithName('value').Clone('payload') if self.error_set.unsigned == 0 else None
187
+ except: pass
188
+ def has_children(self): return True
189
+ def num_children(self): return 1
190
+ def get_child_index(self, name): return 0 if name == ('payload' if self.payload else 'error_set') else -1
191
+ def get_child_at_index(self, index): return self.payload or self.error_set if index == 0 else None
192
+
193
+ class zig_TaggedUnion_SynthProvider:
194
+ def __init__(self, value, _=None): self.value = value
195
+ def update(self):
196
+ try:
197
+ self.tag = self.value.GetChildMemberWithName('tag')
198
+ self.payload = self.value.GetChildMemberWithName('payload').GetChildMemberWithName(self.tag.value)
199
+ except: pass
200
+ def has_children(self): return True
201
+ def num_children(self): return 1 + (self.payload is not None)
202
+ def get_child_index(self, name):
203
+ try: return ('tag', 'payload').index(name)
204
+ except: return -1
205
+ def get_child_at_index(self, index): return (self.tag, self.payload)[index] if index in range(2) else None
206
+
207
+ # Define Zig Standard Library
208
+
209
+ class std_MultiArrayList_SynthProvider:
210
+ def __init__(self, value, _=None): self.value = value
211
+ def update(self):
212
+ try:
213
+ self.len = 0
214
+
215
+ value_type = self.value.type
216
+ for helper in self.value.target.FindFunctions('%s.dbHelper' % value_type.name, lldb.eFunctionNameTypeFull):
217
+ ptr_self_type, ptr_child_type, ptr_field_type, ptr_entry_type = helper.function.type.GetFunctionArgumentTypes()
218
+ if ptr_self_type.GetPointeeType() == value_type: break
219
+ else: return
220
+
221
+ self.entry_type = ptr_entry_type.GetPointeeType()
222
+ self.bytes = self.value.GetChildMemberWithName('bytes')
223
+ self.len = self.value.GetChildMemberWithName('len').unsigned
224
+ self.capacity = self.value.GetChildMemberWithName('capacity').unsigned
225
+ except: pass
226
+ def has_children(self): return True
227
+ def num_children(self): return self.len
228
+ def get_child_index(self, name):
229
+ try: return int(name.removeprefix('[').removesuffix(']'))
230
+ except: return -1
231
+ def get_child_at_index(self, index):
232
+ try:
233
+ if index not in range(self.len): return None
234
+ offset = 0
235
+ data = lldb.SBData()
236
+ for field in self.entry_type.fields:
237
+ field_type = field.type.GetPointeeType()
238
+ field_size = field_type.size
239
+ data.Append(self.bytes.CreateChildAtOffset(field.name, offset + index * field_size, field_type).address_of.data)
240
+ offset += self.capacity * field_size
241
+ return self.bytes.CreateValueFromData('[%d]' % index, data, self.entry_type)
242
+ except: return None
243
+ class std_MultiArrayList_Slice_SynthProvider:
244
+ def __init__(self, value, _=None): self.value = value
245
+ def update(self):
246
+ try:
247
+ self.len = 0
248
+
249
+ value_type = self.value.type
250
+ for helper in self.value.target.FindFunctions('%s.dbHelper' % value_type.name, lldb.eFunctionNameTypeFull):
251
+ ptr_self_type, ptr_child_type, ptr_field_type, ptr_entry_type = helper.function.type.GetFunctionArgumentTypes()
252
+ if ptr_self_type.GetPointeeType() == value_type: break
253
+ else: return
254
+
255
+ self.fields = {member.name: index for index, member in enumerate(ptr_field_type.GetPointeeType().enum_members)}
256
+ self.entry_type = ptr_entry_type.GetPointeeType()
257
+ self.ptrs = self.value.GetChildMemberWithName('ptrs')
258
+ self.len = self.value.GetChildMemberWithName('len').unsigned
259
+ self.capacity = self.value.GetChildMemberWithName('capacity').unsigned
260
+ except: pass
261
+ def has_children(self): return True
262
+ def num_children(self): return self.len
263
+ def get_child_index(self, name):
264
+ try: return int(name.removeprefix('[').removesuffix(']'))
265
+ except: return -1
266
+ def get_child_at_index(self, index):
267
+ try:
268
+ if index not in range(self.len): return None
269
+ data = lldb.SBData()
270
+ for field in self.entry_type.fields:
271
+ field_type = field.type.GetPointeeType()
272
+ data.Append(self.ptrs.child[self.fields[field.name.removesuffix('_ptr')]].CreateChildAtOffset(field.name, index * field_type.size, field_type).address_of.data)
273
+ return self.ptrs.CreateValueFromData('[%d]' % index, data, self.entry_type)
274
+ except: return None
275
+
276
+ def MultiArrayList_Entry(type): return '^multi_array_list\\.MultiArrayList\\(%s\\)\\.Entry__struct_[1-9][0-9]*$' % type
277
+
278
+ class std_HashMapUnmanaged_SynthProvider:
279
+ def __init__(self, value, _=None): self.value = value
280
+ def update(self):
281
+ try:
282
+ self.capacity = 0
283
+ self.indices = tuple()
284
+
285
+ self.metadata = self.value.GetChildMemberWithName('metadata')
286
+ if not self.metadata.unsigned: return
287
+
288
+ value_type = self.value.type
289
+ for helper in self.value.target.FindFunctions('%s.dbHelper' % value_type.name, lldb.eFunctionNameTypeFull):
290
+ ptr_self_type, ptr_hdr_type, ptr_entry_type = helper.function.type.GetFunctionArgumentTypes()
291
+ if ptr_self_type.GetPointeeType() == value_type: break
292
+ else: return
293
+ self.entry_type = ptr_entry_type.GetPointeeType()
294
+
295
+ hdr_type = ptr_hdr_type.GetPointeeType()
296
+ hdr = self.metadata.CreateValueFromAddress('header', self.metadata.deref.load_addr - hdr_type.size, hdr_type)
297
+ self.values = hdr.GetChildMemberWithName('values')
298
+ self.keys = hdr.GetChildMemberWithName('keys')
299
+ self.capacity = hdr.GetChildMemberWithName('capacity').unsigned
300
+
301
+ self.indices = tuple(i for i, value in enumerate(self.metadata.GetPointeeData(0, self.capacity).sint8) if value < 0)
302
+ except: pass
303
+ def has_children(self): return True
304
+ def num_children(self): return len(self.indices)
305
+ def get_capacity(self): return self.capacity
306
+ def get_child_index(self, name):
307
+ try: return int(name.removeprefix('[').removesuffix(']'))
308
+ except: return -1
309
+ def get_child_at_index(self, index):
310
+ try:
311
+ fields = {name: base.CreateChildAtOffset(name, self.indices[index] * pointee_type.size, pointee_type).address_of.data for name, base, pointee_type in ((name, base, base.type.GetPointeeType()) for name, base in (('key_ptr', self.keys), ('value_ptr', self.values)))}
312
+ data = lldb.SBData()
313
+ for field in self.entry_type.fields: data.Append(fields[field.name])
314
+ return self.metadata.CreateValueFromData('[%d]' % index, data, self.entry_type)
315
+ except: return None
316
+ def std_HashMapUnmanaged_SummaryProvider(value, _=None):
317
+ synth = std_HashMapUnmanaged_SynthProvider(value.GetNonSyntheticValue(), _)
318
+ synth.update()
319
+ return 'len=%d capacity=%d' % (synth.num_children(), synth.get_capacity())
320
+
321
+ # formats a struct of fields of the form `name_ptr: *Type` by auto dereferencing its fields
322
+ class std_Entry_SynthProvider:
323
+ def __init__(self, value, _=None): self.value = value
324
+ def update(self):
325
+ try:
326
+ self.children = tuple(child.Clone(child.name.removesuffix('_ptr')) for child in self.value.children if child.type.GetPointeeType().size != 0)
327
+ self.indices = {child.name: i for i, child in enumerate(self.children)}
328
+ except: pass
329
+ def has_children(self): return self.num_children() != 0
330
+ def num_children(self): return len(self.children)
331
+ def get_child_index(self, name): return self.indices.get(name)
332
+ def get_child_at_index(self, index): return self.children[index].deref if index in range(len(self.children)) else None
333
+
334
+ # Define Zig Compiler
335
+
336
+ class TagAndPayload_SynthProvider:
337
+ def __init__(self, value, _=None): self.value = value
338
+ def update(self):
339
+ try:
340
+ self.tag = self.value.GetChildMemberWithName('tag') or self.value.GetChildMemberWithName('tag_ptr').deref.Clone('tag')
341
+ data = self.value.GetChildMemberWithName('data_ptr') or self.value.GetChildMemberWithName('data')
342
+ self.payload = data.GetChildMemberWithName('payload').GetChildMemberWithName(data.GetChildMemberWithName('tag').value)
343
+ except: pass
344
+ def has_children(self): return True
345
+ def num_children(self): return 2
346
+ def get_child_index(self, name):
347
+ try: return ('tag', 'payload').index(name)
348
+ except: return -1
349
+ def get_child_at_index(self, index): return (self.tag, self.payload)[index] if index in range(2) else None
350
+
351
+ def InstRef_SummaryProvider(value, _=None):
352
+ return value if any(value.unsigned == member.unsigned for member in value.type.enum_members) else (
353
+ 'InternPool.Index(%d)' % value.unsigned if value.unsigned < 0x80000000 else 'instructions[%d]' % (value.unsigned - 0x80000000))
354
+
355
+ def InstIndex_SummaryProvider(value, _=None):
356
+ return 'instructions[%d]' % value.unsigned if value.unsigned < 0x80000000 else 'temps[%d]' % (value.unsigned - 0x80000000)
357
+
358
+ class zig_DeclIndex_SynthProvider:
359
+ def __init__(self, value, _=None): self.value = value
360
+ def update(self):
361
+ try:
362
+ ip = InternPool_Find(self.value.thread)
363
+ if not ip: return
364
+ self.ptr = ip.GetChildMemberWithName('allocated_decls').GetChildAtIndex(self.value.unsigned).address_of.Clone('decl')
365
+ except: pass
366
+ def has_children(self): return True
367
+ def num_children(self): return 1
368
+ def get_child_index(self, name): return 0 if name == 'decl' else -1
369
+ def get_child_at_index(self, index): return self.ptr if index == 0 else None
370
+
371
+ class Module_Namespace__Module_Namespace_Index_SynthProvider:
372
+ def __init__(self, value, _=None): self.value = value
373
+ def update(self):
374
+ try:
375
+ ip = InternPool_Find(self.value.thread)
376
+ if not ip: return
377
+ self.ptr = ip.GetChildMemberWithName('allocated_namespaces').GetChildAtIndex(self.value.unsigned).address_of.Clone('namespace')
378
+ except: pass
379
+ def has_children(self): return True
380
+ def num_children(self): return 1
381
+ def get_child_index(self, name): return 0 if name == 'namespace' else -1
382
+ def get_child_at_index(self, index): return self.ptr if index == 0 else None
383
+
384
+ class TagOrPayloadPtr_SynthProvider:
385
+ def __init__(self, value, _=None): self.value = value
386
+ def update(self):
387
+ try:
388
+ value_type = self.value.type
389
+ for helper in self.value.target.FindFunctions('%s.dbHelper' % value_type.name, lldb.eFunctionNameTypeFull):
390
+ ptr_self_type, ptr_tag_to_payload_map_type = helper.function.type.GetFunctionArgumentTypes()
391
+ self_type = ptr_self_type.GetPointeeType()
392
+ if self_type == value_type: break
393
+ else: return
394
+ tag_to_payload_map = {field.name: field.type for field in ptr_tag_to_payload_map_type.GetPointeeType().fields}
395
+
396
+ tag = self.value.GetChildMemberWithName('tag_if_small_enough')
397
+ if tag.unsigned < page_size:
398
+ self.tag = tag.Clone('tag')
399
+ self.payload = None
400
+ else:
401
+ ptr_otherwise = self.value.GetChildMemberWithName('ptr_otherwise')
402
+ self.tag = ptr_otherwise.GetChildMemberWithName('tag')
403
+ self.payload = ptr_otherwise.Cast(tag_to_payload_map[self.tag.value]).GetChildMemberWithName('data').Clone('payload')
404
+ except: pass
405
+ def has_children(self): return True
406
+ def num_children(self): return 1 + (self.payload is not None)
407
+ def get_child_index(self, name):
408
+ try: return ('tag', 'payload').index(name)
409
+ except: return -1
410
+ def get_child_at_index(self, index): return (self.tag, self.payload)[index] if index in range(2) else None
411
+
412
+ def Module_Decl_name(decl):
413
+ error = lldb.SBError()
414
+ return decl.process.ReadCStringFromMemory(decl.GetChildMemberWithName('name').deref.load_addr, 256, error)
415
+
416
+ def Module_Namespace_RenderFullyQualifiedName(namespace):
417
+ parent = namespace.GetChildMemberWithName('parent')
418
+ if parent.unsigned < page_size: return zig_String_decode(namespace.GetChildMemberWithName('file_scope').GetChildMemberWithName('sub_file_path')).removesuffix('.zig').replace('/', '.')
419
+ return '.'.join((Module_Namespace_RenderFullyQualifiedName(parent), Module_Decl_name(namespace.GetChildMemberWithName('ty').GetChildMemberWithName('payload').GetChildMemberWithName('owner_decl').GetChildMemberWithName('decl'))))
420
+
421
+ def Module_Decl_RenderFullyQualifiedName(decl): return '.'.join((Module_Namespace_RenderFullyQualifiedName(decl.GetChildMemberWithName('src_namespace')), Module_Decl_name(decl)))
422
+
423
+ def OwnerDecl_RenderFullyQualifiedName(payload): return Module_Decl_RenderFullyQualifiedName(payload.GetChildMemberWithName('owner_decl').GetChildMemberWithName('decl'))
424
+
425
+ def InternPool_Find(thread):
426
+ for frame in thread:
427
+ ip = frame.FindVariable('ip') or frame.FindVariable('intern_pool')
428
+ if ip: return ip
429
+ mod = frame.FindVariable('zcu') or frame.FindVariable('mod') or frame.FindVariable('module')
430
+ if mod:
431
+ ip = mod.GetChildMemberWithName('intern_pool')
432
+ if ip: return ip
433
+
434
+ class InternPool_Index_SynthProvider:
435
+ def __init__(self, value, _=None): self.value = value
436
+ def update(self):
437
+ try:
438
+ index_type = self.value.type
439
+ for helper in self.value.target.FindFunctions('%s.dbHelper' % index_type.name, lldb.eFunctionNameTypeFull):
440
+ ptr_self_type, ptr_tag_to_encoding_map_type = helper.function.type.GetFunctionArgumentTypes()
441
+ if ptr_self_type.GetPointeeType() == index_type: break
442
+ else: return
443
+ tag_to_encoding_map = {field.name: field.type for field in ptr_tag_to_encoding_map_type.GetPointeeType().fields}
444
+
445
+ ip = InternPool_Find(self.value.thread)
446
+ if not ip: return
447
+ self.item = ip.GetChildMemberWithName('items').GetChildAtIndex(self.value.unsigned)
448
+ extra = ip.GetChildMemberWithName('extra').GetChildMemberWithName('items')
449
+ self.tag = self.item.GetChildMemberWithName('tag').Clone('tag')
450
+ self.data = None
451
+ self.trailing = None
452
+ data = self.item.GetChildMemberWithName('data')
453
+ encoding_type = tag_to_encoding_map[self.tag.value]
454
+ dynamic_values = {}
455
+ for encoding_field in encoding_type.fields:
456
+ if encoding_field.name == 'data':
457
+ if encoding_field.type.IsPointerType():
458
+ extra_index = data.unsigned
459
+ self.data = extra.GetChildAtIndex(extra_index).address_of.Cast(encoding_field.type).deref.Clone('data')
460
+ extra_index += encoding_field.type.GetPointeeType().num_fields
461
+ else:
462
+ self.data = data.Cast(encoding_field.type).Clone('data')
463
+ elif encoding_field.name == 'trailing':
464
+ trailing_data = lldb.SBData()
465
+ for trailing_field in encoding_field.type.fields:
466
+ trailing_data.Append(extra.GetChildAtIndex(extra_index).address_of.data)
467
+ trailing_len = dynamic_values['trailing.%s.len' % trailing_field.name].unsigned
468
+ trailing_data.Append(lldb.SBData.CreateDataFromInt(trailing_len, trailing_data.GetAddressByteSize()))
469
+ extra_index += trailing_len
470
+ self.trailing = self.data.CreateValueFromData('trailing', trailing_data, encoding_field.type)
471
+ else:
472
+ for path in encoding_field.type.GetPointeeType().name.removeprefix('%s::' % encoding_type.name).removeprefix('%s.' % encoding_type.name).partition('__')[0].split(' orelse '):
473
+ if path.startswith('data.'):
474
+ root = self.data
475
+ path = path[len('data'):]
476
+ else: return
477
+ dynamic_value = root.GetValueForExpressionPath(path)
478
+ if dynamic_value:
479
+ dynamic_values[encoding_field.name] = dynamic_value
480
+ break
481
+ except: pass
482
+ def has_children(self): return True
483
+ def num_children(self): return 2 + (self.trailing is not None)
484
+ def get_child_index(self, name):
485
+ try: return ('tag', 'data', 'trailing').index(name)
486
+ except: return -1
487
+ def get_child_at_index(self, index): return (self.tag, self.data, self.trailing)[index] if index in range(3) else None
488
+
489
+ def InternPool_NullTerminatedString_SummaryProvider(value, _=None):
490
+ try:
491
+ ip = InternPool_Find(value.thread)
492
+ if not ip: return
493
+ items = ip.GetChildMemberWithName('string_bytes').GetChildMemberWithName('items')
494
+ b = bytearray()
495
+ i = 0
496
+ while True:
497
+ x = items.GetChildAtIndex(value.unsigned + i).GetValueAsUnsigned()
498
+ if x == 0: break
499
+ b.append(x)
500
+ i += 1
501
+ s = b.decode(encoding='utf8', errors='backslashreplace')
502
+ s1 = s if s.isprintable() else ''.join((c if c.isprintable() else '\\x%02x' % ord(c) for c in s))
503
+ return '"%s"' % s1
504
+ except:
505
+ pass
506
+
507
+ def type_Type_pointer(payload):
508
+ pointee_type = payload.GetChildMemberWithName('pointee_type')
509
+ sentinel = payload.GetChildMemberWithName('sentinel').GetChildMemberWithName('child')
510
+ align = payload.GetChildMemberWithName('align').unsigned
511
+ addrspace = payload.GetChildMemberWithName('addrspace').value
512
+ bit_offset = payload.GetChildMemberWithName('bit_offset').unsigned
513
+ host_size = payload.GetChildMemberWithName('host_size').unsigned
514
+ vector_index = payload.GetChildMemberWithName('vector_index')
515
+ allowzero = payload.GetChildMemberWithName('allowzero').unsigned
516
+ const = not payload.GetChildMemberWithName('mutable').unsigned
517
+ volatile = payload.GetChildMemberWithName('volatile').unsigned
518
+ size = payload.GetChildMemberWithName('size').value
519
+
520
+ if size == 'One': summary = '*'
521
+ elif size == 'Many': summary = '[*'
522
+ elif size == 'Slice': summary = '['
523
+ elif size == 'C': summary = '[*c'
524
+ if sentinel: summary += ':%s' % value_Value_SummaryProvider(sentinel)
525
+ if size != 'One': summary += ']'
526
+ if allowzero: summary += 'allowzero '
527
+ if align != 0 or host_size != 0 or vector_index.value != 'none': summary += 'align(%d%s%s) ' % (align, ':%d:%d' % (bit_offset, host_size) if bit_offset != 0 or host_size != 0 else '', ':?' if vector_index.value == 'runtime' else ':%d' % vector_index.unsigned if vector_index.value != 'none' else '')
528
+ if addrspace != 'generic': summary += 'addrspace(.%s) ' % addrspace
529
+ if const: summary += 'const '
530
+ if volatile: summary += 'volatile '
531
+ summary += type_Type_SummaryProvider(pointee_type)
532
+ return summary
533
+
534
+ def type_Type_function(payload):
535
+ param_types = payload.GetChildMemberWithName('param_types').children
536
+ comptime_params = payload.GetChildMemberWithName('comptime_params').GetPointeeData(0, len(param_types)).uint8
537
+ return_type = payload.GetChildMemberWithName('return_type')
538
+ alignment = payload.GetChildMemberWithName('alignment').unsigned
539
+ noalias_bits = payload.GetChildMemberWithName('noalias_bits').unsigned
540
+ cc = payload.GetChildMemberWithName('cc').value
541
+ is_var_args = payload.GetChildMemberWithName('is_var_args').unsigned
542
+
543
+ return 'fn(%s)%s%s %s' % (', '.join(tuple(''.join(('comptime ' if comptime_param else '', 'noalias ' if noalias_bits & 1 << i else '', type_Type_SummaryProvider(param_type))) for i, (comptime_param, param_type) in enumerate(zip(comptime_params, param_types))) + (('...',) if is_var_args else ())), ' align(%d)' % alignment if alignment != 0 else '', ' callconv(.%s)' % cc if cc != 'Unspecified' else '', type_Type_SummaryProvider(return_type))
544
+
545
+ def type_Type_SummaryProvider(value, _=None):
546
+ tag = value.GetChildMemberWithName('tag').value
547
+ return type_tag_handlers.get(tag, lambda payload: tag)(value.GetChildMemberWithName('payload'))
548
+
549
+ type_tag_handlers = {
550
+ 'atomic_order': lambda payload: 'std.builtin.AtomicOrder',
551
+ 'atomic_rmw_op': lambda payload: 'std.builtin.AtomicRmwOp',
552
+ 'calling_convention': lambda payload: 'std.builtin.CallingConvention',
553
+ 'address_space': lambda payload: 'std.builtin.AddressSpace',
554
+ 'float_mode': lambda payload: 'std.builtin.FloatMode',
555
+ 'reduce_op': lambda payload: 'std.builtin.ReduceOp',
556
+ 'modifier': lambda payload: 'std.builtin.CallModifier',
557
+ 'prefetch_options': lambda payload: 'std.builtin.PrefetchOptions',
558
+ 'export_options': lambda payload: 'std.builtin.ExportOptions',
559
+ 'extern_options': lambda payload: 'std.builtin.ExternOptions',
560
+ 'type_info': lambda payload: 'std.builtin.Type',
561
+
562
+ 'enum_literal': lambda payload: '@EnumLiteral()',
563
+ 'null': lambda payload: '@TypeOf(null)',
564
+ 'undefined': lambda payload: '@TypeOf(undefined)',
565
+ 'empty_struct_literal': lambda payload: '@TypeOf(.{})',
566
+
567
+ 'anyerror_void_error_union': lambda payload: 'anyerror!void',
568
+ 'slice_const_u8': lambda payload: '[]const u8',
569
+ 'slice_const_u8_sentinel_0': lambda payload: '[:0]const u8',
570
+ 'fn_noreturn_no_args': lambda payload: 'fn() noreturn',
571
+ 'fn_void_no_args': lambda payload: 'fn() void',
572
+ 'fn_naked_noreturn_no_args': lambda payload: 'fn() callconv(.naked) noreturn',
573
+ 'fn_ccc_void_no_args': lambda payload: 'fn() callconv(.c) void',
574
+ 'ptr_usize': lambda payload: '*usize',
575
+ 'ptr_const_comptime_int': lambda payload: '*const comptime_int',
576
+ 'manyptr_u8': lambda payload: '[*]u8',
577
+ 'manyptr_const_u8': lambda payload: '[*]const u8',
578
+ 'manyptr_const_u8_sentinel_0': lambda payload: '[*:0]const u8',
579
+
580
+ 'function': type_Type_function,
581
+ 'error_union': lambda payload: '%s!%s' % (type_Type_SummaryProvider(payload.GetChildMemberWithName('error_set')), type_Type_SummaryProvider(payload.GetChildMemberWithName('payload'))),
582
+ 'array_u8': lambda payload: '[%d]u8' % payload.unsigned,
583
+ 'array_u8_sentinel_0': lambda payload: '[%d:0]u8' % payload.unsigned,
584
+ 'vector': lambda payload: '@Vector(%d, %s)' % (payload.GetChildMemberWithName('len').unsigned, type_Type_SummaryProvider(payload.GetChildMemberWithName('elem_type'))),
585
+ 'array': lambda payload: '[%d]%s' % (payload.GetChildMemberWithName('len').unsigned, type_Type_SummaryProvider(payload.GetChildMemberWithName('elem_type'))),
586
+ 'array_sentinel': lambda payload: '[%d:%s]%s' % (payload.GetChildMemberWithName('len').unsigned, value_Value_SummaryProvider(payload.GetChildMemberWithName('sentinel')), type_Type_SummaryProvider(payload.GetChildMemberWithName('elem_type'))),
587
+ 'tuple': lambda payload: 'tuple{%s}' % ', '.join(('comptime %%s = %s' % value_Value_SummaryProvider(value) if value.GetChildMemberWithName('tag').value != 'unreachable_value' else '%s') % type_Type_SummaryProvider(type) for type, value in zip(payload.GetChildMemberWithName('types').children, payload.GetChildMemberWithName('values').children)),
588
+ 'anon_struct': lambda payload: 'struct{%s}' % ', '.join(('comptime %%s: %%s = %s' % value_Value_SummaryProvider(value) if value.GetChildMemberWithName('tag').value != 'unreachable_value' else '%s: %s') % (zig_String_AsIdentifier(name, zig_IsFieldName), type_Type_SummaryProvider(type)) for name, type, value in zip(payload.GetChildMemberWithName('names').children, payload.GetChildMemberWithName('types').children, payload.GetChildMemberWithName('values').children)),
589
+ 'pointer': type_Type_pointer,
590
+ 'single_const_pointer': lambda payload: '*const %s' % type_Type_SummaryProvider(payload),
591
+ 'single_mut_pointer': lambda payload: '*%s' % type_Type_SummaryProvider(payload),
592
+ 'many_const_pointer': lambda payload: '[*]const %s' % type_Type_SummaryProvider(payload),
593
+ 'many_mut_pointer': lambda payload: '[*]%s' % type_Type_SummaryProvider(payload),
594
+ 'c_const_pointer': lambda payload: '[*c]const %s' % type_Type_SummaryProvider(payload),
595
+ 'c_mut_pointer': lambda payload: '[*c]%s' % type_Type_SummaryProvider(payload),
596
+ 'slice_const': lambda payload: '[]const %s' % type_Type_SummaryProvider(payload),
597
+ 'mut_slice': lambda payload: '[]%s' % type_Type_SummaryProvider(payload),
598
+ 'int_signed': lambda payload: 'i%d' % payload.unsigned,
599
+ 'int_unsigned': lambda payload: 'u%d' % payload.unsigned,
600
+ 'optional': lambda payload: '?%s' % type_Type_SummaryProvider(payload),
601
+ 'optional_single_mut_pointer': lambda payload: '?*%s' % type_Type_SummaryProvider(payload),
602
+ 'optional_single_const_pointer': lambda payload: '?*const %s' % type_Type_SummaryProvider(payload),
603
+ 'anyframe_T': lambda payload: 'anyframe->%s' % type_Type_SummaryProvider(payload),
604
+ 'error_set': lambda payload: type_tag_handlers['error_set_merged'](payload.GetChildMemberWithName('names')),
605
+ 'error_set_single': lambda payload: 'error{%s}' % zig_String_AsIdentifier(payload, zig_IsFieldName),
606
+ 'error_set_merged': lambda payload: 'error{%s}' % ','.join(zig_String_AsIdentifier(child.GetChildMemberWithName('key'), zig_IsFieldName) for child in payload.GetChildMemberWithName('entries').children),
607
+ 'error_set_inferred': lambda payload: '@typeInfo(@typeInfo(@TypeOf(%s)).@"fn".return_type.?).error_union.error_set' % OwnerDecl_RenderFullyQualifiedName(payload.GetChildMemberWithName('func')),
608
+
609
+ 'enum_full': OwnerDecl_RenderFullyQualifiedName,
610
+ 'enum_nonexhaustive': OwnerDecl_RenderFullyQualifiedName,
611
+ 'enum_numbered': OwnerDecl_RenderFullyQualifiedName,
612
+ 'enum_simple': OwnerDecl_RenderFullyQualifiedName,
613
+ 'struct': OwnerDecl_RenderFullyQualifiedName,
614
+ 'union': OwnerDecl_RenderFullyQualifiedName,
615
+ 'union_safety_tagged': OwnerDecl_RenderFullyQualifiedName,
616
+ 'union_tagged': OwnerDecl_RenderFullyQualifiedName,
617
+ 'opaque': OwnerDecl_RenderFullyQualifiedName,
618
+ }
619
+
620
+ def value_Value_str_lit(payload):
621
+ for frame in payload.thread:
622
+ mod = frame.FindVariable('zcu') or frame.FindVariable('mod') or frame.FindVariable('module')
623
+ if mod: break
624
+ else: return
625
+ return '"%s"' % zig_String_decode(mod.GetChildMemberWithName('string_literal_bytes').GetChildMemberWithName('items'), payload.GetChildMemberWithName('index').unsigned, payload.GetChildMemberWithName('len').unsigned)
626
+
627
+ def value_Value_SummaryProvider(value, _=None):
628
+ tag = value.GetChildMemberWithName('tag').value
629
+ return value_tag_handlers.get(tag, lambda payload: tag.removesuffix('_type'))(value.GetChildMemberWithName('payload'))
630
+
631
+ value_tag_handlers = {
632
+ 'undef': lambda payload: 'undefined',
633
+ 'zero': lambda payload: '0',
634
+ 'one': lambda payload: '1',
635
+ 'void_value': lambda payload: '{}',
636
+ 'unreachable_value': lambda payload: 'unreachable',
637
+ 'null_value': lambda payload: 'null',
638
+ 'bool_true': lambda payload: 'true',
639
+ 'bool_false': lambda payload: 'false',
640
+
641
+ 'empty_struct_value': lambda payload: '.{}',
642
+ 'empty_array': lambda payload: '.{}',
643
+
644
+ 'ty': type_Type_SummaryProvider,
645
+ 'int_type': lambda payload: '%c%d' % (payload.GetChildMemberWithName('bits').unsigned, 's' if payload.GetChildMemberWithName('signed').unsigned == 1 else 'u'),
646
+ 'int_u64': lambda payload: '%d' % payload.unsigned,
647
+ 'int_i64': lambda payload: '%d' % payload.signed,
648
+ 'int_big_positive': lambda payload: sum(child.unsigned << i * child.type.size * 8 for i, child in enumerate(payload.children)),
649
+ 'int_big_negative': lambda payload: '-%s' % value_tag_handlers['int_big_positive'](payload),
650
+ 'function': OwnerDecl_RenderFullyQualifiedName,
651
+ 'extern_fn': OwnerDecl_RenderFullyQualifiedName,
652
+ 'variable': lambda payload: value_Value_SummaryProvider(payload.GetChildMemberWithName('decl').GetChildMemberWithName('val')),
653
+ 'runtime_value': value_Value_SummaryProvider,
654
+ 'decl_ref': lambda payload: value_Value_SummaryProvider(payload.GetChildMemberWithName('decl').GetChildMemberWithName('val')),
655
+ 'decl_ref_mut': lambda payload: value_Value_SummaryProvider(payload.GetChildMemberWithName('decl_index').GetChildMemberWithName('decl').GetChildMemberWithName('val')),
656
+ 'comptime_field_ptr': lambda payload: '&%s' % value_Value_SummaryProvider(payload.GetChildMemberWithName('field_val')),
657
+ 'elem_ptr': lambda payload: '(%s)[%d]' % (value_Value_SummaryProvider(payload.GetChildMemberWithName('array_ptr')), payload.GetChildMemberWithName('index').unsigned),
658
+ 'field_ptr': lambda payload: '(%s).field[%d]' % (value_Value_SummaryProvider(payload.GetChildMemberWithName('container_ptr')), payload.GetChildMemberWithName('field_index').unsigned),
659
+ 'bytes': lambda payload: '"%s"' % zig_String_decode(payload),
660
+ 'str_lit': value_Value_str_lit,
661
+ 'repeated': lambda payload: '.{%s} ** _' % value_Value_SummaryProvider(payload),
662
+ 'empty_array_sentinel': lambda payload: '.{%s}' % value_Value_SummaryProvider(payload),
663
+ 'slice': lambda payload: '(%s)[0..%s]' % tuple(value_Value_SummaryProvider(payload.GetChildMemberWithName(name)) for name in ('ptr', 'len')),
664
+ 'float_16': lambda payload: payload.value,
665
+ 'float_32': lambda payload: payload.value,
666
+ 'float_64': lambda payload: payload.value,
667
+ 'float_80': lambda payload: payload.value,
668
+ 'float_128': lambda payload: payload.value,
669
+ 'enum_literal': lambda payload: '.%s' % zig_String_AsIdentifier(payload, zig_IsFieldName),
670
+ 'enum_field_index': lambda payload: 'field[%d]' % payload.unsigned,
671
+ 'error': lambda payload: 'error.%s' % zig_String_AsIdentifier(payload.GetChildMemberWithName('name'), zig_IsFieldName),
672
+ 'eu_payload': value_Value_SummaryProvider,
673
+ 'eu_payload_ptr': lambda payload: '&((%s).* catch unreachable)' % value_Value_SummaryProvider(payload.GetChildMemberWithName('container_ptr')),
674
+ 'opt_payload': value_Value_SummaryProvider,
675
+ 'opt_payload_ptr': lambda payload: '&(%s).*.?' % value_Value_SummaryProvider(payload.GetChildMemberWithName('container_ptr')),
676
+ 'aggregate': lambda payload: '.{%s}' % ', '.join(map(value_Value_SummaryProvider, payload.children)),
677
+ 'union': lambda payload: '.{.%s = %s}' % tuple(value_Value_SummaryProvider(payload.GetChildMemberWithName(name)) for name in ('tag', 'val')),
678
+
679
+ 'lazy_align': lambda payload: '@alignOf(%s)' % type_Type_SummaryProvider(payload),
680
+ 'lazy_size': lambda payload: '@sizeOf(%s)' % type_Type_SummaryProvider(payload),
681
+ }
682
+
683
+ # Define Zig Compiler (compiled with the self-hosted backend)
684
+
685
+ class root_InternPool_Local_List_SynthProvider:
686
+ def __init__(self, value, _=None): self.value = value
687
+ def update(self):
688
+ capacity = self.value.EvaluateExpression('@as(*@This().Header, @alignCast(@ptrCast(@this().bytes - @This().bytes_offset))).capacity')
689
+ self.view = create_struct(self.value, '.view', self.value.type.FindDirectNestedType('View'), { 'bytes': self.value.GetChildMemberWithName('bytes'), 'len': capacity, 'capacity': capacity }).GetNonSyntheticValue()
690
+ def has_children(self): return True
691
+ def num_children(self): return 1
692
+ def get_child_index(self, name):
693
+ try: return ('view',).index(name)
694
+ except: pass
695
+ def get_child_at_index(self, index):
696
+ try: return (self.view,)[index]
697
+ except: pass
698
+
699
+ expr_path_re = re.compile(r'\{([^}]+)%([^%#}]+)(?:#([^%#}]+))?\}')
700
+ def root_InternPool_Index_SummaryProvider(value, _=None):
701
+ unwrapped = value.GetChildMemberWithName('unwrapped')
702
+ if not unwrapped: return '' # .none
703
+ tag = unwrapped.GetChildMemberWithName('tag')
704
+ tag_value = tag.value
705
+ summary = tag.CreateValueFromType(tag.type).GetChildMemberWithName('encodings').GetChildMemberWithName(tag_value.removeprefix('.').removeprefix('@"').removesuffix('"').replace(r'\"', '"')).GetChildMemberWithName('summary')
706
+ if not summary: return tag_value
707
+ return re.sub(
708
+ expr_path_re,
709
+ lambda matchobj: getattr(unwrapped.GetValueForExpressionPath(matchobj[1]), matchobj[2]).strip(matchobj[3] or ''),
710
+ summary.summary.removeprefix('.').removeprefix('@"').removesuffix('"').replace(r'\"', '"'),
711
+ )
712
+
713
+ class root_InternPool_Index_SynthProvider:
714
+ def __init__(self, value, _=None): self.value = value
715
+ def update(self):
716
+ self.unwrapped = None
717
+ wrapped = self.value.unsigned
718
+ if wrapped == (1 << 32) - 1: return
719
+ unwrapped_type = self.value.type.FindDirectNestedType('Unwrapped')
720
+ ip = self.value.CreateValueFromType(unwrapped_type).GetChildMemberWithName('debug_state').GetChildMemberWithName('intern_pool').GetNonSyntheticValue().GetChildMemberWithName('?')
721
+ tid_shift_30 = ip.GetChildMemberWithName('tid_shift_30').unsigned
722
+ self.unwrapped = create_struct(self.value, '.unwrapped', unwrapped_type, { 'tid': wrapped >> tid_shift_30, 'index': wrapped & (1 << tid_shift_30) - 1 })
723
+ def has_children(self): return True
724
+ def num_children(self): return 0
725
+ def get_child_index(self, name):
726
+ try: return ('unwrapped',).index(name)
727
+ except: pass
728
+ def get_child_at_index(self, index):
729
+ try: return (self.unwrapped,)[index]
730
+ except: pass
731
+
732
+ class root_InternPool_Index_Unwrapped_SynthProvider:
733
+ def __init__(self, value, _=None): self.value = value
734
+ def update(self):
735
+ self.tag, self.index, self.data, self.payload, self.trailing = None, None, None, None, None
736
+ index = self.value.GetChildMemberWithName('index')
737
+ ip = self.value.CreateValueFromType(self.value.type).GetChildMemberWithName('debug_state').GetChildMemberWithName('intern_pool').GetNonSyntheticValue().GetChildMemberWithName('?')
738
+ shared = ip.GetChildMemberWithName('locals').GetSyntheticValue().child[self.value.GetChildMemberWithName('tid').unsigned].GetChildMemberWithName('shared')
739
+ item = shared.GetChildMemberWithName('items').GetChildMemberWithName('view').child[index.unsigned]
740
+ self.tag, item_data = item.GetChildMemberWithName('tag'), item.GetChildMemberWithName('data')
741
+ encoding = self.tag.CreateValueFromType(self.tag.type).GetChildMemberWithName('encodings').GetChildMemberWithName(self.tag.value.removeprefix('.').removeprefix('@"').removesuffix('"').replace(r'\"', '"'))
742
+ encoding_index, encoding_data, encoding_payload, encoding_trailing, encoding_config = encoding.GetChildMemberWithName('index'), encoding.GetChildMemberWithName('data'), encoding.GetChildMemberWithName('payload'), encoding.GetChildMemberWithName('trailing'), encoding.GetChildMemberWithName('config')
743
+ if encoding_index:
744
+ index_type = encoding_index.GetValueAsType()
745
+ index_bytes, index_data = index.data.uint8, lldb.SBData()
746
+ match index_data.byte_order:
747
+ case lldb.eByteOrderLittle:
748
+ index_bytes = bytes(index_bytes[:index_type.size])
749
+ case lldb.eByteOrderBig:
750
+ index_bytes = bytes(index_bytes[-index_type.size:])
751
+ index_data.SetData(lldb.SBError(), index_bytes, index_data.byte_order, index_data.GetAddressByteSize())
752
+ self.index = self.value.CreateValueFromData('.index', index_data, index_type)
753
+ elif encoding_data:
754
+ data_type = encoding_data.GetValueAsType()
755
+ data_bytes, data_data = item_data.data.uint8, lldb.SBData()
756
+ match data_data.byte_order:
757
+ case lldb.eByteOrderLittle:
758
+ data_bytes = bytes(data_bytes[:data_type.size])
759
+ case lldb.eByteOrderBig:
760
+ data_bytes = bytes(data_bytes[-data_type.size:])
761
+ data_data.SetData(lldb.SBError(), data_bytes, data_data.byte_order, data_data.GetAddressByteSize())
762
+ self.data = self.value.CreateValueFromData('.data', data_data, data_type)
763
+ elif encoding_payload:
764
+ extra = shared.GetChildMemberWithName('extra').GetChildMemberWithName('view').GetChildMemberWithName('0')
765
+ extra_index = item_data.unsigned
766
+ payload_type = encoding_payload.GetValueAsType()
767
+ payload_fields = dict()
768
+ for payload_field in payload_type.fields:
769
+ payload_fields[payload_field.name] = extra.child[extra_index]
770
+ extra_index += 1
771
+ self.payload = create_struct(self.value, '.payload', payload_type, payload_fields)
772
+ if encoding_trailing and encoding_config:
773
+ trailing_type = encoding_trailing.GetValueAsType()
774
+ trailing_bytes, trailing_data = bytearray(trailing_type.size), lldb.SBData()
775
+ def eval_config(config_name):
776
+ expr = encoding_config.GetChildMemberWithName(config_name).summary.removeprefix('.').removeprefix('@"').removesuffix('"').replace(r'\"', '"')
777
+ if 'payload.' in expr:
778
+ return self.payload.EvaluateExpression(expr.replace('payload.', '@this().'))
779
+ elif expr.startswith('trailing.'):
780
+ field_type, field_byte_offset = trailing_type, 0
781
+ expr_parts = expr.split('.')
782
+ for expr_part in expr_parts[1:]:
783
+ field = next(filter(lambda field: field.name == expr_part, field_type.fields))
784
+ field_type = field.type
785
+ field_byte_offset += field.byte_offset
786
+ field_data = lldb.SBData()
787
+ field_bytes = trailing_bytes[field_byte_offset:field_byte_offset + field_type.size]
788
+ field_data.SetData(lldb.SBError(), field_bytes, field_data.byte_order, field_data.GetAddressByteSize())
789
+ return self.value.CreateValueFromData('.%s' % expr_parts[-1], field_data, field_type)
790
+ else:
791
+ return self.value.frame.EvaluateExpression(expr)
792
+ for trailing_field in trailing_type.fields:
793
+ trailing_field_type = trailing_field.type
794
+ trailing_field_name = 'trailing.%s' % trailing_field.name
795
+ trailing_field_byte_offset = trailing_field.byte_offset
796
+ while True:
797
+ match [trailing_field_type_field.name for trailing_field_type_field in trailing_field_type.fields]:
798
+ case ['has_value', '?']:
799
+ has_value_field, child_field = trailing_field_type.fields
800
+ trailing_field_name = '%s.%s' % (trailing_field_name, child_field.name)
801
+ match eval_config(trailing_field_name).value:
802
+ case 'true':
803
+ if has_value_field.type.name == 'bool':
804
+ trailing_bytes[trailing_field_byte_offset + has_value_field.byte_offset] = True
805
+ trailing_field_type = child_field.type
806
+ trailing_field_byte_offset += child_field.byte_offset
807
+ case 'false':
808
+ break
809
+ case ['ptr', 'len']:
810
+ ptr_field, len_field = trailing_field_type.fields
811
+ ptr_field_byte_offset, len_field_byte_offset = trailing_field_byte_offset + ptr_field.byte_offset, trailing_field_byte_offset + len_field.byte_offset
812
+ trailing_bytes[ptr_field_byte_offset:ptr_field_byte_offset + ptr_field.type.size] = extra.child[extra_index].address_of.data.uint8
813
+ len_field_value = eval_config('%s.len' % trailing_field_name)
814
+ len_field_size = len_field.type.size
815
+ match trailing_data.byte_order:
816
+ case lldb.eByteOrderLittle:
817
+ len_field_bytes = len_field_value.data.uint8[:len_field_size]
818
+ trailing_bytes[len_field_byte_offset:len_field_byte_offset + len(len_field_bytes)] = len_field_bytes
819
+ case lldb.eByteOrderBig:
820
+ len_field_bytes = len_field_value.data.uint8[-len_field_size:]
821
+ len_field_end = len_field_byte_offset + len_field_size
822
+ trailing_bytes[len_field_end - len(len_field_bytes):len_field_end] = len_field_bytes
823
+ extra_index += (ptr_field.type.GetPointeeType().size * len_field_value.unsigned + 3) // 4
824
+ break
825
+ case _:
826
+ for offset in range(0, trailing_field_type.size, 4):
827
+ trailing_bytes[trailing_field_byte_offset + offset:trailing_field_byte_offset + offset + 4] = extra.child[extra_index].data.uint8
828
+ extra_index += 1
829
+ break
830
+ trailing_data.SetData(lldb.SBError(), trailing_bytes, trailing_data.byte_order, trailing_data.GetAddressByteSize())
831
+ self.trailing = self.value.CreateValueFromData('.trailing', trailing_data, trailing_type)
832
+ def has_children(self): return True
833
+ def num_children(self): return 1 + ((self.index or self.data or self.payload) is not None) + (self.trailing is not None)
834
+ def get_child_index(self, name):
835
+ try: return ('tag', 'index' if self.index is not None else 'data' if self.data is not None else 'payload', 'trailing').index(name)
836
+ except: pass
837
+ def get_child_at_index(self, index):
838
+ try: return (self.tag, self.index or self.data or self.payload, self.trailing)[index]
839
+ except: pass
840
+
841
+ def root_InternPool_String_SummaryProvider(value, _=None):
842
+ wrapped = value.unsigned
843
+ if wrapped == (1 << 32) - 1: return ''
844
+ ip = value.CreateValueFromType(value.type).GetChildMemberWithName('debug_state').GetChildMemberWithName('intern_pool').GetNonSyntheticValue().GetChildMemberWithName('?')
845
+ tid_shift_32 = ip.GetChildMemberWithName('tid_shift_32').unsigned
846
+ locals_value = ip.GetChildMemberWithName('locals').GetSyntheticValue()
847
+ local_value = locals_value.child[wrapped >> tid_shift_32]
848
+ if local_value is None:
849
+ wrapped = 0
850
+ local_value = locals_value.child[0]
851
+ string = local_value.GetChildMemberWithName('shared').GetChildMemberWithName('strings').GetChildMemberWithName('view').GetChildMemberWithName('0').child[wrapped & (1 << tid_shift_32) - 1].address_of
852
+ string.format = lldb.eFormatCString
853
+ return string.value
854
+
855
+ class root_InternPool_TrackedInst_Index_SynthProvider:
856
+ def __init__(self, value, _=None): self.value = value
857
+ def update(self):
858
+ self.tracked_inst = None
859
+ wrapped = self.value.unsigned
860
+ if wrapped == (1 << 32) - 1: return
861
+ ip = self.value.CreateValueFromType(self.value.type).GetChildMemberWithName('debug_state').GetChildMemberWithName('intern_pool').GetNonSyntheticValue().GetChildMemberWithName('?')
862
+ tid_shift_32 = ip.GetChildMemberWithName('tid_shift_32').unsigned
863
+ locals_value = ip.GetChildMemberWithName('locals').GetSyntheticValue()
864
+ local_value = locals_value.child[wrapped >> tid_shift_32]
865
+ if local_value is None:
866
+ wrapped = 0
867
+ local_value = locals_value.child[0]
868
+ self.tracked_inst = local_value.GetChildMemberWithName('shared').GetChildMemberWithName('tracked_insts').GetChildMemberWithName('view').GetChildMemberWithName('0').child[wrapped & (1 << tid_shift_32) - 1]
869
+ def has_children(self): return False if self.tracked_inst is None else self.tracked_inst.GetNumChildren(1) > 0
870
+ def num_children(self): return 0 if self.tracked_inst is None else self.tracked_inst.GetNumChildren()
871
+ def get_child_index(self, name): return -1 if self.tracked_inst is None else self.tracked_inst.GetIndexOfChildWithName(name)
872
+ def get_child_at_index(self, index): return None if self.tracked_inst is None else self.tracked_inst.GetChildAtIndex(index)
873
+
874
+ class root_InternPool_Nav_Index_SynthProvider:
875
+ def __init__(self, value, _=None): self.value = value
876
+ def update(self):
877
+ self.nav = None
878
+ wrapped = self.value.unsigned
879
+ if wrapped == (1 << 32) - 1: return
880
+ ip = self.value.CreateValueFromType(self.value.type).GetChildMemberWithName('debug_state').GetChildMemberWithName('intern_pool').GetNonSyntheticValue().GetChildMemberWithName('?')
881
+ tid_shift_32 = ip.GetChildMemberWithName('tid_shift_32').unsigned
882
+ locals_value = ip.GetChildMemberWithName('locals').GetSyntheticValue()
883
+ local_value = locals_value.child[wrapped >> tid_shift_32]
884
+ if local_value is None:
885
+ wrapped = 0
886
+ local_value = locals_value.child[0]
887
+ self.nav = local_value.GetChildMemberWithName('shared').GetChildMemberWithName('navs').GetChildMemberWithName('view').child[wrapped & (1 << tid_shift_32) - 1]
888
+ def has_children(self): return False if self.nav is None else self.nav.GetNumChildren(1) > 0
889
+ def num_children(self): return 0 if self.nav is None else self.nav.GetNumChildren()
890
+ def get_child_index(self, name): return -1 if self.nav is None else self.nav.GetIndexOfChildWithName(name)
891
+ def get_child_at_index(self, index): return None if self.nav is None else self.nav.GetChildAtIndex(index)
892
+
893
+ # Initialize
894
+
895
+ def add(debugger, *, category, regex=False, type, identifier=None, synth=False, inline_children=False, expand=False, summary=False):
896
+ prefix = '.'.join((__name__, (identifier or type).replace('.', '_').replace(':', '_')))
897
+ if summary: debugger.HandleCommand('type summary add --category %s%s%s "%s"' % (category, ' --inline-children' if inline_children else ''.join((' --expand' if expand else '', ' --python-function %s_SummaryProvider' % prefix if summary == True else ' --summary-string "%s"' % summary)), ' --regex' if regex else '', type))
898
+ if synth: debugger.HandleCommand('type synthetic add --category %s%s --python-class %s_SynthProvider "%s"' % (category, ' --regex' if regex else '', prefix, type))
899
+
900
+ def __lldb_init_module(debugger, _=None):
901
+ # Initialize Zig Categories
902
+ debugger.HandleCommand('type category define --language c99 zig.lang zig.std')
903
+
904
+ # Initialize Zig Language
905
+ add(debugger, category='zig.lang', regex=True, type='^\\[\\]', identifier='zig_Slice', synth=True, expand=True, summary='len=${svar%#}')
906
+ add(debugger, category='zig.lang', type='[]u8', identifier='zig_String', summary=True)
907
+ add(debugger, category='zig.lang', regex=True, type='^\\?', identifier='zig_Optional', synth=True, summary=True)
908
+ add(debugger, category='zig.lang', regex=True, type='^(error{.*}|anyerror)!', identifier='zig_ErrorUnion', synth=True, inline_children=True, summary=True)
909
+
910
+ # Initialize Zig Standard Library
911
+ add(debugger, category='zig.std', type='mem.Allocator', summary='${var.ptr}')
912
+ add(debugger, category='zig.std', regex=True, type='^multi_array_list\\.MultiArrayList\\(.*\\)$', identifier='std_MultiArrayList', synth=True, expand=True, summary='len=${var.len} capacity=${var.capacity}')
913
+ add(debugger, category='zig.std', regex=True, type='^multi_array_list\\.MultiArrayList\\(.*\\)\\.Slice$', identifier='std_MultiArrayList_Slice', synth=True, expand=True, summary='len=${var.len} capacity=${var.capacity}')
914
+ add(debugger, category='zig.std', regex=True, type=MultiArrayList_Entry('.*'), identifier='std_Entry', synth=True, inline_children=True, summary=True)
915
+ add(debugger, category='zig.std', regex=True, type='^hash_map\\.HashMapUnmanaged\\(.*\\)$', identifier='std_HashMapUnmanaged', synth=True, expand=True, summary=True)
916
+ add(debugger, category='zig.std', regex=True, type='^hash_map\\.HashMapUnmanaged\\(.*\\)\\.Entry$', identifier = 'std_Entry', synth=True, inline_children=True, summary=True)
917
+
918
+ # Initialize Zig Compiler
919
+ add(debugger, category='zig.compiler', type='Zir.Inst', identifier='TagAndPayload', synth=True, inline_children=True, summary=True)
920
+ add(debugger, category='zig.compiler', regex=True, type=MultiArrayList_Entry('Zir\\.Inst'), identifier='TagAndPayload', synth=True, inline_children=True, summary=True)
921
+ add(debugger, category='zig.compiler', regex=True, type='^Zir\\.Inst\\.Data\\.Data__struct_[1-9][0-9]*$', inline_children=True, summary=True)
922
+ add(debugger, category='zig.compiler', type='Zir.Inst::Zir.Inst.Ref', identifier='InstRef', summary=True)
923
+ add(debugger, category='zig.compiler', type='Zir.Inst::Zir.Inst.Index', identifier='InstIndex', summary=True)
924
+ add(debugger, category='zig.compiler', type='Air.Inst', identifier='TagAndPayload', synth=True, inline_children=True, summary=True)
925
+ add(debugger, category='zig.compiler', type='Air.Inst::Air.Inst.Ref', identifier='InstRef', summary=True)
926
+ add(debugger, category='zig.compiler', type='Air.Inst::Air.Inst.Index', identifier='InstIndex', summary=True)
927
+ add(debugger, category='zig.compiler', regex=True, type=MultiArrayList_Entry('Air\\.Inst'), identifier='TagAndPayload', synth=True, inline_children=True, summary=True)
928
+ add(debugger, category='zig.compiler', regex=True, type='^Air\\.Inst\\.Data\\.Data__struct_[1-9][0-9]*$', inline_children=True, summary=True)
929
+ add(debugger, category='zig.compiler', type='zig.DeclIndex', synth=True)
930
+ add(debugger, category='zig.compiler', type='Module.Namespace::Module.Namespace.Index', synth=True)
931
+ add(debugger, category='zig.compiler', type='Module.LazySrcLoc', identifier='zig_TaggedUnion', synth=True)
932
+ add(debugger, category='zig.compiler', type='InternPool.Index', synth=True)
933
+ add(debugger, category='zig.compiler', type='InternPool.NullTerminatedString', summary=True)
934
+ add(debugger, category='zig.compiler', type='InternPool.Key', identifier='zig_TaggedUnion', synth=True)
935
+ add(debugger, category='zig.compiler', type='InternPool.Key.Int.Storage', identifier='zig_TaggedUnion', synth=True)
936
+ add(debugger, category='zig.compiler', type='InternPool.Key.ErrorUnion.Value', identifier='zig_TaggedUnion', synth=True)
937
+ add(debugger, category='zig.compiler', type='InternPool.Key.Float.Storage', identifier='zig_TaggedUnion', synth=True)
938
+ add(debugger, category='zig.compiler', type='InternPool.Key.Ptr.Addr', identifier='zig_TaggedUnion', synth=True)
939
+ add(debugger, category='zig.compiler', type='InternPool.Key.Aggregate.Storage', identifier='zig_TaggedUnion', synth=True)
940
+ add(debugger, category='zig.compiler', type='arch.x86_64.CodeGen.MCValue', identifier='zig_TaggedUnion', synth=True, inline_children=True, summary=True)
941
+
942
+ # Initialize Zig Compiler (compiled with the self-hosted backend)
943
+ add(debugger, category='zig', regex=True, type=r'^root\.InternPool\.Local\.List\(.*\)$', identifier='root_InternPool_Local_List', synth=True, expand=True, summary='capacity=${var%#}')
944
+ add(debugger, category='zig', type='root.InternPool.Index', synth=True, summary=True)
945
+ add(debugger, category='zig', type='root.InternPool.Index.Unwrapped', synth=True)
946
+ add(debugger, category='zig', regex=True, type=r'^root\.InternPool\.(Optional)?(NullTerminated)?String$', identifier='root_InternPool_String', summary=True)
947
+ add(debugger, category='zig', regex=True, type=r'^root\.InternPool\.TrackedInst\.Index(\.Optional)?$', identifier='root_InternPool_TrackedInst_Index', synth=True)
948
+ add(debugger, category='zig', regex=True, type=r'^root\.InternPool\.Nav\.Index(\.Optional)?$', identifier='root_InternPool_Nav_Index', synth=True)