@zigc/lib 0.17.0-dev.135 → 0.17.0-dev.215

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 (673) hide show
  1. package/c/stdlib.zig +32 -22
  2. package/compiler/aro/aro/Compilation.zig +0 -3
  3. package/compiler/translate-c/ast.zig +5 -2
  4. package/compiler_rt/arm.zig +3 -3
  5. package/compiler_rt/trunctfhf2.zig +3 -0
  6. package/compiler_rt.zig +1 -22
  7. package/docs/wasm/markdown/Parser.zig +5 -9
  8. package/include/__clang_spirv_builtins.h +12 -12
  9. package/include/__float_float.h +176 -0
  10. package/include/__float_header_macro.h +12 -0
  11. package/include/__float_infinity_nan.h +20 -0
  12. package/include/amo.h +131 -0
  13. package/include/amxavx512intrin.h +215 -1
  14. package/include/amxintrin.h +0 -2
  15. package/include/arm_acle.h +37 -27
  16. package/include/arm_neon.h +218 -82
  17. package/include/arm_sme.h +8 -8
  18. package/include/arm_sve.h +4162 -3782
  19. package/include/avx10_2_512bf16intrin.h +19 -12
  20. package/include/avx10_2_512convertintrin.h +1 -1
  21. package/include/avx10_2_512niintrin.h +31 -31
  22. package/include/avx10_2_512satcvtdsintrin.h +1 -1
  23. package/include/avx10_2bf16intrin.h +54 -45
  24. package/include/avx10_2convertintrin.h +2 -2
  25. package/include/avx10_2copyintrin.h +1 -1
  26. package/include/avx10_2niintrin.h +14 -14
  27. package/include/avx10_2satcvtdsintrin.h +2 -2
  28. package/include/avx2intrin.h +275 -377
  29. package/include/avx512bf16intrin.h +25 -16
  30. package/include/avx512bitalgintrin.h +19 -30
  31. package/include/avx512bwintrin.h +386 -505
  32. package/include/avx512cdintrin.h +42 -55
  33. package/include/avx512dqintrin.h +132 -161
  34. package/include/avx512fintrin.h +1015 -1424
  35. package/include/avx512fp16intrin.h +112 -110
  36. package/include/avx512ifmaintrin.h +32 -34
  37. package/include/avx512ifmavlintrin.h +73 -46
  38. package/include/avx512vbmi2intrin.h +43 -32
  39. package/include/avx512vbmiintrin.h +19 -27
  40. package/include/avx512vbmivlintrin.h +35 -49
  41. package/include/avx512vlbf16intrin.h +32 -22
  42. package/include/avx512vlbitalgintrin.h +37 -53
  43. package/include/avx512vlbwintrin.h +470 -573
  44. package/include/avx512vlcdintrin.h +74 -102
  45. package/include/avx512vldqintrin.h +110 -127
  46. package/include/avx512vlfp16intrin.h +130 -111
  47. package/include/avx512vlintrin.h +945 -1299
  48. package/include/avx512vlvbmi2intrin.h +78 -63
  49. package/include/avx512vlvnniintrin.h +21 -18
  50. package/include/avx512vlvp2intersectintrin.h +2 -2
  51. package/include/avx512vnniintrin.h +10 -10
  52. package/include/avx512vp2intersectintrin.h +1 -2
  53. package/include/avx512vpopcntdqintrin.h +8 -10
  54. package/include/avx512vpopcntdqvlintrin.h +17 -15
  55. package/include/avxifmaintrin.h +16 -0
  56. package/include/avxintrin.h +165 -241
  57. package/include/avxvnniint16intrin.h +118 -99
  58. package/include/avxvnniint8intrin.h +56 -32
  59. package/include/avxvnniintrin.h +16 -8
  60. package/include/cpuid.h +101 -4
  61. package/include/emmintrin.h +168 -168
  62. package/include/f16cintrin.h +23 -9
  63. package/include/float.h +16 -155
  64. package/include/fma4intrin.h +98 -96
  65. package/include/fmaintrin.h +96 -66
  66. package/include/gfniintrin.h +21 -16
  67. package/include/hexagon_types.h +23 -20
  68. package/include/hvx_hexagon_protos.h +649 -860
  69. package/include/immintrin.h +0 -12
  70. package/include/intrin.h +4 -0
  71. package/include/lasxintrin.h +113 -0
  72. package/include/llvm_libc_wrappers/assert.h +3 -5
  73. package/include/llvm_libc_wrappers/ctype.h +3 -115
  74. package/include/llvm_libc_wrappers/inttypes.h +3 -5
  75. package/include/llvm_libc_wrappers/stdio.h +10 -38
  76. package/include/llvm_libc_wrappers/stdlib.h +3 -24
  77. package/include/llvm_libc_wrappers/string.h +2 -70
  78. package/include/llvm_libc_wrappers/time.h +4 -10
  79. package/include/mmintrin.h +188 -257
  80. package/include/module.modulemap +23 -4
  81. package/include/movrs_avx10_2_512intrin.h +2 -2
  82. package/include/movrs_avx10_2intrin.h +4 -4
  83. package/include/pmmintrin.h +12 -24
  84. package/include/ptrauth.h +16 -2
  85. package/include/riscv_mips.h +34 -0
  86. package/include/riscv_nds.h +89 -0
  87. package/include/sifive_vector.h +58 -2
  88. package/include/sm4evexintrin.h +2 -2
  89. package/include/smmintrin.h +77 -59
  90. package/include/spirvintrin.h +194 -0
  91. package/include/stddefer.h +19 -0
  92. package/include/tmmintrin.h +116 -147
  93. package/include/vaesintrin.h +1 -2
  94. package/include/xmmintrin.h +44 -70
  95. package/include/xopintrin.h +20 -10
  96. package/libcxx/include/__algorithm/all_of.h +11 -5
  97. package/libcxx/include/__algorithm/comp.h +4 -0
  98. package/libcxx/include/__algorithm/copy.h +28 -147
  99. package/libcxx/include/__algorithm/copy_backward.h +9 -24
  100. package/libcxx/include/__algorithm/copy_n.h +50 -16
  101. package/libcxx/include/__algorithm/count.h +2 -2
  102. package/libcxx/include/__algorithm/equal.h +43 -55
  103. package/libcxx/include/__algorithm/fill.h +26 -8
  104. package/libcxx/include/__algorithm/fill_n.h +32 -46
  105. package/libcxx/include/__algorithm/find.h +96 -39
  106. package/libcxx/include/__algorithm/find_end.h +105 -0
  107. package/libcxx/include/__algorithm/for_each.h +18 -24
  108. package/libcxx/include/__algorithm/for_each_n.h +20 -47
  109. package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
  110. package/libcxx/include/__algorithm/for_each_segment.h +26 -0
  111. package/libcxx/include/__algorithm/generate.h +4 -2
  112. package/libcxx/include/__algorithm/generate_n.h +19 -6
  113. package/libcxx/include/__algorithm/is_permutation.h +4 -4
  114. package/libcxx/include/__algorithm/iterator_operations.h +3 -0
  115. package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
  116. package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
  117. package/libcxx/include/__algorithm/make_heap.h +16 -4
  118. package/libcxx/include/__algorithm/mismatch.h +2 -2
  119. package/libcxx/include/__algorithm/move.h +8 -19
  120. package/libcxx/include/__algorithm/move_backward.h +9 -24
  121. package/libcxx/include/__algorithm/none_of.h +4 -4
  122. package/libcxx/include/__algorithm/partial_sort.h +1 -1
  123. package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
  124. package/libcxx/include/__algorithm/pstl.h +9 -9
  125. package/libcxx/include/__algorithm/radix_sort.h +27 -25
  126. package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
  127. package/libcxx/include/__algorithm/ranges_equal.h +17 -26
  128. package/libcxx/include/__algorithm/ranges_fill.h +7 -6
  129. package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
  130. package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
  131. package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
  132. package/libcxx/include/__algorithm/rotate.h +27 -44
  133. package/libcxx/include/__algorithm/search_n.h +49 -37
  134. package/libcxx/include/__algorithm/sift_down.h +19 -18
  135. package/libcxx/include/__algorithm/simd_utils.h +33 -4
  136. package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
  137. package/libcxx/include/__algorithm/stable_sort.h +1 -1
  138. package/libcxx/include/__assertion_handler +31 -4
  139. package/libcxx/include/__atomic/atomic.h +36 -60
  140. package/libcxx/include/__atomic/atomic_flag.h +19 -37
  141. package/libcxx/include/__atomic/atomic_ref.h +29 -12
  142. package/libcxx/include/__atomic/atomic_sync.h +127 -55
  143. package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
  144. package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
  145. package/libcxx/include/__atomic/contention_t.h +27 -3
  146. package/libcxx/include/__atomic/floating_point_helper.h +55 -0
  147. package/libcxx/include/__bit/countl.h +1 -2
  148. package/libcxx/include/__bit/countr.h +1 -2
  149. package/libcxx/include/__bit/has_single_bit.h +1 -1
  150. package/libcxx/include/__bit/popcount.h +0 -1
  151. package/libcxx/include/__bit/rotate.h +15 -26
  152. package/libcxx/include/__bit_reference +207 -18
  153. package/libcxx/include/__charconv/from_chars_integral.h +1 -1
  154. package/libcxx/include/__charconv/from_chars_result.h +1 -1
  155. package/libcxx/include/__charconv/to_chars_integral.h +1 -0
  156. package/libcxx/include/__charconv/to_chars_result.h +1 -1
  157. package/libcxx/include/__charconv/traits.h +3 -24
  158. package/libcxx/include/__chrono/day.h +11 -0
  159. package/libcxx/include/__chrono/duration.h +58 -33
  160. package/libcxx/include/__chrono/file_clock.h +4 -2
  161. package/libcxx/include/__chrono/is_clock.h +72 -0
  162. package/libcxx/include/__chrono/leap_second.h +13 -0
  163. package/libcxx/include/__chrono/month.h +13 -0
  164. package/libcxx/include/__chrono/month_weekday.h +22 -0
  165. package/libcxx/include/__chrono/monthday.h +20 -0
  166. package/libcxx/include/__chrono/steady_clock.h +1 -1
  167. package/libcxx/include/__chrono/system_clock.h +3 -3
  168. package/libcxx/include/__chrono/time_point.h +37 -13
  169. package/libcxx/include/__chrono/weekday.h +25 -0
  170. package/libcxx/include/__chrono/year.h +11 -0
  171. package/libcxx/include/__chrono/year_month.h +13 -0
  172. package/libcxx/include/__chrono/year_month_day.h +23 -0
  173. package/libcxx/include/__chrono/year_month_weekday.h +26 -0
  174. package/libcxx/include/__chrono/zoned_time.h +16 -0
  175. package/libcxx/include/__compare/is_eq.h +6 -6
  176. package/libcxx/include/__compare/strong_order.h +12 -30
  177. package/libcxx/include/__compare/three_way_comparable.h +2 -2
  178. package/libcxx/include/__concepts/comparison_common_type.h +40 -0
  179. package/libcxx/include/__concepts/equality_comparable.h +2 -1
  180. package/libcxx/include/__condition_variable/condition_variable.h +1 -1
  181. package/libcxx/include/__config +63 -280
  182. package/libcxx/include/__configuration/abi.h +14 -24
  183. package/libcxx/include/__configuration/availability.h +65 -118
  184. package/libcxx/include/__configuration/compiler.h +6 -6
  185. package/libcxx/include/__configuration/experimental.h +38 -0
  186. package/libcxx/include/__configuration/hardening.h +215 -0
  187. package/libcxx/include/__configuration/language.h +3 -0
  188. package/libcxx/include/__configuration/platform.h +9 -16
  189. package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
  190. package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
  191. package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
  192. package/libcxx/include/__exception/exception.h +6 -4
  193. package/libcxx/include/__exception/exception_ptr.h +27 -5
  194. package/libcxx/include/__exception/nested_exception.h +2 -2
  195. package/libcxx/include/__exception/operations.h +5 -5
  196. package/libcxx/include/__expected/bad_expected_access.h +8 -6
  197. package/libcxx/include/__expected/expected.h +62 -64
  198. package/libcxx/include/__expected/unexpected.h +4 -4
  199. package/libcxx/include/__filesystem/copy_options.h +4 -4
  200. package/libcxx/include/__filesystem/directory_entry.h +37 -33
  201. package/libcxx/include/__filesystem/directory_iterator.h +9 -11
  202. package/libcxx/include/__filesystem/directory_options.h +7 -4
  203. package/libcxx/include/__filesystem/file_status.h +3 -3
  204. package/libcxx/include/__filesystem/filesystem_error.h +9 -10
  205. package/libcxx/include/__filesystem/operations.h +97 -66
  206. package/libcxx/include/__filesystem/path.h +68 -64
  207. package/libcxx/include/__filesystem/path_iterator.h +1 -3
  208. package/libcxx/include/__filesystem/perm_options.h +4 -4
  209. package/libcxx/include/__filesystem/perms.h +4 -4
  210. package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
  211. package/libcxx/include/__filesystem/space_info.h +1 -1
  212. package/libcxx/include/__filesystem/u8path.h +12 -14
  213. package/libcxx/include/__flat_map/flat_map.h +88 -71
  214. package/libcxx/include/__flat_map/flat_multimap.h +251 -172
  215. package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
  216. package/libcxx/include/__flat_map/utils.h +1 -0
  217. package/libcxx/include/__flat_set/flat_multiset.h +211 -143
  218. package/libcxx/include/__flat_set/flat_set.h +86 -68
  219. package/libcxx/include/__format/concepts.h +0 -14
  220. package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
  221. package/libcxx/include/__format/fmt_pair_like.h +42 -0
  222. package/libcxx/include/__format/format_arg.h +7 -10
  223. package/libcxx/include/__format/format_args.h +1 -1
  224. package/libcxx/include/__format/format_context.h +5 -5
  225. package/libcxx/include/__format/format_parse_context.h +2 -2
  226. package/libcxx/include/__format/formatter_output.h +30 -34
  227. package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
  228. package/libcxx/include/__format/range_default_formatter.h +2 -41
  229. package/libcxx/include/__format/range_format.h +71 -0
  230. package/libcxx/include/__format/range_formatter.h +1 -0
  231. package/libcxx/include/__format/width_estimation_table.h +4 -2
  232. package/libcxx/include/__functional/bind.h +10 -15
  233. package/libcxx/include/__functional/bind_back.h +1 -1
  234. package/libcxx/include/__functional/bind_front.h +1 -1
  235. package/libcxx/include/__functional/function.h +57 -75
  236. package/libcxx/include/__functional/hash.h +1 -10
  237. package/libcxx/include/__functional/identity.h +1 -1
  238. package/libcxx/include/__functional/is_transparent.h +8 -0
  239. package/libcxx/include/__functional/mem_fn.h +2 -1
  240. package/libcxx/include/__functional/operations.h +18 -0
  241. package/libcxx/include/__functional/ranges_operations.h +7 -0
  242. package/libcxx/include/__functional/reference_wrapper.h +7 -5
  243. package/libcxx/include/__functional/weak_result_type.h +14 -28
  244. package/libcxx/include/__fwd/ios.h +1 -1
  245. package/libcxx/include/__fwd/tuple.h +14 -0
  246. package/libcxx/include/__hash_table +371 -357
  247. package/libcxx/include/__ios/fpos.h +4 -4
  248. package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
  249. package/libcxx/include/__iterator/bounded_iter.h +7 -8
  250. package/libcxx/include/__iterator/concepts.h +6 -9
  251. package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
  252. package/libcxx/include/__iterator/distance.h +40 -18
  253. package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
  254. package/libcxx/include/__iterator/insert_iterator.h +1 -7
  255. package/libcxx/include/__iterator/istream_iterator.h +6 -7
  256. package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
  257. package/libcxx/include/__iterator/iter_move.h +1 -1
  258. package/libcxx/include/__iterator/iterator.h +13 -0
  259. package/libcxx/include/__iterator/iterator_traits.h +13 -14
  260. package/libcxx/include/__iterator/ostream_iterator.h +1 -7
  261. package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
  262. package/libcxx/include/__iterator/reverse_iterator.h +8 -13
  263. package/libcxx/include/__iterator/segmented_iterator.h +3 -8
  264. package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
  265. package/libcxx/include/__iterator/wrap_iter.h +8 -6
  266. package/libcxx/include/__locale +3 -10
  267. package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
  268. package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
  269. package/libcxx/include/__locale_dir/messages.h +1 -1
  270. package/libcxx/include/__locale_dir/money.h +2 -2
  271. package/libcxx/include/__locale_dir/num.h +190 -243
  272. package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
  273. package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
  274. package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
  275. package/libcxx/include/__locale_dir/support/linux.h +0 -37
  276. package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
  277. package/libcxx/include/__locale_dir/support/newlib.h +243 -0
  278. package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
  279. package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
  280. package/libcxx/include/__locale_dir/support/windows.h +0 -29
  281. package/libcxx/include/__locale_dir/time.h +3 -7
  282. package/libcxx/include/__math/hypot.h +1 -1
  283. package/libcxx/include/__math/logarithms.h +1 -1
  284. package/libcxx/include/__math/traits.h +80 -11
  285. package/libcxx/include/__mdspan/extents.h +7 -4
  286. package/libcxx/include/__mdspan/layout_stride.h +4 -5
  287. package/libcxx/include/__mdspan/mdspan.h +29 -23
  288. package/libcxx/include/__memory/addressof.h +7 -5
  289. package/libcxx/include/__memory/align.h +18 -1
  290. package/libcxx/include/__memory/allocate_at_least.h +15 -10
  291. package/libcxx/include/__memory/allocator.h +14 -26
  292. package/libcxx/include/__memory/allocator_traits.h +6 -4
  293. package/libcxx/include/__memory/compressed_pair.h +15 -9
  294. package/libcxx/include/__memory/construct_at.h +12 -23
  295. package/libcxx/include/__memory/inout_ptr.h +1 -1
  296. package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
  297. package/libcxx/include/__memory/out_ptr.h +1 -1
  298. package/libcxx/include/__memory/pointer_traits.h +1 -1
  299. package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
  300. package/libcxx/include/__memory/shared_count.h +9 -30
  301. package/libcxx/include/__memory/shared_ptr.h +100 -145
  302. package/libcxx/include/__memory/temp_value.h +1 -2
  303. package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
  304. package/libcxx/include/__memory/unique_ptr.h +14 -16
  305. package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
  306. package/libcxx/include/__memory_resource/memory_resource.h +4 -2
  307. package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
  308. package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
  309. package/libcxx/include/__memory_resource/pool_options.h +1 -1
  310. package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
  311. package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
  312. package/libcxx/include/__mutex/mutex.h +2 -2
  313. package/libcxx/include/__mutex/once_flag.h +14 -11
  314. package/libcxx/include/__mutex/tag_types.h +3 -3
  315. package/libcxx/include/__mutex/unique_lock.h +8 -7
  316. package/libcxx/include/__new/align_val_t.h +6 -0
  317. package/libcxx/include/__new/allocate.h +1 -2
  318. package/libcxx/include/__new/exceptions.h +8 -2
  319. package/libcxx/include/__new/global_new_delete.h +4 -11
  320. package/libcxx/include/__new/interference_size.h +0 -4
  321. package/libcxx/include/__new/launder.h +3 -5
  322. package/libcxx/include/__new/nothrow_t.h +1 -1
  323. package/libcxx/include/__numeric/gcd_lcm.h +24 -34
  324. package/libcxx/include/__numeric/midpoint.h +9 -14
  325. package/libcxx/include/__numeric/pstl.h +2 -2
  326. package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
  327. package/libcxx/include/__ostream/basic_ostream.h +8 -8
  328. package/libcxx/include/__pstl/backends/default.h +14 -14
  329. package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
  330. package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
  331. package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
  332. package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
  333. package/libcxx/include/__random/binomial_distribution.h +10 -4
  334. package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
  335. package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
  336. package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
  337. package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
  338. package/libcxx/include/__ranges/adjacent_view.h +419 -0
  339. package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
  340. package/libcxx/include/__ranges/chunk_by_view.h +6 -6
  341. package/libcxx/include/__ranges/common_view.h +7 -7
  342. package/libcxx/include/__ranges/drop_view.h +8 -8
  343. package/libcxx/include/__ranges/drop_while_view.h +5 -5
  344. package/libcxx/include/__ranges/elements_of.h +49 -0
  345. package/libcxx/include/__ranges/empty_view.h +5 -5
  346. package/libcxx/include/__ranges/filter_view.h +10 -10
  347. package/libcxx/include/__ranges/iota_view.h +41 -22
  348. package/libcxx/include/__ranges/owning_view.h +15 -15
  349. package/libcxx/include/__ranges/ref_view.h +6 -6
  350. package/libcxx/include/__ranges/repeat_view.h +17 -10
  351. package/libcxx/include/__ranges/single_view.h +8 -8
  352. package/libcxx/include/__ranges/take_view.h +9 -9
  353. package/libcxx/include/__ranges/transform_view.h +1 -2
  354. package/libcxx/include/__ranges/view_interface.h +10 -10
  355. package/libcxx/include/__ranges/zip_transform_view.h +357 -0
  356. package/libcxx/include/__ranges/zip_view.h +20 -20
  357. package/libcxx/include/__split_buffer +612 -240
  358. package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
  359. package/libcxx/include/__stop_token/stop_callback.h +2 -2
  360. package/libcxx/include/__stop_token/stop_source.h +1 -1
  361. package/libcxx/include/__stop_token/stop_state.h +4 -4
  362. package/libcxx/include/__stop_token/stop_token.h +1 -1
  363. package/libcxx/include/__string/char_traits.h +51 -31
  364. package/libcxx/include/__string/constexpr_c_functions.h +5 -5
  365. package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
  366. package/libcxx/include/__system_error/error_category.h +8 -8
  367. package/libcxx/include/__system_error/error_code.h +5 -5
  368. package/libcxx/include/__system_error/error_condition.h +4 -4
  369. package/libcxx/include/__system_error/system_error.h +1 -1
  370. package/libcxx/include/__thread/id.h +1 -1
  371. package/libcxx/include/__thread/jthread.h +1 -1
  372. package/libcxx/include/__thread/poll_with_backoff.h +27 -8
  373. package/libcxx/include/__thread/support/c11.h +8 -8
  374. package/libcxx/include/__thread/support/pthread.h +8 -8
  375. package/libcxx/include/__thread/support/windows.h +8 -8
  376. package/libcxx/include/__thread/thread.h +13 -8
  377. package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
  378. package/libcxx/include/__tree +849 -701
  379. package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
  380. package/libcxx/include/__tuple/tuple_element.h +0 -12
  381. package/libcxx/include/__tuple/tuple_size.h +0 -4
  382. package/libcxx/include/__tuple/tuple_transform.h +45 -0
  383. package/libcxx/include/__type_traits/aligned_storage.h +13 -40
  384. package/libcxx/include/__type_traits/desugars_to.h +4 -0
  385. package/libcxx/include/__type_traits/invoke.h +8 -0
  386. package/libcxx/include/__type_traits/is_allocator.h +6 -7
  387. package/libcxx/include/__type_traits/is_array.h +26 -0
  388. package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
  389. package/libcxx/include/__type_traits/is_final.h +1 -1
  390. package/libcxx/include/__type_traits/is_floating_point.h +7 -6
  391. package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
  392. package/libcxx/include/__type_traits/is_specialization.h +2 -6
  393. package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
  394. package/libcxx/include/__type_traits/make_transparent.h +52 -0
  395. package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
  396. package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
  397. package/libcxx/include/__utility/cmp.h +19 -7
  398. package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
  399. package/libcxx/include/__utility/in_place.h +1 -1
  400. package/libcxx/include/__utility/integer_sequence.h +56 -41
  401. package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
  402. package/libcxx/include/__utility/pair.h +22 -25
  403. package/libcxx/include/__utility/scope_guard.h +2 -0
  404. package/libcxx/include/__utility/try_key_extraction.h +114 -0
  405. package/libcxx/include/__vector/vector.h +187 -160
  406. package/libcxx/include/__vector/vector_bool.h +76 -83
  407. package/libcxx/include/any +118 -155
  408. package/libcxx/include/array +88 -56
  409. package/libcxx/include/atomic +2 -0
  410. package/libcxx/include/barrier +20 -24
  411. package/libcxx/include/bitset +49 -30
  412. package/libcxx/include/ccomplex +3 -11
  413. package/libcxx/include/chrono +47 -0
  414. package/libcxx/include/ciso646 +3 -6
  415. package/libcxx/include/complex +77 -65
  416. package/libcxx/include/complex.h +10 -10
  417. package/libcxx/include/condition_variable +3 -3
  418. package/libcxx/include/cstdalign +3 -10
  419. package/libcxx/include/cstdbool +3 -10
  420. package/libcxx/include/ctgmath +2 -11
  421. package/libcxx/include/ctype.h +24 -24
  422. package/libcxx/include/cwchar +2 -2
  423. package/libcxx/include/deque +109 -225
  424. package/libcxx/include/errno.h +269 -269
  425. package/libcxx/include/exception +4 -1
  426. package/libcxx/include/ext/hash_map +7 -48
  427. package/libcxx/include/ext/hash_set +2 -8
  428. package/libcxx/include/fenv.h +43 -43
  429. package/libcxx/include/flat_map +663 -11
  430. package/libcxx/include/flat_set +543 -8
  431. package/libcxx/include/float.h +16 -16
  432. package/libcxx/include/forward_list +33 -53
  433. package/libcxx/include/fstream +57 -42
  434. package/libcxx/include/future +41 -51
  435. package/libcxx/include/initializer_list +9 -3
  436. package/libcxx/include/inttypes.h +16 -16
  437. package/libcxx/include/ios +28 -28
  438. package/libcxx/include/istream +19 -13
  439. package/libcxx/include/iterator +10 -0
  440. package/libcxx/include/latch +7 -5
  441. package/libcxx/include/limits +4 -4
  442. package/libcxx/include/list +61 -79
  443. package/libcxx/include/map +386 -274
  444. package/libcxx/include/math.h +19 -0
  445. package/libcxx/include/mdspan +1 -5
  446. package/libcxx/include/mutex +29 -19
  447. package/libcxx/include/optional +644 -149
  448. package/libcxx/include/print +9 -5
  449. package/libcxx/include/queue +39 -37
  450. package/libcxx/include/ranges +48 -0
  451. package/libcxx/include/regex +33 -31
  452. package/libcxx/include/scoped_allocator +16 -11
  453. package/libcxx/include/semaphore +15 -18
  454. package/libcxx/include/set +220 -192
  455. package/libcxx/include/shared_mutex +3 -8
  456. package/libcxx/include/span +53 -37
  457. package/libcxx/include/sstream +34 -28
  458. package/libcxx/include/stack +13 -15
  459. package/libcxx/include/stddef.h +10 -10
  460. package/libcxx/include/stdexcept +2 -2
  461. package/libcxx/include/stdio.h +20 -21
  462. package/libcxx/include/streambuf +59 -19
  463. package/libcxx/include/string +574 -573
  464. package/libcxx/include/string_view +113 -89
  465. package/libcxx/include/strstream +10 -10
  466. package/libcxx/include/syncstream +4 -4
  467. package/libcxx/include/tgmath.h +12 -12
  468. package/libcxx/include/tuple +242 -212
  469. package/libcxx/include/type_traits +8 -2
  470. package/libcxx/include/typeindex +5 -3
  471. package/libcxx/include/typeinfo +92 -89
  472. package/libcxx/include/unordered_map +179 -304
  473. package/libcxx/include/unordered_set +168 -195
  474. package/libcxx/include/utility +12 -0
  475. package/libcxx/include/valarray +106 -161
  476. package/libcxx/include/variant +25 -33
  477. package/libcxx/include/version +41 -24
  478. package/libcxx/include/wctype.h +29 -29
  479. package/libcxx/src/any.cpp +4 -0
  480. package/libcxx/src/atomic.cpp +365 -80
  481. package/libcxx/src/barrier.cpp +4 -3
  482. package/libcxx/src/charconv.cpp +6 -3
  483. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  484. package/libcxx/src/error_category.cpp +3 -1
  485. package/libcxx/src/exception.cpp +2 -10
  486. package/libcxx/src/experimental/time_zone.cpp +1 -1
  487. package/libcxx/src/experimental/tzdb.cpp +4 -1
  488. package/libcxx/src/filesystem/error.h +4 -22
  489. package/libcxx/src/filesystem/format_string.h +9 -18
  490. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  491. package/libcxx/src/filesystem/operations.cpp +2 -9
  492. package/libcxx/src/filesystem/path.cpp +3 -1
  493. package/libcxx/src/include/aligned_alloc.h +65 -0
  494. package/libcxx/src/include/config_elast.h +1 -1
  495. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  496. package/libcxx/src/include/overridable_function.h +8 -10
  497. package/libcxx/src/iostream.cpp +56 -37
  498. package/libcxx/src/locale.cpp +213 -196
  499. package/libcxx/src/memory.cpp +12 -14
  500. package/libcxx/src/mutex_destructor.cpp +1 -1
  501. package/libcxx/src/new.cpp +5 -5
  502. package/libcxx/src/optional.cpp +4 -0
  503. package/libcxx/src/print.cpp +9 -1
  504. package/libcxx/src/random.cpp +0 -26
  505. package/libcxx/src/string.cpp +10 -25
  506. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  507. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  508. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  509. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  510. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  511. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  512. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  513. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  514. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  515. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  516. package/libcxx/src/system_error.cpp +2 -0
  517. package/libcxx/src/thread.cpp +1 -3
  518. package/libcxx/src/valarray.cpp +1 -2
  519. package/libcxx/src/vector.cpp +2 -2
  520. package/libcxxabi/include/__cxxabi_config.h +42 -23
  521. package/libcxxabi/src/cxa_exception.cpp +4 -2
  522. package/libcxxabi/src/cxa_exception.h +16 -14
  523. package/libcxxabi/src/cxa_personality.cpp +126 -9
  524. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  525. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  526. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  527. package/libcxxabi/src/demangle/Utility.h +21 -7
  528. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  529. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  530. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  531. package/libtsan/LICENSE.TXT +311 -0
  532. package/libtsan/builtins/assembly.h +41 -8
  533. package/libtsan/interception/interception_win.cpp +4 -0
  534. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  535. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  536. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  537. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  538. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  539. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  540. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  541. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  542. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  543. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  544. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  545. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  546. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  547. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  548. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  549. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  550. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  551. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  552. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  553. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  554. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  555. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  556. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  557. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  558. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  559. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  560. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  561. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  562. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  563. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  564. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  565. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  566. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  567. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  568. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  569. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  570. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  571. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  572. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  573. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  574. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  575. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  576. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  577. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  578. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  579. package/libtsan/tsan_debugging.cpp +2 -2
  580. package/libtsan/tsan_flags.cpp +37 -0
  581. package/libtsan/tsan_flags.h +8 -0
  582. package/libtsan/tsan_flags.inc +12 -0
  583. package/libtsan/tsan_interceptors.h +9 -1
  584. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  585. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  586. package/libtsan/tsan_interface.h +3 -3
  587. package/libtsan/tsan_interface_ann.cpp +23 -9
  588. package/libtsan/tsan_mman.cpp +18 -4
  589. package/libtsan/tsan_platform.h +44 -7
  590. package/libtsan/tsan_platform_linux.cpp +42 -14
  591. package/libtsan/tsan_platform_mac.cpp +16 -3
  592. package/libtsan/tsan_report.h +14 -1
  593. package/libtsan/tsan_rtl.cpp +14 -0
  594. package/libtsan/tsan_rtl.h +7 -2
  595. package/libtsan/tsan_rtl_aarch64.S +3 -5
  596. package/libtsan/tsan_rtl_access.cpp +8 -3
  597. package/libtsan/tsan_rtl_amd64.S +2 -0
  598. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  599. package/libtsan/tsan_rtl_report.cpp +132 -65
  600. package/libtsan/tsan_rtl_thread.cpp +31 -9
  601. package/libtsan/tsan_symbolize.cpp +1 -1
  602. package/libtsan/tsan_symbolize.h +1 -1
  603. package/libtsan/tsan_trace.h +1 -1
  604. package/libunwind/include/__libunwind_config.h +11 -2
  605. package/libunwind/include/libunwind.h +117 -11
  606. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  607. package/libunwind/src/AddressSpace.hpp +40 -19
  608. package/libunwind/src/CompactUnwinder.hpp +16 -5
  609. package/libunwind/src/DwarfInstructions.hpp +24 -13
  610. package/libunwind/src/DwarfParser.hpp +60 -22
  611. package/libunwind/src/EHHeaderParser.hpp +7 -4
  612. package/libunwind/src/Registers.hpp +226 -22
  613. package/libunwind/src/Unwind-seh.cpp +6 -7
  614. package/libunwind/src/Unwind-wasm.c +7 -7
  615. package/libunwind/src/UnwindCursor.hpp +167 -49
  616. package/libunwind/src/UnwindLevel1.c +46 -17
  617. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  618. package/libunwind/src/UnwindRegistersSave.S +86 -2
  619. package/libunwind/src/assembly.h +5 -1
  620. package/libunwind/src/config.h +9 -0
  621. package/libunwind/src/gcc_personality_v0.c +79 -6
  622. package/libunwind/src/libunwind.cpp +104 -4
  623. package/libunwind/src/libunwind_ext.h +7 -1
  624. package/libunwind/src/shadow_stack_unwind.h +2 -2
  625. package/lldb/pretty_printers.py +948 -0
  626. package/package.json +1 -1
  627. package/std/Build/Step/Compile.zig +18 -19
  628. package/std/Build/Step/Run.zig +13 -6
  629. package/std/Build/Step.zig +0 -3
  630. package/std/Io/Threaded.zig +3 -0
  631. package/std/Target/aarch64.zig +620 -77
  632. package/std/Target/amdgcn.zig +421 -21
  633. package/std/Target/arm.zig +40 -6
  634. package/std/Target/bpf.zig +6 -0
  635. package/std/Target/hexagon.zig +41 -6
  636. package/std/Target/loongarch.zig +18 -0
  637. package/std/Target/mips.zig +6 -0
  638. package/std/Target/nvptx.zig +58 -35
  639. package/std/Target/powerpc.zig +27 -19
  640. package/std/Target/riscv.zig +415 -177
  641. package/std/Target/sparc.zig +17 -0
  642. package/std/Target/wasm.zig +7 -0
  643. package/std/Target/x86.zig +200 -31
  644. package/std/Target/xtensa.zig +65 -0
  645. package/std/Target.zig +11 -2
  646. package/std/c.zig +7 -0
  647. package/std/debug/Dwarf.zig +14 -11
  648. package/std/debug/Pdb.zig +24 -16
  649. package/std/hash/xxhash.zig +0 -6
  650. package/std/math/log10.zig +0 -2
  651. package/std/math/modf.zig +0 -1
  652. package/std/mem.zig +1 -2
  653. package/std/os/linux/x86.zig +2 -2
  654. package/std/os/windows.zig +130 -1
  655. package/std/simd.zig +4 -21
  656. package/std/start.zig +4 -3
  657. package/std/zig/Ast.zig +5 -7
  658. package/std/zig/AstGen.zig +20 -14
  659. package/std/zig/ErrorBundle.zig +6 -2
  660. package/std/zig/ZonGen.zig +13 -21
  661. package/std/zig/llvm/Builder.zig +2 -2
  662. package/std/zig/system/arm.zig +56 -2
  663. package/std/zig/system/windows.zig +34 -1
  664. package/std/zig/system/x86.zig +60 -16
  665. package/std/zig/system.zig +0 -10
  666. package/include/amxbf16transposeintrin.h +0 -94
  667. package/include/amxcomplextransposeintrin.h +0 -303
  668. package/include/amxfp16transposeintrin.h +0 -94
  669. package/include/amxmovrstransposeintrin.h +0 -200
  670. package/include/amxtf32transposeintrin.h +0 -105
  671. package/include/amxtransposeintrin.h +0 -248
  672. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  673. package/std/Build/Step/CheckObject.zig +0 -2764
package/std/Target.zig CHANGED
@@ -845,6 +845,12 @@ pub const Abi = enum {
845
845
  => .eabi,
846
846
  else => .none,
847
847
  },
848
+ .fuchsia => switch (arch) {
849
+ .arm,
850
+ .thumb,
851
+ => .eabihf,
852
+ else => .none,
853
+ },
848
854
  .haiku => switch (arch) {
849
855
  .arm,
850
856
  .powerpc,
@@ -928,7 +934,6 @@ pub const Abi = enum {
928
934
  .wasi, .emscripten => .musl,
929
935
 
930
936
  .contiki,
931
- .fuchsia,
932
937
  .hermit,
933
938
  .illumos,
934
939
  .managarm,
@@ -1014,6 +1019,7 @@ pub const Abi = enum {
1014
1019
  .gnueabi,
1015
1020
  .musleabi,
1016
1021
  .gnusf,
1022
+ .muslsf,
1017
1023
  .ohoseabi,
1018
1024
  => .soft,
1019
1025
  else => .hard,
@@ -1219,7 +1225,7 @@ pub const Cpu = struct {
1219
1225
  pub const Set = struct {
1220
1226
  ints: [usize_count]usize,
1221
1227
 
1222
- pub const needed_bit_count = 317;
1228
+ pub const needed_bit_count = 347;
1223
1229
  pub const byte_count = (needed_bit_count + 7) / 8;
1224
1230
  pub const usize_count = (byte_count + (@sizeOf(usize) - 1)) / @sizeOf(usize);
1225
1231
  pub const Index = std.math.Log2Int(std.meta.Int(.unsigned, usize_count * @bitSizeOf(usize)));
@@ -2055,6 +2061,7 @@ pub const Cpu = struct {
2055
2061
  .hppa => &hppa.cpu.pa_7300lc,
2056
2062
  .kvx => &kvx.cpu.coolidge_v2,
2057
2063
  .lanai => &lanai.cpu.v11, // clang does not have a generic lanai model.
2064
+ .loongarch32 => &loongarch.cpu.la32v1_0,
2058
2065
  .loongarch64 => &loongarch.cpu.la64v1_0,
2059
2066
  .m68k => &m68k.cpu.M68000,
2060
2067
  .mips => &mips.cpu.mips32r2,
@@ -2442,8 +2449,10 @@ pub const DynamicLinker = struct {
2442
2449
  pub fn standard(cpu: Cpu, os: Os, abi: Abi) DynamicLinker {
2443
2450
  return switch (os.tag) {
2444
2451
  .fuchsia => switch (cpu.arch) {
2452
+ .arm,
2445
2453
  .aarch64,
2446
2454
  .riscv64,
2455
+ .thumb,
2447
2456
  .x86_64,
2448
2457
  => init("ld.so.1"), // Fuchsia is unusual in that `DT_INTERP` is just a basename.
2449
2458
  else => none,
package/std/c.zig CHANGED
@@ -11166,6 +11166,13 @@ pub extern "c" fn atoi(str: [*:0]const c_char) c_int;
11166
11166
  pub extern "c" fn atol(str: [*:0]const c_char) c_long;
11167
11167
  pub extern "c" fn atoll(str: [*:0]const c_char) c_longlong;
11168
11168
 
11169
+ pub extern "c" fn strtol(noalias str: [*:0]const c_char, noalias str_end: ?*[*:0]c_char, base: c_int) callconv(.c) c_long;
11170
+ pub extern "c" fn strtoll(noalias str: [*:0]const c_char, noalias str_end: ?*[*:0]c_char, base: c_int) callconv(.c) c_longlong;
11171
+ pub extern "c" fn strtoul(noalias str: [*:0]const c_char, noalias str_end: ?*[*:0]c_char, base: c_int) callconv(.c) c_ulong;
11172
+ pub extern "c" fn strtoull(noalias str: [*:0]const c_char, noalias str_end: ?*[*:0]c_char, base: c_int) callconv(.c) c_ulonglong;
11173
+ pub extern "c" fn strtoimax(noalias str: [*:0]const c_char, noalias str_end: ?*[*:0]c_char, base: c_int) callconv(.c) intmax_t;
11174
+ pub extern "c" fn strtoumax(noalias str: [*:0]const c_char, noalias str_end: ?*[*:0]c_char, base: c_int) callconv(.c) uintmax_t;
11175
+
11169
11176
  pub extern "c" fn bsearch(
11170
11177
  key: *const anyopaque,
11171
11178
  base: *const anyopaque,
@@ -879,16 +879,16 @@ fn parseAbbrevTable(di: *Dwarf, gpa: Allocator, offset: u64) !Abbrev.Table {
879
879
  var fr: Reader = .fixed(di.section(.debug_abbrev).?);
880
880
  fr.seek = cast(usize, offset) orelse return bad();
881
881
 
882
- var abbrevs = std.array_list.Managed(Abbrev).init(gpa);
882
+ var abbrevs: std.ArrayList(Abbrev) = .empty;
883
883
  defer {
884
884
  for (abbrevs.items) |*abbrev| {
885
885
  abbrev.deinit(gpa);
886
886
  }
887
- abbrevs.deinit();
887
+ abbrevs.deinit(gpa);
888
888
  }
889
889
 
890
- var attrs = std.array_list.Managed(Abbrev.Attr).init(gpa);
891
- defer attrs.deinit();
890
+ var attrs: std.ArrayList(Abbrev.Attr) = .empty;
891
+ defer attrs.deinit(gpa);
892
892
 
893
893
  while (true) {
894
894
  const code = try fr.takeLeb128(u64);
@@ -900,7 +900,7 @@ fn parseAbbrevTable(di: *Dwarf, gpa: Allocator, offset: u64) !Abbrev.Table {
900
900
  const attr_id = try fr.takeLeb128(u64);
901
901
  const form_id = try fr.takeLeb128(u64);
902
902
  if (attr_id == 0 and form_id == 0) break;
903
- try attrs.append(.{
903
+ try attrs.append(gpa, .{
904
904
  .id = attr_id,
905
905
  .form_id = form_id,
906
906
  .payload = switch (form_id) {
@@ -909,18 +909,18 @@ fn parseAbbrevTable(di: *Dwarf, gpa: Allocator, offset: u64) !Abbrev.Table {
909
909
  },
910
910
  });
911
911
  }
912
-
913
- try abbrevs.append(.{
912
+ try abbrevs.ensureUnusedCapacity(gpa, 1);
913
+ abbrevs.appendAssumeCapacity(.{
914
914
  .code = code,
915
915
  .tag_id = tag_id,
916
916
  .has_children = has_children,
917
- .attrs = try attrs.toOwnedSlice(),
917
+ .attrs = try attrs.toOwnedSlice(gpa),
918
918
  });
919
919
  }
920
920
 
921
921
  return .{
922
922
  .offset = offset,
923
- .abbrevs = try abbrevs.toOwnedSlice(),
923
+ .abbrevs = try abbrevs.toOwnedSlice(gpa),
924
924
  };
925
925
  }
926
926
 
@@ -1204,10 +1204,13 @@ fn runLineNumberProgram(d: *Dwarf, gpa: Allocator, endian: Endian, compile_unit:
1204
1204
  }
1205
1205
  }{ .keys = line_table.keys() });
1206
1206
 
1207
+ try directories.shrinkToLen(gpa);
1208
+ try file_entries.shrinkToLen(gpa);
1209
+
1207
1210
  return .{
1208
1211
  .line_table = line_table,
1209
- .directories = try directories.toOwnedSlice(gpa),
1210
- .files = try file_entries.toOwnedSlice(gpa),
1212
+ .directories = directories.toOwnedSliceAssert(),
1213
+ .files = file_entries.toOwnedSliceAssert(),
1211
1214
  .version = version,
1212
1215
  };
1213
1216
  }
package/std/debug/Pdb.zig CHANGED
@@ -83,8 +83,8 @@ pub fn parseDbiStream(self: *Pdb) !void {
83
83
  const mod_info_size = header.mod_info_size;
84
84
  const section_contrib_size = header.section_contribution_size;
85
85
 
86
- var modules = std.array_list.Managed(Module).init(gpa);
87
- errdefer modules.deinit();
86
+ var modules: std.ArrayList(Module) = .empty;
87
+ defer modules.deinit(gpa);
88
88
 
89
89
  // Module Info Substream
90
90
  var mod_info_offset: usize = 0;
@@ -113,11 +113,16 @@ pub fn parseDbiStream(self: *Pdb) !void {
113
113
  this_record_len += march_forward_bytes;
114
114
  }
115
115
 
116
- try modules.append(.{
117
- .mod_info = mod_info,
118
- .module_name = try module_name.toOwnedSlice(),
119
- .obj_file_name = try obj_file_name.toOwnedSlice(),
116
+ try modules.ensureUnusedCapacity(gpa, 1);
117
+ const module_name_slice = try module_name.toOwnedSlice();
118
+ errdefer gpa.free(module_name_slice);
119
+ const obj_file_name_slice = try obj_file_name.toOwnedSlice();
120
+ errdefer gpa.free(obj_file_name_slice);
120
121
 
122
+ modules.appendAssumeCapacity(.{
123
+ .mod_info = mod_info,
124
+ .module_name = module_name_slice,
125
+ .obj_file_name = obj_file_name_slice,
121
126
  .populated = false,
122
127
  .symbols = undefined,
123
128
  .subsect_info = undefined,
@@ -131,8 +136,8 @@ pub fn parseDbiStream(self: *Pdb) !void {
131
136
  }
132
137
 
133
138
  // Section Contribution Substream
134
- var sect_contribs = std.array_list.Managed(pdb.SectionContribEntry).init(gpa);
135
- errdefer sect_contribs.deinit();
139
+ var sect_contribs: std.ArrayList(pdb.SectionContribEntry) = .empty;
140
+ defer sect_contribs.deinit(gpa);
136
141
 
137
142
  var sect_cont_offset: usize = 0;
138
143
  if (section_contrib_size != 0) {
@@ -144,7 +149,7 @@ pub fn parseDbiStream(self: *Pdb) !void {
144
149
  sect_cont_offset += @sizeOf(u32);
145
150
  }
146
151
  while (sect_cont_offset != section_contrib_size) {
147
- const entry = try sect_contribs.addOne();
152
+ const entry = try sect_contribs.addOne(gpa);
148
153
  entry.* = try reader.takeStruct(pdb.SectionContribEntry, .little);
149
154
  sect_cont_offset += @sizeOf(pdb.SectionContribEntry);
150
155
 
@@ -152,8 +157,11 @@ pub fn parseDbiStream(self: *Pdb) !void {
152
157
  return error.InvalidDebugInfo;
153
158
  }
154
159
 
155
- self.modules = try modules.toOwnedSlice();
156
- self.sect_contribs = try sect_contribs.toOwnedSlice();
160
+ try sect_contribs.shrinkToLen(gpa);
161
+ try modules.shrinkToLen(gpa);
162
+
163
+ self.sect_contribs = sect_contribs.toOwnedSliceAssert();
164
+ self.modules = modules.toOwnedSliceAssert();
157
165
  }
158
166
 
159
167
  pub fn parseIpiStream(self: *Pdb) !void {
@@ -1098,22 +1106,22 @@ const MsfStream = struct {
1098
1106
  }
1099
1107
  };
1100
1108
 
1101
- fn readSparseBitVector(reader: *Io.Reader, allocator: Allocator) ![]u32 {
1109
+ fn readSparseBitVector(reader: *Io.Reader, gpa: Allocator) ![]u32 {
1102
1110
  const num_words = try reader.takeInt(u32, .little);
1103
- var list = std.array_list.Managed(u32).init(allocator);
1104
- errdefer list.deinit();
1111
+ var list: std.ArrayList(u32) = .empty;
1112
+ defer list.deinit(gpa);
1105
1113
  var word_i: u32 = 0;
1106
1114
  while (word_i != num_words) : (word_i += 1) {
1107
1115
  const word = try reader.takeInt(u32, .little);
1108
1116
  var bit_i: u5 = 0;
1109
1117
  while (true) : (bit_i += 1) {
1110
1118
  if (word & (@as(u32, 1) << bit_i) != 0) {
1111
- try list.append(word_i * 32 + bit_i);
1119
+ try list.append(gpa, word_i * 32 + bit_i);
1112
1120
  }
1113
1121
  if (bit_i == std.math.maxInt(u5)) break;
1114
1122
  }
1115
1123
  }
1116
- return try list.toOwnedSlice();
1124
+ return try list.toOwnedSlice(gpa);
1117
1125
  }
1118
1126
 
1119
1127
  fn blockCountFromSize(size: u32, block_size: u32) u32 {
@@ -780,8 +780,6 @@ fn testExpect(comptime H: type, seed: anytype, input: []const u8, expected: u64)
780
780
  }
781
781
 
782
782
  test "xxhash3" {
783
- if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/23807
784
-
785
783
  const H = XxHash3;
786
784
  // Non-Seeded Tests
787
785
  try testExpect(H, 0, "", 0x2d06800538d394c2);
@@ -813,8 +811,6 @@ test "xxhash3" {
813
811
  }
814
812
 
815
813
  test "xxhash3 smhasher" {
816
- if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/23807
817
-
818
814
  const Test = struct {
819
815
  fn do() !void {
820
816
  try expectEqual(verify.smhasher(XxHash3.hash), 0x9a636405);
@@ -826,8 +822,6 @@ test "xxhash3 smhasher" {
826
822
  }
827
823
 
828
824
  test "xxhash3 iterative api" {
829
- if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/23807
830
-
831
825
  const Test = struct {
832
826
  fn do() !void {
833
827
  try verify.iterativeApi(XxHash3);
@@ -139,8 +139,6 @@ test log10_int {
139
139
  if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
140
140
  if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
141
141
  if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
142
- if (builtin.zig_backend == .stage2_llvm and comptime builtin.target.cpu.arch.isWasm()) return error.SkipZigTest; // TODO
143
- if (builtin.zig_backend == .stage2_llvm and comptime builtin.target.cpu.arch == .hexagon) return error.SkipZigTest;
144
142
 
145
143
  inline for (
146
144
  .{ u8, u16, u32, u64, u128, u256, u512 },
package/std/math/modf.zig CHANGED
@@ -87,7 +87,6 @@ fn ModfTests(comptime T: type) type {
87
87
  test "vector" {
88
88
  if (builtin.os.tag.isDarwin() and builtin.cpu.arch == .aarch64) return error.SkipZigTest;
89
89
  if (builtin.cpu.arch == .s390x) return error.SkipZigTest;
90
- if (comptime builtin.cpu.has(.loongarch, .lsx)) return error.SkipZigTest; // https://github.com/llvm/llvm-project/issues/159529
91
90
 
92
91
  const widths = [_]comptime_int{ 1, 2, 3, 4, 8, 16 };
93
92
 
package/std/mem.zig CHANGED
@@ -4809,8 +4809,7 @@ pub fn doNotOptimizeAway(val: anytype) void {
4809
4809
  } else doNotOptimizeAway(&val);
4810
4810
  },
4811
4811
  .float => {
4812
- // https://github.com/llvm/llvm-project/issues/159200
4813
- if ((t.float.bits == 32 or t.float.bits == 64) and builtin.zig_backend != .stage2_c and !builtin.cpu.arch.isLoongArch()) {
4812
+ if ((t.float.bits == 32 or t.float.bits == 64) and builtin.zig_backend != .stage2_c) {
4814
4813
  asm volatile (""
4815
4814
  :
4816
4815
  : [_] "rm" (val),
@@ -109,8 +109,8 @@ pub fn syscall6(
109
109
  \\ push %%ebp
110
110
  \\ mov 4(%%esp), %%ebp
111
111
  \\ mov %%edi, 4(%%esp)
112
- \\ // The saved %edi and %ebp are on the stack, and %ebp points to `args56`.
113
- \\ // Prepare the last two args, syscall, then pop the saved %ebp and %edi.
112
+ \\ // The saved %%edi and %%ebp are on the stack, and %%ebp points to `args56`.
113
+ \\ // Prepare the last two args, syscall, then pop the saved %%ebp and %%edi.
114
114
  \\ mov (%%ebp), %%edi
115
115
  \\ mov 4(%%ebp), %%ebp
116
116
  \\ int $0x80
@@ -5665,7 +5665,136 @@ pub const PF = enum(DWORD) {
5665
5665
  ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE = 44,
5666
5666
 
5667
5667
  /// This Arm processor implements the Arm v8.3 LRCPC instructions (for example, LDAPR). Note that certain Arm v8.2 CPUs may optionally support the LRCPC instructions.
5668
- ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE,
5668
+ ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE = 45,
5669
+
5670
+ /// This Arm processor implements the SVE (Scalable Vector Extension) instructions (FEAT_SVE).
5671
+ ARM_SVE_INSTRUCTIONS_AVAILABLE = 46,
5672
+
5673
+ /// This Arm processor implements the SVE2 instructions (FEAT_SVE2).
5674
+ ARM_SVE2_INSTRUCTIONS_AVAILABLE = 47,
5675
+
5676
+ /// This Arm processor implements the SVE2.1 instructions (FEAT_SVE2p1).
5677
+ ARM_SVE2_1_INSTRUCTIONS_AVAILABLE = 48,
5678
+
5679
+ /// This Arm processor implements the SVE AES instructions (FEAT_SVE_AES).
5680
+ ARM_SVE_AES_INSTRUCTIONS_AVAILABLE = 49,
5681
+
5682
+ /// This Arm processor implements the SVE 128-bit polynomial multiply long instructions (FEAT_SVE_PMULL128).
5683
+ ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE = 50,
5684
+
5685
+ /// This Arm processor implements the SVE bit permute instructions (FEAT_SVE_BitPerm).
5686
+ ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE = 51,
5687
+
5688
+ /// This Arm processor implements the SVE BF16 (BFloat16) instructions (FEAT_BF16).
5689
+ ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE = 52,
5690
+
5691
+ /// This Arm processor implements the SVE EBF16 (Extended BFloat16) instructions (FEAT_EBF16).
5692
+ ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE = 53,
5693
+
5694
+ /// This Arm processor implements the SVE B16B16 instructions (FEAT_SVE_B16B16).
5695
+ ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE = 54,
5696
+
5697
+ /// This Arm processor implements the SVE SHA-3 cryptographic instructions (FEAT_SVE_SHA3).
5698
+ ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE = 55,
5699
+
5700
+ /// This Arm processor implements the SVE SM4 cryptographic instructions (FEAT_SVE_SM4).
5701
+ ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE = 56,
5702
+
5703
+ /// This Arm processor implements the SVE I8MM (Int8 matrix multiply) instructions (FEAT_I8MM).
5704
+ ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE = 57,
5705
+
5706
+ /// This Arm processor implements the SVE F32MM (FP32 matrix multiply) instructions (FEAT_F32MM).
5707
+ ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE = 58,
5708
+
5709
+ /// This Arm processor implements the SVE F64MM (FP64 matrix multiply) instructions (FEAT_F64MM).
5710
+ ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE = 59,
5711
+
5712
+ /// This x64 processor implements the BMI2 instruction set.
5713
+ BMI2_INSTRUCTIONS_AVAILABLE = 60,
5714
+
5715
+ /// This x64 processor implements the MOVDIR64B instruction.
5716
+ MOVDIR64B_INSTRUCTION_AVAILABLE = 61,
5717
+
5718
+ /// This Arm processor implements the LSE2 atomic instructions (FEAT_LSE2).
5719
+ ARM_LSE2_AVAILABLE = 62,
5720
+
5721
+ /// This Arm processor implements the SHA-3 cryptographic instructions (FEAT_SHA3).
5722
+ ARM_SHA3_INSTRUCTIONS_AVAILABLE = 64,
5723
+
5724
+ /// This Arm processor implements the SHA-512 cryptographic instructions (FEAT_SHA512).
5725
+ ARM_SHA512_INSTRUCTIONS_AVAILABLE = 65,
5726
+
5727
+ /// This Arm processor implements the I8MM (Int8 matrix multiply) NEON instructions (FEAT_I8MM).
5728
+ ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE = 66,
5729
+
5730
+ /// This Arm processor implements the FP16 (half-precision floating point) NEON instructions (FEAT_FP16).
5731
+ ARM_V82_FP16_INSTRUCTIONS_AVAILABLE = 67,
5732
+
5733
+ /// This Arm processor implements the BF16 (BFloat16) NEON instructions (FEAT_BF16).
5734
+ ARM_V86_BF16_INSTRUCTIONS_AVAILABLE = 68,
5735
+
5736
+ /// This Arm processor implements the EBF16 (Extended BFloat16) NEON instructions (FEAT_EBF16).
5737
+ ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE = 69,
5738
+
5739
+ /// This Arm processor implements the SME (Scalable Matrix Extension) instructions (FEAT_SME).
5740
+ ARM_SME_INSTRUCTIONS_AVAILABLE = 70,
5741
+
5742
+ /// This Arm processor implements the SME2 instructions (FEAT_SME2).
5743
+ ARM_SME2_INSTRUCTIONS_AVAILABLE = 71,
5744
+
5745
+ /// This Arm processor implements the SME2.1 instructions (FEAT_SME2p1).
5746
+ ARM_SME2_1_INSTRUCTIONS_AVAILABLE = 72,
5747
+
5748
+ /// This Arm processor implements the SME2.2 instructions (FEAT_SME2p2).
5749
+ ARM_SME2_2_INSTRUCTIONS_AVAILABLE = 73,
5750
+
5751
+ /// This Arm processor implements the SVE AES instructions when in Streaming SVE mode (FEAT_SSVE_AES).
5752
+ ARM_SME_AES_INSTRUCTIONS_AVAILABLE = 74,
5753
+
5754
+ /// This Arm processor implements the SVE bit permute instructions when in Streaming SVE mode (FEAT_SSVE_BitPerm).
5755
+ ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE = 75,
5756
+
5757
+ /// This Arm processor implements the SVE FMMLA (widening, 4-way, FP8 to FP16) instruction when in Streaming SVE mode (FEAT_SSVE_F8F16MM).
5758
+ ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE = 76,
5759
+
5760
+ /// This Arm processor implements the SVE FMMLA (widening, 8-way, FP8 to FP32) instruction when in Streaming SVE mode (FEAT_SSVE_F8F32MM).
5761
+ ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE = 77,
5762
+
5763
+ /// This Arm processor implements the SVE2 FP8DOT2 instructions when in Streaming SVE mode (FEAT_SSVE_FP8DOT2).
5764
+ ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE = 78,
5765
+
5766
+ /// This Arm processor implements the SVE2 FP8DOT4 instructions when in Streaming SVE mode (FEAT_SSVE_FP8DOT4).
5767
+ ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE = 79,
5768
+
5769
+ /// This Arm processor implements the SVE2 FP8FMA instructions when in Streaming SVE mode (FEAT_SSVE_FP8FMA).
5770
+ ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE = 80,
5771
+
5772
+ /// This Arm processor implements the SME F8F32 instructions (FEAT_SME_F8F32).
5773
+ ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE = 81,
5774
+
5775
+ /// This Arm processor implements the SME F8F16 instructions (FEAT_SME_F8F16).
5776
+ ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE = 82,
5777
+
5778
+ /// This Arm processor implements the SME F16F16 instructions (FEAT_SME_F16F16).
5779
+ ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE = 83,
5780
+
5781
+ /// This Arm processor implements the SME B16B16 instructions (FEAT_SME_B16B16).
5782
+ ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE = 84,
5783
+
5784
+ /// This Arm processor implements the SME F64F64 instructions (FEAT_SME_F64F64).
5785
+ ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE = 85,
5786
+
5787
+ /// This Arm processor implements the SME I16I64 instructions (FEAT_SME_I16I64).
5788
+ ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE = 86,
5789
+
5790
+ /// This Arm processor implements the SME LUTv2 instructions (FEAT_SME_LUTv2).
5791
+ ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE = 87,
5792
+
5793
+ /// This Arm processor implements SME FA64 (Full AArch64 instruction set when in Streaming SVE mode) (FEAT_SME_FA64).
5794
+ ARM_SME_FA64_INSTRUCTIONS_AVAILABLE = 88,
5795
+
5796
+ /// This x64 processor implements the UMONITOR instruction.
5797
+ UMONITOR_INSTRUCTION_AVAILABLE = 89,
5669
5798
  };
5670
5799
 
5671
5800
  pub const MAX_WOW64_SHARED_ENTRIES = 16;
package/std/simd.zig CHANGED
@@ -157,13 +157,6 @@ pub fn join(a: anytype, b: anytype) @Vector(vectorLength(@TypeOf(a)) + vectorLen
157
157
  /// Returns a vector whose elements alternates between those of each input vector.
158
158
  /// For example, `interlace(.{[4]u32{11, 12, 13, 14}, [4]u32{21, 22, 23, 24}})` returns a vector containing `.{11, 21, 12, 22, 13, 23, 14, 24}`.
159
159
  pub fn interlace(vecs: anytype) @Vector(vectorLength(@TypeOf(vecs[0])) * vecs.len, std.meta.Child(@TypeOf(vecs[0]))) {
160
- // interlace doesn't work on MIPS, for some reason.
161
- // Notes from earlier debug attempt:
162
- // The indices are correct. The problem seems to be with the @shuffle builtin.
163
- // On MIPS, the test that interlaces small_base gives { 0, 2, 0, 0, 64, 255, 248, 200, 0, 0 }.
164
- // Calling this with two inputs seems to work fine, but I'll let the compile error trigger for all inputs, just to be safe.
165
- if (builtin.cpu.arch.isMIPS()) @compileError("TODO: Find out why interlace() doesn't work on MIPS");
166
-
167
160
  const VecType = @TypeOf(vecs[0]);
168
161
  const vecs_arr = @as([vecs.len]VecType, vecs);
169
162
  const Child = std.meta.Child(@TypeOf(vecs_arr[0]));
@@ -247,13 +240,11 @@ test "vector patterns" {
247
240
  try std.testing.expectEqual([8]u32{ 10, 20, 30, 40, 55, 66, 77, 88 }, join(base, other_base));
248
241
  try std.testing.expectEqual([2]u32{ 20, 30 }, extract(base, 1, 2));
249
242
 
250
- if (!builtin.cpu.arch.isMIPS()) {
251
- try std.testing.expectEqual([8]u32{ 10, 55, 20, 66, 30, 77, 40, 88 }, interlace(.{ base, other_base }));
243
+ try std.testing.expectEqual([8]u32{ 10, 55, 20, 66, 30, 77, 40, 88 }, interlace(.{ base, other_base }));
252
244
 
253
- const small_braid = interlace(small_bases);
254
- try std.testing.expectEqual([10]u8{ 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 }, small_braid);
255
- try std.testing.expectEqual(small_bases, deinterlace(small_bases.len, small_braid));
256
- }
245
+ const small_braid = interlace(small_bases);
246
+ try std.testing.expectEqual([10]u8{ 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 }, small_braid);
247
+ try std.testing.expectEqual(small_bases, deinterlace(small_bases.len, small_braid));
257
248
  }
258
249
 
259
250
  /// Joins two vectors, shifts them leftwards (towards lower indices) and extracts the leftmost elements into a vector the length of a and b.
@@ -384,9 +375,6 @@ pub fn prefixScanWithFunc(
384
375
  /// For example, this should be 0 for addition or 1 for multiplication.
385
376
  comptime identity: std.meta.Child(@TypeOf(vec)),
386
377
  ) if (ErrorType == void) @TypeOf(vec) else ErrorType!@TypeOf(vec) {
387
- // I haven't debugged this, but it might be a cousin of sorts to what's going on with interlace.
388
- if (builtin.cpu.arch.isMIPS()) @compileError("TODO: Find out why prefixScan doesn't work on MIPS");
389
-
390
378
  const len = vectorLength(@TypeOf(vec));
391
379
 
392
380
  if (hop == 0) @compileError("hop can not be 0; you'd be going nowhere forever!");
@@ -456,11 +444,6 @@ pub fn prefixScan(comptime op: std.builtin.ReduceOp, comptime hop: isize, vec: a
456
444
  }
457
445
 
458
446
  test "vector prefix scan" {
459
- if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21893
460
- if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .hexagon) return error.SkipZigTest;
461
-
462
- if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest;
463
-
464
447
  const int_base = @Vector(4, i32){ 11, 23, 9, -21 };
465
448
  const float_base = @Vector(4, f32){ 2, 0.5, -10, 6.54321 };
466
449
  const bool_base = @Vector(4, bool){ true, false, true, false };
package/std/start.zig CHANGED
@@ -20,8 +20,9 @@ comptime {
20
20
  _ = root;
21
21
 
22
22
  if (builtin.output_mode == .Lib and builtin.link_mode == .dynamic) {
23
- if (native_os == .windows and !@hasDecl(root, "_DllMainCRTStartup")) {
24
- @export(&_DllMainCRTStartup, .{ .name = "_DllMainCRTStartup" });
23
+ const dll_main_crt_startup = if (builtin.abi.isGnu()) "DllMainCRTStartup" else "_DllMainCRTStartup";
24
+ if (native_os == .windows and !builtin.link_libc and !@hasDecl(root, dll_main_crt_startup)) {
25
+ @export(&DllMainCRTStartup, .{ .name = dll_main_crt_startup });
25
26
  }
26
27
  } else if (builtin.output_mode == .Exe or @hasDecl(root, "main")) {
27
28
  if (builtin.link_libc and @hasDecl(root, "main")) {
@@ -71,7 +72,7 @@ comptime {
71
72
  }
72
73
  }
73
74
 
74
- fn _DllMainCRTStartup(
75
+ fn DllMainCRTStartup(
75
76
  hinstDLL: std.os.windows.HINSTANCE,
76
77
  fdwReason: std.os.windows.DWORD,
77
78
  lpReserved: std.os.windows.LPVOID,
package/std/zig/Ast.zig CHANGED
@@ -196,19 +196,17 @@ pub fn parseTokens(
196
196
  .zon => try parser.parseZon(),
197
197
  }
198
198
 
199
- const extra_data = try parser.extra_data.toOwnedSlice(gpa);
200
- errdefer gpa.free(extra_data);
201
- const errors = try parser.errors.toOwnedSlice(gpa);
202
- errdefer gpa.free(errors);
199
+ try parser.extra_data.shrinkToLen(gpa);
200
+ try parser.errors.shrinkToLen(gpa);
203
201
 
204
202
  // TODO experiment with compacting the MultiArrayList slices here
205
- return Ast{
203
+ return .{
206
204
  .source = source,
207
205
  .mode = mode,
208
206
  .tokens = tokens,
209
207
  .nodes = parser.nodes.toOwnedSlice(),
210
- .extra_data = extra_data,
211
- .errors = errors,
208
+ .extra_data = parser.extra_data.toOwnedSliceAssert(),
209
+ .errors = parser.errors.toOwnedSliceAssert(),
212
210
  };
213
211
  }
214
212
 
@@ -243,10 +243,13 @@ pub fn generate(gpa: Allocator, tree: Ast) Allocator.Error!Zir {
243
243
  }
244
244
  }
245
245
 
246
+ try astgen.extra.shrinkToLen(gpa);
247
+ try astgen.string_bytes.shrinkToLen(gpa);
248
+
246
249
  return .{
247
250
  .instructions = if (fatal) .empty else astgen.instructions.toOwnedSlice(),
248
- .string_bytes = try astgen.string_bytes.toOwnedSlice(gpa),
249
- .extra = try astgen.extra.toOwnedSlice(gpa),
251
+ .string_bytes = astgen.string_bytes.toOwnedSliceAssert(),
252
+ .extra = astgen.extra.toOwnedSliceAssert(),
250
253
  };
251
254
  }
252
255
 
@@ -4998,6 +5001,10 @@ fn structDeclInner(
4998
5001
  );
4999
5002
  if (field_comptime_bits) |bits| @memset(bits.get(astgen), 0);
5000
5003
 
5004
+ const old_hasher = astgen.src_hasher;
5005
+ defer astgen.src_hasher = old_hasher;
5006
+ astgen.src_hasher = .init(.{});
5007
+
5001
5008
  // Before any field bodies comes the backing int type, if specified.
5002
5009
  const backing_int_type_body_len: ?u32 = if (maybe_backing_int_node.unwrap()) |backing_int_node| len: {
5003
5010
  if (layout != .@"packed") return astgen.failNode(
@@ -5005,6 +5012,7 @@ fn structDeclInner(
5005
5012
  "non-packed struct does not support backing integer type",
5006
5013
  .{},
5007
5014
  );
5015
+ astgen.src_hasher.update(astgen.tree.getNodeSource(backing_int_node));
5008
5016
  const type_ref = try typeExpr(&block_scope, &namespace.base, backing_int_node);
5009
5017
  if (!block_scope.endsWithNoReturn()) {
5010
5018
  _ = try block_scope.addBreak(.break_inline, decl_inst, type_ref);
@@ -5014,10 +5022,6 @@ fn structDeclInner(
5014
5022
  break :len body_len;
5015
5023
  } else null;
5016
5024
 
5017
- const old_hasher = astgen.src_hasher;
5018
- defer astgen.src_hasher = old_hasher;
5019
- astgen.src_hasher = .init(.{});
5020
-
5021
5025
  var next_field_idx: u32 = 0;
5022
5026
  for (container_decl.ast.members) |member_node| {
5023
5027
  var member = switch (try containerMember(&block_scope, &namespace.base, &wip_decls, member_node)) {
@@ -5278,8 +5282,13 @@ fn unionDeclInner(
5278
5282
  const field_align_body_lens = try scratch.addOptionalSlice(scan_result.any_field_aligns, scan_result.fields_len);
5279
5283
  const field_value_body_lens = try scratch.addOptionalSlice(scan_result.any_field_values, scan_result.fields_len);
5280
5284
 
5285
+ const old_hasher = astgen.src_hasher;
5286
+ defer astgen.src_hasher = old_hasher;
5287
+ astgen.src_hasher = .init(.{});
5288
+
5281
5289
  // Before any field bodies comes the tag/backing type, if specified.
5282
5290
  const arg_type_body_len: ?u32 = if (opt_arg_node.unwrap()) |arg_node| len: {
5291
+ astgen.src_hasher.update(astgen.tree.getNodeSource(arg_node));
5283
5292
  const type_ref = try typeExpr(&block_scope, &namespace.base, arg_node);
5284
5293
  if (!block_scope.endsWithNoReturn()) {
5285
5294
  _ = try block_scope.addBreak(.break_inline, decl_inst, type_ref);
@@ -5289,10 +5298,6 @@ fn unionDeclInner(
5289
5298
  break :len body_len;
5290
5299
  } else null;
5291
5300
 
5292
- const old_hasher = astgen.src_hasher;
5293
- defer astgen.src_hasher = old_hasher;
5294
- astgen.src_hasher = .init(.{});
5295
-
5296
5301
  var next_field_idx: u32 = 0;
5297
5302
  for (members) |member_node| {
5298
5303
  var member = switch (try containerMember(&block_scope, &namespace.base, &wip_decls, member_node)) {
@@ -5483,8 +5488,13 @@ fn containerDecl(
5483
5488
  const field_names = try scratch.addSlice(fields_len);
5484
5489
  const field_value_body_lens = try scratch.addOptionalSlice(scan_result.any_field_values, fields_len);
5485
5490
 
5491
+ const old_hasher = astgen.src_hasher;
5492
+ defer astgen.src_hasher = old_hasher;
5493
+ astgen.src_hasher = .init(.{});
5494
+
5486
5495
  // Before any field bodies comes the tag type, if specified.
5487
5496
  const tag_type_body_len: ?u32 = if (container_decl.ast.arg.unwrap()) |tag_type_node| len: {
5497
+ astgen.src_hasher.update(astgen.tree.getNodeSource(tag_type_node));
5488
5498
  const type_ref = try typeExpr(&block_scope, &namespace.base, tag_type_node);
5489
5499
  if (!block_scope.endsWithNoReturn()) {
5490
5500
  _ = try block_scope.addBreak(.break_inline, decl_inst, type_ref);
@@ -5494,10 +5504,6 @@ fn containerDecl(
5494
5504
  break :len body_len;
5495
5505
  } else null;
5496
5506
 
5497
- const old_hasher = astgen.src_hasher;
5498
- defer astgen.src_hasher = old_hasher;
5499
- astgen.src_hasher = .init(.{});
5500
-
5501
5507
  var next_field_idx: u32 = 0;
5502
5508
  var opt_nonexhaustive_node: Ast.Node.OptionalIndex = .none;
5503
5509
  for (container_decl.ast.members) |member_node| {
@@ -397,9 +397,13 @@ pub const Wip = struct {
397
397
  });
398
398
  try wip.extra.appendSlice(gpa, @as([]const u32, @ptrCast(wip.root_list.items)));
399
399
  wip.root_list.clearAndFree(gpa);
400
+
401
+ try wip.string_bytes.shrinkToLen(gpa);
402
+ try wip.extra.shrinkToLen(gpa);
403
+
400
404
  return .{
401
- .string_bytes = try wip.string_bytes.toOwnedSlice(gpa),
402
- .extra = try wip.extra.toOwnedSlice(gpa),
405
+ .string_bytes = wip.string_bytes.toOwnedSliceAssert(),
406
+ .extra = wip.extra.toOwnedSliceAssert(),
403
407
  };
404
408
  }
405
409