@scriptc/cli-darwin-arm64 0.2.5 → 0.2.6

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 (417) hide show
  1. package/dist/THIRD_PARTY_NOTICES +1 -1
  2. package/dist/bin/scriptc +0 -0
  3. package/dist/bin/scriptc.json +1 -1
  4. package/dist/lib/declarations/scriptc-node-fallback.d.ts +57 -30
  5. package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
  6. package/dist/lib/llvm/package.json +1 -1
  7. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_array.o +0 -0
  8. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_assert.o +0 -0
  9. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_async.o +0 -0
  10. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
  11. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
  12. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_child.o +0 -0
  13. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_closure.o +0 -0
  14. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_console.o +0 -0
  15. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_context.o +0 -0
  16. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
  17. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
  18. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_error.o +0 -0
  19. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events.o +0 -0
  20. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
  21. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_exception.o +0 -0
  22. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
  23. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
  24. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_json.o +0 -0
  25. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_lib.o +0 -0
  26. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_map.o +0 -0
  27. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_number.o +0 -0
  28. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_object.o +0 -0
  29. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_readline.o +0 -0
  30. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_regex.o +0 -0
  31. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_shared.o +0 -0
  32. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_stream.o +0 -0
  33. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_string.o +0 -0
  34. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_tls.o +0 -0
  35. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_union.o +0 -0
  36. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_array.o +0 -0
  37. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_assert.o +0 -0
  38. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async.o +0 -0
  39. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async_dyn.o +0 -0
  40. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint.o +0 -0
  41. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint_assert.o +0 -0
  42. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes.o +0 -0
  43. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes_io.o +0 -0
  44. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_child.o +0 -0
  45. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_closure.o +0 -0
  46. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console.o +0 -0
  47. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console_native.o +0 -0
  48. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_context.o +0 -0
  49. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_copying.o +0 -0
  50. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_crypto_async.o +0 -0
  51. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_cycle.o +0 -0
  52. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dc.o +0 -0
  53. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dgram.o +0 -0
  54. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_handle.o +0 -0
  55. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_invoke.o +0 -0
  56. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_error.o +0 -0
  57. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events.o +0 -0
  58. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events_emitter.o +0 -0
  59. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_exception.o +0 -0
  60. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_fetch.o +0 -0
  61. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi.o +0 -0
  62. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi_queue.o +0 -0
  63. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_file_handle.o +0 -0
  64. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_grapheme.o +0 -0
  65. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http.o +0 -0
  66. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http2.o +0 -0
  67. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_inspect.o +0 -0
  68. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_json.o +0 -0
  69. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_lib.o +0 -0
  70. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_epoll.o +0 -0
  71. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_kqueue.o +0 -0
  72. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  73. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_map.o +0 -0
  74. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_net.o +0 -0
  75. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_node_builtin.o +0 -0
  76. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_number.o +0 -0
  77. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_object.o +0 -0
  78. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_path.o +0 -0
  79. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_qs.o +0 -0
  80. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_readline.o +0 -0
  81. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_regex.o +0 -0
  82. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_shared.o +0 -0
  83. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_stream.o +0 -0
  84. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_string.o +0 -0
  85. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_symbol.o +0 -0
  86. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_test.o +0 -0
  87. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls.o +0 -0
  88. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls_ca.o +0 -0
  89. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_union.o +0 -0
  90. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url.o +0 -0
  91. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url_params.o +0 -0
  92. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util.o +0 -0
  93. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_compare.o +0 -0
  94. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_style.o +0 -0
  95. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_watch.o +0 -0
  96. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_zlib.o +0 -0
  97. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
  98. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
  99. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
  100. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
  101. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
  102. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
  103. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
  104. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
  105. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_context.o +0 -0
  106. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
  107. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
  108. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
  109. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
  110. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
  111. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
  112. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
  113. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
  114. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
  115. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
  116. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
  117. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
  118. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
  119. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
  120. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
  121. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_shared.o +0 -0
  122. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
  123. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
  124. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
  125. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
  126. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  127. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  128. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  129. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_mailbox.o +0 -0
  130. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_message.o +0 -0
  131. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker.o +0 -0
  132. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker_events.o +0 -0
  133. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
  134. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
  135. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
  136. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
  137. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
  138. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_context.o +0 -0
  139. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
  140. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
  141. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
  142. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
  143. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
  144. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
  145. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
  146. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
  147. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
  148. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
  149. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_shared.o +0 -0
  150. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
  151. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
  152. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  153. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_array.o +0 -0
  154. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
  155. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
  156. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
  157. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
  158. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_context.o +0 -0
  159. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
  160. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_error.o +0 -0
  161. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
  162. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
  163. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_json.o +0 -0
  164. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
  165. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_map.o +0 -0
  166. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_number.o +0 -0
  167. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_object.o +0 -0
  168. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
  169. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_shared.o +0 -0
  170. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_string.o +0 -0
  171. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_union.o +0 -0
  172. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  173. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
  174. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
  175. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
  176. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
  177. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
  178. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
  179. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_context.o +0 -0
  180. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
  181. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
  182. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
  183. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
  184. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
  185. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
  186. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
  187. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
  188. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
  189. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
  190. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
  191. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
  192. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_shared.o +0 -0
  193. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
  194. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
  195. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
  196. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  197. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
  198. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
  199. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
  200. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
  201. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
  202. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
  203. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_context.o +0 -0
  204. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
  205. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
  206. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
  207. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
  208. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
  209. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
  210. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
  211. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
  212. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
  213. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
  214. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
  215. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
  216. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_shared.o +0 -0
  217. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
  218. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
  219. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
  220. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  221. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_array.o +0 -0
  222. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_assert.o +0 -0
  223. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_async.o +0 -0
  224. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes.o +0 -0
  225. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
  226. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_child.o +0 -0
  227. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_closure.o +0 -0
  228. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_console.o +0 -0
  229. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_context.o +0 -0
  230. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_cycle.o +0 -0
  231. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_dgram.o +0 -0
  232. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_error.o +0 -0
  233. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events.o +0 -0
  234. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
  235. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_exception.o +0 -0
  236. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_fetch.o +0 -0
  237. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
  238. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_json.o +0 -0
  239. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_lib.o +0 -0
  240. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_map.o +0 -0
  241. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_number.o +0 -0
  242. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_object.o +0 -0
  243. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_readline.o +0 -0
  244. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_regex.o +0 -0
  245. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_shared.o +0 -0
  246. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_stream.o +0 -0
  247. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_string.o +0 -0
  248. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_tls.o +0 -0
  249. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_union.o +0 -0
  250. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_array.o +0 -0
  251. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_assert.o +0 -0
  252. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async.o +0 -0
  253. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async_dyn.o +0 -0
  254. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint.o +0 -0
  255. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint_assert.o +0 -0
  256. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes.o +0 -0
  257. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes_io.o +0 -0
  258. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_child.o +0 -0
  259. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_closure.o +0 -0
  260. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console.o +0 -0
  261. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console_native.o +0 -0
  262. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_context.o +0 -0
  263. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_copying.o +0 -0
  264. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_crypto_async.o +0 -0
  265. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_cycle.o +0 -0
  266. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dc.o +0 -0
  267. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dgram.o +0 -0
  268. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_handle.o +0 -0
  269. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_invoke.o +0 -0
  270. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_error.o +0 -0
  271. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events.o +0 -0
  272. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events_emitter.o +0 -0
  273. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_exception.o +0 -0
  274. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_fetch.o +0 -0
  275. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi.o +0 -0
  276. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi_queue.o +0 -0
  277. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_file_handle.o +0 -0
  278. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_grapheme.o +0 -0
  279. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http.o +0 -0
  280. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http2.o +0 -0
  281. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_inspect.o +0 -0
  282. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_json.o +0 -0
  283. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_lib.o +0 -0
  284. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_epoll.o +0 -0
  285. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_kqueue.o +0 -0
  286. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  287. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_map.o +0 -0
  288. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_net.o +0 -0
  289. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_node_builtin.o +0 -0
  290. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_number.o +0 -0
  291. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_object.o +0 -0
  292. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_path.o +0 -0
  293. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_qs.o +0 -0
  294. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_readline.o +0 -0
  295. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_regex.o +0 -0
  296. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_shared.o +0 -0
  297. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_stream.o +0 -0
  298. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_string.o +0 -0
  299. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_symbol.o +0 -0
  300. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_test.o +0 -0
  301. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls.o +0 -0
  302. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls_ca.o +0 -0
  303. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_union.o +0 -0
  304. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url.o +0 -0
  305. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url_params.o +0 -0
  306. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util.o +0 -0
  307. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_compare.o +0 -0
  308. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_style.o +0 -0
  309. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_watch.o +0 -0
  310. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_zlib.o +0 -0
  311. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
  312. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
  313. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
  314. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
  315. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
  316. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
  317. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
  318. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
  319. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_context.o +0 -0
  320. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
  321. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
  322. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
  323. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
  324. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
  325. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
  326. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
  327. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
  328. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
  329. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
  330. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
  331. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
  332. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
  333. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
  334. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
  335. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_shared.o +0 -0
  336. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
  337. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
  338. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
  339. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
  340. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  341. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  342. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  343. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_mailbox.o +0 -0
  344. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_message.o +0 -0
  345. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker.o +0 -0
  346. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker_events.o +0 -0
  347. package/dist/lib/runtime-darwin-arm64/package.json +1 -1
  348. package/dist/lib/runtime-darwin-arm64/runtime-pack.json +3300 -772
  349. package/dist/lib/runtime-sources/package.json +1 -1
  350. package/dist/lib/runtime-sources/src/scr_array.c +212 -40
  351. package/dist/lib/runtime-sources/src/scr_assert.c +3 -3
  352. package/dist/lib/runtime-sources/src/scr_async.c +401 -71
  353. package/dist/lib/runtime-sources/src/scr_async_dyn.c +30 -30
  354. package/dist/lib/runtime-sources/src/scr_bytes.c +50 -5
  355. package/dist/lib/runtime-sources/src/scr_bytes_io.c +47 -32
  356. package/dist/lib/runtime-sources/src/scr_child.c +48 -30
  357. package/dist/lib/runtime-sources/src/scr_closure.c +21 -11
  358. package/dist/lib/runtime-sources/src/scr_console.c +27 -5
  359. package/dist/lib/runtime-sources/src/scr_context.c +167 -0
  360. package/dist/lib/runtime-sources/src/scr_context.test.c +118 -0
  361. package/dist/lib/runtime-sources/src/scr_context.test.ts +47 -0
  362. package/dist/lib/runtime-sources/src/scr_copying.c +1 -0
  363. package/dist/lib/runtime-sources/src/scr_cycle.c +112 -12
  364. package/dist/lib/runtime-sources/src/scr_dc.c +8 -8
  365. package/dist/lib/runtime-sources/src/scr_dgram.c +10 -7
  366. package/dist/lib/runtime-sources/src/scr_error.c +26 -14
  367. package/dist/lib/runtime-sources/src/scr_events.c +45 -31
  368. package/dist/lib/runtime-sources/src/scr_events_emitter.c +34 -1
  369. package/dist/lib/runtime-sources/src/scr_exception.c +26 -7
  370. package/dist/lib/runtime-sources/src/scr_fetch.c +23 -20
  371. package/dist/lib/runtime-sources/src/scr_fetch_curl.c +1 -1
  372. package/dist/lib/runtime-sources/src/scr_ffi.c +3 -3
  373. package/dist/lib/runtime-sources/src/scr_file_handle.c +1 -0
  374. package/dist/lib/runtime-sources/src/scr_http.c +20 -16
  375. package/dist/lib/runtime-sources/src/scr_http2.c +10 -8
  376. package/dist/lib/runtime-sources/src/scr_inspect.c +1 -0
  377. package/dist/lib/runtime-sources/src/scr_island.c +1 -1
  378. package/dist/lib/runtime-sources/src/scr_json.c +179 -45
  379. package/dist/lib/runtime-sources/src/scr_json.test.c +16 -0
  380. package/dist/lib/runtime-sources/src/scr_json.test.ts +1 -0
  381. package/dist/lib/runtime-sources/src/scr_key.h +28 -4
  382. package/dist/lib/runtime-sources/src/scr_lib.c +124 -63
  383. package/dist/lib/runtime-sources/src/scr_mailbox.c +233 -0
  384. package/dist/lib/runtime-sources/src/scr_mailbox.h +28 -0
  385. package/dist/lib/runtime-sources/src/scr_mailbox.test.c +86 -0
  386. package/dist/lib/runtime-sources/src/scr_mailbox.test.ts +46 -0
  387. package/dist/lib/runtime-sources/src/scr_map.c +195 -46
  388. package/dist/lib/runtime-sources/src/scr_message.c +443 -0
  389. package/dist/lib/runtime-sources/src/scr_message.h +14 -0
  390. package/dist/lib/runtime-sources/src/scr_message.test.c +152 -0
  391. package/dist/lib/runtime-sources/src/scr_message.test.ts +44 -0
  392. package/dist/lib/runtime-sources/src/scr_net.c +14 -12
  393. package/dist/lib/runtime-sources/src/scr_number.c +34 -0
  394. package/dist/lib/runtime-sources/src/scr_object.c +9 -4
  395. package/dist/lib/runtime-sources/src/scr_path.c +1 -1
  396. package/dist/lib/runtime-sources/src/scr_readline.c +8 -8
  397. package/dist/lib/runtime-sources/src/scr_regex.c +113 -0
  398. package/dist/lib/runtime-sources/src/scr_runtime.h +170 -28
  399. package/dist/lib/runtime-sources/src/scr_shared.c +280 -0
  400. package/dist/lib/runtime-sources/src/scr_shared.test.c +113 -0
  401. package/dist/lib/runtime-sources/src/scr_shared.test.ts +45 -0
  402. package/dist/lib/runtime-sources/src/scr_stream.c +9 -9
  403. package/dist/lib/runtime-sources/src/scr_string.c +224 -113
  404. package/dist/lib/runtime-sources/src/scr_test.c +8 -8
  405. package/dist/lib/runtime-sources/src/scr_tls.c +12 -12
  406. package/dist/lib/runtime-sources/src/scr_tls_ca.c +34 -12
  407. package/dist/lib/runtime-sources/src/scr_union.c +10 -5
  408. package/dist/lib/runtime-sources/src/scr_util_compare.c +1 -0
  409. package/dist/lib/runtime-sources/src/scr_util_style.c +11 -11
  410. package/dist/lib/runtime-sources/src/scr_watch.c +16 -6
  411. package/dist/lib/runtime-sources/src/scr_worker.c +232 -0
  412. package/dist/lib/runtime-sources/src/scr_worker.h +42 -0
  413. package/dist/lib/runtime-sources/src/scr_worker.test.c +115 -0
  414. package/dist/lib/runtime-sources/src/scr_worker.test.ts +49 -0
  415. package/dist/lib/runtime-sources/src/scr_worker_events.c +443 -0
  416. package/dist/lib/runtime-sources/src/scr_zlib.c +6 -0
  417. package/package.json +1 -1
@@ -148,7 +148,7 @@ static ScrStr *util_style_replace(const ScrStr *text, const char *close,
148
148
  }
149
149
 
150
150
  static bool util_style_env_nonempty(const char *name) {
151
- const char *value = getenv(name);
151
+ const char *value = scr_getenv(name);
152
152
  return value && *value;
153
153
  }
154
154
 
@@ -174,7 +174,7 @@ done:
174
174
  /* styleText only needs the color/no-color distinction, rather than the
175
175
  * full 4/8/24-bit depth. Follow the ordering of Node 24 internal/tty. */
176
176
  static bool util_style_terminal_colors(void) {
177
- const char *force = getenv("FORCE_COLOR");
177
+ const char *force = scr_getenv("FORCE_COLOR");
178
178
  if (force) {
179
179
  bool enabled = !strcmp(force, "") || !strcmp(force, "true") ||
180
180
  !strcmp(force, "1") || !strcmp(force, "2") || !strcmp(force, "3");
@@ -192,21 +192,21 @@ static bool util_style_terminal_colors(void) {
192
192
  }
193
193
  return enabled;
194
194
  }
195
- const char *term = getenv("TERM");
195
+ const char *term = scr_getenv("TERM");
196
196
  if (util_style_env_nonempty("NO_COLOR") || util_style_env_nonempty("NODE_DISABLE_COLORS") ||
197
197
  (term && !strcmp(term, "dumb"))) return false;
198
198
  #ifdef _WIN32
199
199
  return true;
200
200
  #endif
201
201
  if (util_style_env_nonempty("TMUX")) return true;
202
- if (getenv("TF_BUILD") && getenv("AGENT_NAME")) return true;
203
- if (getenv("CI")) {
202
+ if (scr_getenv("TF_BUILD") && scr_getenv("AGENT_NAME")) return true;
203
+ if (scr_getenv("CI")) {
204
204
  static const char *const ci[] = { "APPVEYOR", "BUILDKITE", "CIRCLECI", "DRONE", "GITEA_ACTIONS", "GITHUB_ACTIONS", "GITLAB_CI", "TRAVIS" };
205
- for (size_t i = 0; i < sizeof ci / sizeof ci[0]; i++) if (getenv(ci[i])) return true;
206
- const char *name = getenv("CI_NAME");
205
+ for (size_t i = 0; i < sizeof ci / sizeof ci[0]; i++) if (scr_getenv(ci[i])) return true;
206
+ const char *name = scr_getenv("CI_NAME");
207
207
  return name && !strcmp(name, "codeship");
208
208
  }
209
- const char *teamcity = getenv("TEAMCITY_VERSION");
209
+ const char *teamcity = scr_getenv("TEAMCITY_VERSION");
210
210
  if (teamcity) {
211
211
  const char *p = teamcity;
212
212
  if (!strncmp(p, "9.", 2)) {
@@ -218,10 +218,10 @@ static bool util_style_terminal_colors(void) {
218
218
  while (*p >= '0' && *p <= '9') p++;
219
219
  return p - teamcity >= 2 && *p == '.';
220
220
  }
221
- const char *program = getenv("TERM_PROGRAM");
221
+ const char *program = scr_getenv("TERM_PROGRAM");
222
222
  if (program && (!strcmp(program, "iTerm.app") || !strcmp(program, "HyperTerm") ||
223
223
  !strcmp(program, "MacTerm") || !strcmp(program, "Apple_Terminal"))) return true;
224
- const char *colorterm = getenv("COLORTERM");
224
+ const char *colorterm = scr_getenv("COLORTERM");
225
225
  if (colorterm && (!strcmp(colorterm, "truecolor") || !strcmp(colorterm, "24bit"))) return true;
226
226
  if (term) {
227
227
  if (strstr(term, "truecolor") || !strncmp(term, "xterm-256", 9)) return true;
@@ -294,7 +294,7 @@ ScrStr *scr_util_style_text(const ScrDyn *format, const ScrDyn *text, const ScrD
294
294
  scr_dyn_arg_type_fail("stream", "an instance of ReadableStream, WritableStream, or Stream", stream); goto done;
295
295
  }
296
296
  }
297
- colorize = getenv("FORCE_COLOR") ? util_style_terminal_colors() :
297
+ colorize = scr_getenv("FORCE_COLOR") ? util_style_terminal_colors() :
298
298
  scr_process_is_tty(fd) && util_style_terminal_colors();
299
299
  }
300
300
  }
@@ -121,11 +121,11 @@ struct ScrWatcher {
121
121
  struct ScrWatcher *next; /* the open-watcher registry (+1 each) */
122
122
  };
123
123
 
124
- static ScrWatcher *scr_watchers = NULL;
125
- static size_t scr_watchers_open = 0; /* liveness: open (unclosed) watchers */
124
+ static SCR_TL ScrWatcher *scr_watchers = NULL;
125
+ static SCR_TL size_t scr_watchers_open = 0; /* liveness: open (unclosed) watchers */
126
126
 
127
127
  #ifdef SCR_HAVE_KQUEUE
128
- static int scr_watch_kq = -1; /* created with the first watch; lives forever */
128
+ static SCR_TL int scr_watch_kq = -1; /* created with the first watch; lives forever */
129
129
 
130
130
  /* Arms the vnode filter for a watcher's current fd. EV_CLEAR: state resets
131
131
  * at delivery, so an unserviced event never busy-spins the idle poll (the
@@ -145,7 +145,7 @@ static bool scr_watch_arm(ScrWatcher *w) {
145
145
  #endif
146
146
 
147
147
  #ifdef SCR_HAVE_INOTIFY
148
- static int scr_watch_ino = -1; /* created with the first watch; lives forever */
148
+ static SCR_TL int scr_watch_ino = -1; /* created with the first watch */
149
149
 
150
150
  /* libuv's subscription mask: name-level events for directory watches,
151
151
  * self events for the file case, IN_IGNORED arriving for free. */
@@ -557,12 +557,22 @@ static void scr_watch_cleanup_atexit(void) {
557
557
  scr_watcher_drop_listeners(w);
558
558
  scr_watcher_release(w);
559
559
  }
560
+ #ifdef SCR_WORKERS
561
+ #ifdef SCR_HAVE_KQUEUE
562
+ if (scr_watch_kq >= 0) close(scr_watch_kq);
563
+ scr_watch_kq = -1;
564
+ #endif
565
+ #ifdef SCR_HAVE_INOTIFY
566
+ if (scr_watch_ino >= 0) close(scr_watch_ino);
567
+ scr_watch_ino = -1;
568
+ #endif
569
+ #endif
560
570
  }
561
571
 
562
572
  void scr_watch_install(void) {
563
- static bool installed = false;
573
+ static SCR_TL bool installed = false;
564
574
  if (installed) return;
565
575
  installed = true;
566
- atexit(scr_watch_cleanup_atexit);
576
+ scr_atexit(scr_watch_cleanup_atexit);
567
577
  scr_loop_set_watch(&scr_watch_pending, &scr_watch_dispatch, &scr_watch_pollfd);
568
578
  }
@@ -0,0 +1,232 @@
1
+ #include "scr_worker.h"
2
+
3
+ #ifdef SCR_WORKERS
4
+ #include <stdatomic.h>
5
+ #include <stdlib.h>
6
+ #include <limits.h>
7
+ #ifdef _WIN32
8
+ #include <process.h>
9
+ #include <windows.h>
10
+ #else
11
+ #include <pthread.h>
12
+ #endif
13
+
14
+ struct ScrWorkerThread {
15
+ atomic_size_t references;
16
+ atomic_bool cancel;
17
+ atomic_bool port_closed;
18
+ uint64_t id;
19
+ uint32_t root;
20
+ ScrWorkerEntry entry;
21
+ ScrMailbox *inbox;
22
+ ScrMailbox *parent;
23
+ ScrMessage *data;
24
+ ScrContextEnv *environment;
25
+ int argc;
26
+ char **argv;
27
+ bool joined;
28
+ #ifdef _WIN32
29
+ HANDLE thread;
30
+ #else
31
+ pthread_t thread;
32
+ #endif
33
+ };
34
+
35
+ static atomic_uint_fast64_t scr_worker_next_id = 1;
36
+ static SCR_TL ScrWorkerThread *scr_worker_current;
37
+ static SCR_TL ScrDyn *scr_worker_local_data;
38
+
39
+ static ScrMailEvent *scr_worker_event(unsigned kind, uint64_t source,
40
+ int code, ScrMessage *message) {
41
+ ScrMailEvent *event = calloc(1, sizeof(*event));
42
+ if (!event) scr_trap("scriptc: out of memory\n");
43
+ *event = (ScrMailEvent){.kind = kind, .source = source, .code = code, .message = message};
44
+ return event;
45
+ }
46
+
47
+ ScrWorkerThread *scr_worker_thread_retain(ScrWorkerThread *worker) {
48
+ atomic_fetch_add_explicit(&worker->references, 1, memory_order_relaxed);
49
+ return worker;
50
+ }
51
+
52
+ void scr_worker_thread_release(ScrWorkerThread *worker) {
53
+ if (!worker || atomic_fetch_sub_explicit(&worker->references, 1, memory_order_acq_rel) != 1) return;
54
+ #ifdef _WIN32
55
+ if (worker->thread) CloseHandle(worker->thread);
56
+ #else
57
+ if (!worker->joined) (void)pthread_detach(worker->thread);
58
+ #endif
59
+ scr_mailbox_release(worker->inbox);
60
+ scr_mailbox_release(worker->parent);
61
+ scr_message_free(worker->data);
62
+ scr_context_env_free(worker->environment);
63
+ for (int i = 0; i < worker->argc; i++) free(worker->argv[i]);
64
+ free(worker->argv);
65
+ free(worker);
66
+ }
67
+
68
+ static void scr_worker_data_cleanup(void) {
69
+ ScrDyn *data = scr_worker_local_data;
70
+ scr_worker_local_data = NULL;
71
+ scr_dyn_release(data);
72
+ }
73
+
74
+ ScrDyn *scr_worker_data(void) {
75
+ if (!scr_worker_current) return scr_dyn_new_null();
76
+ if (!scr_worker_local_data) {
77
+ ScrDyn *data = scr_message_decode(scr_worker_current->data);
78
+ if (!data) return NULL;
79
+ scr_worker_local_data = data;
80
+ if (scr_context_atexit(scr_worker_data_cleanup) != 0) scr_trap("scriptc: out of memory\n");
81
+ scr_message_free(scr_worker_current->data);
82
+ scr_worker_current->data = NULL;
83
+ }
84
+ return scr_dyn_retain(scr_worker_local_data);
85
+ }
86
+
87
+ ScrMailbox *scr_worker_inbox(void) {
88
+ return scr_worker_current ? scr_worker_current->inbox : NULL;
89
+ }
90
+
91
+ double scr_worker_root(void) { return scr_worker_current ? (double)scr_worker_current->root : -1; }
92
+ int scr_worker_argc(void) { return scr_worker_current ? scr_worker_current->argc : 0; }
93
+ char **scr_worker_argv(void) { return scr_worker_current ? scr_worker_current->argv : NULL; }
94
+
95
+ uint64_t scr_worker_thread_id(const ScrWorkerThread *worker) { return worker->id; }
96
+
97
+ void scr_worker_thread_terminate(ScrWorkerThread *worker) {
98
+ atomic_store_explicit(&worker->cancel, true, memory_order_relaxed);
99
+ scr_mailbox_post(worker->inbox, scr_worker_event(SCR_WORKER_WAKE, 0, 0, NULL));
100
+ }
101
+
102
+ bool scr_worker_thread_post(ScrWorkerThread *worker, ScrMessage *message) {
103
+ if (atomic_load_explicit(&worker->port_closed, memory_order_relaxed)) {
104
+ scr_message_free(message);
105
+ return false;
106
+ }
107
+ return scr_mailbox_post(worker->inbox, scr_worker_event(SCR_WORKER_MESSAGE, 0, 0, message));
108
+ }
109
+
110
+ void scr_worker_port_close(void) {
111
+ if (scr_worker_current)
112
+ atomic_store_explicit(&scr_worker_current->port_closed, true, memory_order_relaxed);
113
+ }
114
+
115
+ bool scr_worker_post_parent(ScrMessage *message) {
116
+ if (!scr_worker_current) { scr_message_free(message); return false; }
117
+ return scr_mailbox_post(scr_worker_current->parent,
118
+ scr_worker_event(SCR_WORKER_MESSAGE, scr_worker_current->id, 0, message));
119
+ }
120
+
121
+ static void scr_worker_report_error(void) {
122
+ ScrCaught *caught = scr_exc_take();
123
+ ScrDyn *value = scr_caught_to_dyn(caught);
124
+ ScrMessage *message = scr_message_encode(value);
125
+ scr_dyn_release(value);
126
+ scr_caught_release(caught);
127
+ if (!message) {
128
+ scr_exc_clear();
129
+ static const char text[] = "Serializing an uncaught exception failed";
130
+ scr_throw_error_msg_code(SCR_ERR_ERROR, text, sizeof text - 1, "ERR_WORKER_UNSERIALIZABLE_ERROR");
131
+ caught = scr_exc_take();
132
+ value = scr_caught_to_dyn(caught);
133
+ message = scr_message_encode(value);
134
+ scr_dyn_release(value);
135
+ scr_caught_release(caught);
136
+ }
137
+ scr_mailbox_post(scr_worker_current->parent,
138
+ scr_worker_event(SCR_WORKER_ERROR, scr_worker_current->id, 0, message));
139
+ }
140
+
141
+ static void scr_worker_thread_run(ScrWorkerThread *worker) {
142
+ scr_context_enter(worker->id);
143
+ scr_context_stop_flag(&worker->cancel);
144
+ scr_context_env_enter(worker->environment);
145
+ worker->environment = NULL;
146
+ scr_worker_current = worker;
147
+ scr_context_report_error = scr_worker_report_error;
148
+ scr_mailbox_post(worker->parent, scr_worker_event(SCR_WORKER_ONLINE, worker->id, 0, NULL));
149
+ int code = worker->entry(worker->root);
150
+ scr_mailbox_close(worker->inbox);
151
+ scr_context_cleanup();
152
+ scr_worker_current = NULL;
153
+ /* Cleanup may itself finish owner-bound native operations. Publish exit
154
+ * only once none of those operations can touch the worker's script heap. */
155
+ scr_mailbox_post(worker->parent, scr_worker_event(SCR_WORKER_EXIT, worker->id, code, NULL));
156
+ scr_worker_thread_release(worker);
157
+ }
158
+
159
+ #ifdef _WIN32
160
+ static unsigned __stdcall scr_worker_thread_main(void *data) {
161
+ scr_worker_thread_run(data);
162
+ return 0;
163
+ }
164
+ #else
165
+ static void *scr_worker_thread_main(void *data) {
166
+ scr_worker_thread_run(data);
167
+ return NULL;
168
+ }
169
+ #endif
170
+
171
+ ScrWorkerThread *scr_worker_thread_start(ScrWorkerEntry entry, uint32_t root,
172
+ ScrMessage *data, ScrMailbox *parent,
173
+ ScrArr *arguments) {
174
+ ScrWorkerThread *worker = calloc(1, sizeof(*worker));
175
+ if (!worker) scr_trap("scriptc: out of memory\n");
176
+ atomic_init(&worker->references, 2); /* owner and native thread */
177
+ atomic_init(&worker->cancel, false);
178
+ atomic_init(&worker->port_closed, false);
179
+ worker->id = atomic_fetch_add_explicit(&scr_worker_next_id, 1, memory_order_relaxed);
180
+ worker->entry = entry;
181
+ worker->root = root;
182
+ worker->data = data;
183
+ worker->environment = scr_context_env_capture();
184
+ worker->parent = scr_mailbox_retain(parent);
185
+ if (arguments) {
186
+ if (arguments->len > INT_MAX) scr_trap("scriptc: too many worker arguments\n");
187
+ worker->argc = (int)arguments->len;
188
+ worker->argv = calloc(arguments->len + 1, sizeof(*worker->argv));
189
+ if (!worker->argv) scr_trap("scriptc: out of memory\n");
190
+ for (size_t i = 0; i < arguments->len; i++) {
191
+ ScrStr *text = scr_arr_get_ref(arguments, (double)i);
192
+ worker->argv[i] = malloc(text->len + 1);
193
+ if (!worker->argv[i]) scr_trap("scriptc: out of memory\n");
194
+ memcpy(worker->argv[i], text->data, text->len + 1);
195
+ scr_str_release(text);
196
+ }
197
+ }
198
+ worker->inbox = scr_mailbox_new();
199
+ if (!worker->inbox) goto failed;
200
+ #ifdef _WIN32
201
+ worker->thread = (HANDLE)_beginthreadex(NULL, 0, scr_worker_thread_main, worker, 0, NULL);
202
+ if (!worker->thread) goto failed;
203
+ #else
204
+ if (pthread_create(&worker->thread, NULL, scr_worker_thread_main, worker) != 0) goto failed;
205
+ #endif
206
+ return worker;
207
+ failed:
208
+ for (int i = 0; i < worker->argc; i++) free(worker->argv[i]);
209
+ free(worker->argv);
210
+ scr_context_env_free(worker->environment);
211
+ scr_mailbox_release(worker->inbox);
212
+ scr_mailbox_release(worker->parent);
213
+ scr_message_free(worker->data);
214
+ free(worker);
215
+ if (!scr_exc_pending()) {
216
+ static const char message[] = "Could not start worker thread";
217
+ scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "ERR_WORKER_INIT_FAILED");
218
+ }
219
+ return NULL;
220
+ }
221
+
222
+ void scr_worker_thread_join(ScrWorkerThread *worker) {
223
+ if (worker->joined) return;
224
+ #ifdef _WIN32
225
+ if (WaitForSingleObject(worker->thread, INFINITE) != WAIT_OBJECT_0)
226
+ scr_trap("scriptc: worker join failed\n");
227
+ #else
228
+ if (pthread_join(worker->thread, NULL) != 0) scr_trap("scriptc: worker join failed\n");
229
+ #endif
230
+ worker->joined = true;
231
+ }
232
+ #endif
@@ -0,0 +1,42 @@
1
+ #ifndef SCR_WORKER_H
2
+ #define SCR_WORKER_H
3
+
4
+ #include "scr_mailbox.h"
5
+
6
+ /* A thread carries only neutral transport state and an immutable compiled
7
+ * entry point. Script-visible handles and listeners stay in their owner's
8
+ * runtime heap. The entry initializes that thread's runtime before user code;
9
+ * the thread wrapper drains its context before publishing the exit event. */
10
+ typedef struct ScrWorkerThread ScrWorkerThread;
11
+ typedef int (*ScrWorkerEntry)(uint32_t root);
12
+
13
+ enum {
14
+ SCR_WORKER_ONLINE = 1,
15
+ SCR_WORKER_MESSAGE,
16
+ SCR_WORKER_ERROR,
17
+ SCR_WORKER_EXIT,
18
+ SCR_WORKER_WAKE,
19
+ SCR_WORKER_STDOUT,
20
+ SCR_WORKER_STDERR,
21
+ };
22
+
23
+ /* Consumes data, including on failure. Borrows the parent's mailbox. */
24
+ ScrWorkerThread *scr_worker_thread_start(ScrWorkerEntry entry, uint32_t root,
25
+ ScrMessage *data, ScrMailbox *parent,
26
+ ScrArr *arguments);
27
+ ScrWorkerThread *scr_worker_thread_retain(ScrWorkerThread *worker);
28
+ void scr_worker_thread_release(ScrWorkerThread *worker);
29
+ /* Join is owner-only and idempotent. The caller holds a reference. */
30
+ void scr_worker_thread_join(ScrWorkerThread *worker);
31
+ void scr_worker_thread_terminate(ScrWorkerThread *worker);
32
+ uint64_t scr_worker_thread_id(const ScrWorkerThread *worker);
33
+ /* Posting consumes the message even after the destination has closed. */
34
+ bool scr_worker_thread_post(ScrWorkerThread *worker, ScrMessage *message);
35
+ bool scr_worker_post_parent(ScrMessage *message);
36
+ void scr_worker_port_close(void);
37
+ /* Current-thread access: inbox is borrowed, data is a retained local value. */
38
+ ScrMailbox *scr_worker_inbox(void);
39
+ void scr_loop_set_workers(bool (*pending)(void), bool (*ready)(void), void (*dispatch)(void),
40
+ int (*pollfd)(void), void (*wait)(double));
41
+
42
+ #endif
@@ -0,0 +1,115 @@
1
+ #undef NDEBUG
2
+ #include "scr_worker.h"
3
+ #include <assert.h>
4
+ #include <sched.h>
5
+ #include <stdatomic.h>
6
+ #include <stdio.h>
7
+
8
+ enum { WORKERS = 4, MESSAGES = 16 };
9
+ static atomic_bool start;
10
+ static SCR_TL unsigned timer_calls;
11
+ static SCR_TL unsigned cleanup_calls;
12
+
13
+ static void check_cleanup(void) { cleanup_calls++; }
14
+
15
+ static void timer(ScrClosure *closure) {
16
+ (void)closure;
17
+ assert(!scr_context_is_main());
18
+ timer_calls++;
19
+ }
20
+
21
+ static int entry(uint32_t root_id) {
22
+ scr_init();
23
+ scr_lib_init(0, NULL);
24
+ assert(!scr_context_is_main());
25
+ assert(timer_calls == 0 && cleanup_calls == 0);
26
+ assert(scr_context_atexit(check_cleanup) == 0);
27
+ while (!atomic_load_explicit(&start, memory_order_acquire)) sched_yield();
28
+ ScrDyn *input = scr_worker_data();
29
+ assert(input && !scr_exc_pending());
30
+ assert(scr_dyn_obj_get(input, "root", 4)->v.num == root_id);
31
+ assert(scr_dyn_obj_get(input, "self", 4) == input);
32
+ ScrDyn *again = scr_worker_data();
33
+ assert(input == again);
34
+ scr_dyn_release(again);
35
+ scr_dyn_release(input);
36
+
37
+ for (unsigned i = 0; i < MESSAGES; i++) {
38
+ ScrDyn *value = scr_dyn_new_num(root_id * 100 + i);
39
+ ScrMessage *wire = scr_message_encode(value);
40
+ scr_dyn_release(value);
41
+ assert(wire && scr_worker_post_parent(wire));
42
+ ScrMailEvent *reply = NULL;
43
+ while (!(reply = scr_mailbox_take(scr_worker_inbox())))
44
+ scr_mailbox_wait(scr_worker_inbox(), 1000);
45
+ assert(reply->kind == SCR_WORKER_MESSAGE && reply->source == 0);
46
+ value = scr_message_decode(reply->message);
47
+ assert(value && value->kind == SCR_DYN_NUM && value->v.num == root_id * 100 + i);
48
+ scr_dyn_release(value);
49
+ scr_mail_event_free(reply);
50
+ }
51
+ scr_set_timeout(scr_closure_new((void *)timer, 0), 1);
52
+ assert(!scr_loop_run(NULL) && !scr_exc_pending());
53
+ assert(timer_calls == 1 && cleanup_calls == 0);
54
+ return (int)root_id;
55
+ }
56
+
57
+ int main(void) {
58
+ scr_init();
59
+ scr_lib_init(0, NULL);
60
+ ScrMailbox *mailbox = scr_mailbox_new();
61
+ assert(mailbox);
62
+ ScrWorkerThread *workers[WORKERS];
63
+ unsigned messages[WORKERS] = {0};
64
+ bool online[WORKERS] = {false};
65
+ bool exited[WORKERS] = {false};
66
+ for (unsigned i = 0; i < WORKERS; i++) {
67
+ ScrDyn *input = scr_dyn_new_obj();
68
+ scr_dyn_obj_set(input, "root", 4, scr_dyn_new_num(i));
69
+ scr_dyn_obj_set(input, "self", 4, scr_dyn_retain(input));
70
+ ScrMessage *wire = scr_message_encode(input);
71
+ scr_dyn_release(input);
72
+ assert(wire && !scr_exc_pending());
73
+ workers[i] = scr_worker_thread_start(entry, i, wire, mailbox, NULL);
74
+ assert(workers[i] && !scr_exc_pending());
75
+ assert(scr_worker_thread_id(workers[i]) != 0);
76
+ }
77
+ /* No sender heap survives into the workerData decode. */
78
+ scr_collect_cycles();
79
+ atomic_store_explicit(&start, true, memory_order_release);
80
+ unsigned exit_count = 0;
81
+ while (exit_count != WORKERS) {
82
+ ScrMailEvent *event = scr_mailbox_take(mailbox);
83
+ if (!event) { scr_mailbox_wait(mailbox, 1000); continue; }
84
+ unsigned i = 0;
85
+ while (i < WORKERS && scr_worker_thread_id(workers[i]) != event->source) i++;
86
+ assert(i < WORKERS && !exited[i]);
87
+ if (event->kind == SCR_WORKER_ONLINE) {
88
+ assert(!online[i]);
89
+ online[i] = true;
90
+ } else if (event->kind == SCR_WORKER_MESSAGE) {
91
+ assert(online[i] && messages[i] < MESSAGES);
92
+ ScrDyn *value = scr_message_decode(event->message);
93
+ assert(value && value->kind == SCR_DYN_NUM && value->v.num == i * 100 + messages[i]);
94
+ messages[i]++;
95
+ ScrMessage *reply = scr_message_encode(value);
96
+ scr_dyn_release(value);
97
+ assert(reply && scr_worker_thread_post(workers[i], reply));
98
+ } else {
99
+ assert(event->kind == SCR_WORKER_EXIT && event->code == (int)i);
100
+ assert(online[i] && messages[i] == MESSAGES);
101
+ exited[i] = true;
102
+ exit_count++;
103
+ scr_worker_thread_join(workers[i]);
104
+ scr_worker_thread_join(workers[i]);
105
+ ScrMessage *late = scr_message_encode(scr_dyn_undefined());
106
+ assert(late && !scr_worker_thread_post(workers[i], late));
107
+ }
108
+ scr_mail_event_free(event);
109
+ }
110
+ for (unsigned i = 0; i < WORKERS; i++) scr_worker_thread_release(workers[i]);
111
+ scr_mailbox_release(mailbox);
112
+ assert(timer_calls == 0 && cleanup_calls == 0 && scr_context_is_main());
113
+ scr_context_cleanup();
114
+ puts("worker threads isolate heaps, exchange messages and publish ordered exits");
115
+ }
@@ -0,0 +1,49 @@
1
+ import { execFile } from "node:child_process";
2
+ import { mkdtemp, rm } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { promisify } from "node:util";
6
+ import { expect, test } from "vitest";
7
+ import { EXECUTABLE_RUNTIME_SOURCES } from "../../compiler/src/backend/native-toolchain.js";
8
+
9
+ const exec = promisify(execFile);
10
+
11
+ test.skipIf(process.platform === "win32")(
12
+ "native workers own their data and finish all message exchanges before exit",
13
+ async () => {
14
+ const dir = await mkdtemp(join(tmpdir(), "scriptc-workers-"));
15
+ try {
16
+ const bin = join(dir, "workers");
17
+ await exec("clang", [
18
+ "-std=c11",
19
+ "-O1",
20
+ "-pthread",
21
+ "-DSCR_WORKERS",
22
+ "-DSCR_RC_AUDIT",
23
+ "-fsanitize=address,undefined",
24
+ "-Wno-deprecated-declarations",
25
+ ...(process.platform === "linux" ? ["-D_GNU_SOURCE"] : []),
26
+ ...[
27
+ "scr_worker.test.c",
28
+ "scr_worker.c",
29
+ "scr_mailbox.c",
30
+ "scr_message.c",
31
+ ...EXECUTABLE_RUNTIME_SOURCES,
32
+ ].map((name) => join(import.meta.dirname, name)),
33
+ ...(process.platform === "linux" ? ["-lm"] : []),
34
+ "-o",
35
+ bin,
36
+ ]);
37
+ const result = await exec(bin, [], {
38
+ timeout: 10000,
39
+ env: { ...process.env, UBSAN_OPTIONS: "halt_on_error=1" },
40
+ });
41
+ expect(result.stdout).toBe(
42
+ "worker threads isolate heaps, exchange messages and publish ordered exits\n",
43
+ );
44
+ expect(result.stderr).toBe("");
45
+ } finally {
46
+ await rm(dir, { recursive: true, force: true });
47
+ }
48
+ },
49
+ );