@scriptc/cli-darwin-arm64 0.2.4 → 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 (432) 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 +972 -245
  5. package/dist/lib/declarations/scriptc-overrides.d.ts +5 -1
  6. package/dist/lib/declarations/scriptc.d.ts +22 -2
  7. package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
  8. package/dist/lib/llvm/package.json +1 -1
  9. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_array.o +0 -0
  10. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_assert.o +0 -0
  11. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_async.o +0 -0
  12. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
  13. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
  14. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_child.o +0 -0
  15. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_closure.o +0 -0
  16. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_console.o +0 -0
  17. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_context.o +0 -0
  18. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_copying.o +0 -0
  19. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
  20. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
  21. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_error.o +0 -0
  22. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events.o +0 -0
  23. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
  24. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_exception.o +0 -0
  25. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
  26. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
  27. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_json.o +0 -0
  28. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_lib.o +0 -0
  29. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_map.o +0 -0
  30. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_number.o +0 -0
  31. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_object.o +0 -0
  32. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_readline.o +0 -0
  33. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_regex.o +0 -0
  34. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_shared.o +0 -0
  35. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_stream.o +0 -0
  36. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_string.o +0 -0
  37. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_tls.o +0 -0
  38. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_union.o +0 -0
  39. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_array.o +0 -0
  40. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_assert.o +0 -0
  41. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async.o +0 -0
  42. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async_dyn.o +0 -0
  43. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint.o +0 -0
  44. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint_assert.o +0 -0
  45. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes.o +0 -0
  46. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes_io.o +0 -0
  47. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_child.o +0 -0
  48. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_closure.o +0 -0
  49. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console.o +0 -0
  50. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console_native.o +0 -0
  51. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_context.o +0 -0
  52. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_copying.o +0 -0
  53. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_crypto_async.o +0 -0
  54. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_cycle.o +0 -0
  55. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dc.o +0 -0
  56. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dgram.o +0 -0
  57. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_handle.o +0 -0
  58. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_invoke.o +0 -0
  59. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_error.o +0 -0
  60. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events.o +0 -0
  61. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events_emitter.o +0 -0
  62. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_exception.o +0 -0
  63. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_fetch.o +0 -0
  64. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi.o +0 -0
  65. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi_queue.o +0 -0
  66. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_file_handle.o +0 -0
  67. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_grapheme.o +0 -0
  68. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http.o +0 -0
  69. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http2.o +0 -0
  70. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_inspect.o +0 -0
  71. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_json.o +0 -0
  72. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_lib.o +0 -0
  73. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_epoll.o +0 -0
  74. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_kqueue.o +0 -0
  75. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  76. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_map.o +0 -0
  77. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_net.o +0 -0
  78. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_node_builtin.o +0 -0
  79. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_number.o +0 -0
  80. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_object.o +0 -0
  81. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_path.o +0 -0
  82. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_qs.o +0 -0
  83. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_readline.o +0 -0
  84. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_regex.o +0 -0
  85. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_shared.o +0 -0
  86. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_stream.o +0 -0
  87. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_string.o +0 -0
  88. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_symbol.o +0 -0
  89. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_test.o +0 -0
  90. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls.o +0 -0
  91. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls_ca.o +0 -0
  92. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_union.o +0 -0
  93. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url.o +0 -0
  94. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url_params.o +0 -0
  95. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util.o +0 -0
  96. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_compare.o +0 -0
  97. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_style.o +0 -0
  98. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_watch.o +0 -0
  99. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_zlib.o +0 -0
  100. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
  101. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
  102. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
  103. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
  104. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
  105. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
  106. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
  107. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
  108. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_context.o +0 -0
  109. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_copying.o +0 -0
  110. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
  111. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
  112. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
  113. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
  114. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
  115. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
  116. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
  117. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
  118. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
  119. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
  120. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
  121. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
  122. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
  123. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
  124. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
  125. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_shared.o +0 -0
  126. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
  127. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
  128. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
  129. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
  130. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  131. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  132. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  133. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_mailbox.o +0 -0
  134. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_message.o +0 -0
  135. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker.o +0 -0
  136. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker_events.o +0 -0
  137. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
  138. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
  139. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
  140. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
  141. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
  142. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_context.o +0 -0
  143. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_copying.o +0 -0
  144. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
  145. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
  146. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
  147. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
  148. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
  149. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
  150. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
  151. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
  152. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
  153. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
  154. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_shared.o +0 -0
  155. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
  156. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
  157. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  158. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_array.o +0 -0
  159. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
  160. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
  161. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
  162. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
  163. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_context.o +0 -0
  164. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_copying.o +0 -0
  165. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
  166. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_error.o +0 -0
  167. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
  168. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
  169. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_json.o +0 -0
  170. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
  171. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_map.o +0 -0
  172. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_number.o +0 -0
  173. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_object.o +0 -0
  174. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
  175. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_shared.o +0 -0
  176. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_string.o +0 -0
  177. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_union.o +0 -0
  178. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  179. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
  180. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
  181. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
  182. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
  183. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
  184. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
  185. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_context.o +0 -0
  186. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
  187. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
  188. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
  189. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
  190. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
  191. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
  192. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
  193. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
  194. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
  195. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
  196. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
  197. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
  198. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_shared.o +0 -0
  199. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
  200. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
  201. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
  202. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  203. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
  204. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
  205. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
  206. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
  207. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
  208. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
  209. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_context.o +0 -0
  210. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
  211. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
  212. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
  213. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
  214. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
  215. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
  216. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
  217. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
  218. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
  219. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
  220. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
  221. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
  222. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_shared.o +0 -0
  223. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
  224. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
  225. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
  226. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  227. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_array.o +0 -0
  228. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_assert.o +0 -0
  229. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_async.o +0 -0
  230. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes.o +0 -0
  231. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
  232. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_child.o +0 -0
  233. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_closure.o +0 -0
  234. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_console.o +0 -0
  235. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_context.o +0 -0
  236. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_copying.o +0 -0
  237. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_cycle.o +0 -0
  238. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_dgram.o +0 -0
  239. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_error.o +0 -0
  240. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events.o +0 -0
  241. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
  242. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_exception.o +0 -0
  243. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_fetch.o +0 -0
  244. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
  245. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_json.o +0 -0
  246. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_lib.o +0 -0
  247. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_map.o +0 -0
  248. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_number.o +0 -0
  249. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_object.o +0 -0
  250. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_readline.o +0 -0
  251. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_regex.o +0 -0
  252. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_shared.o +0 -0
  253. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_stream.o +0 -0
  254. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_string.o +0 -0
  255. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_tls.o +0 -0
  256. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_union.o +0 -0
  257. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_util_compare.o +0 -0
  258. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_array.o +0 -0
  259. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_assert.o +0 -0
  260. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async.o +0 -0
  261. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async_dyn.o +0 -0
  262. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint.o +0 -0
  263. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint_assert.o +0 -0
  264. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes.o +0 -0
  265. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes_io.o +0 -0
  266. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_child.o +0 -0
  267. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_closure.o +0 -0
  268. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console.o +0 -0
  269. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console_native.o +0 -0
  270. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_context.o +0 -0
  271. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_copying.o +0 -0
  272. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_crypto_async.o +0 -0
  273. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_cycle.o +0 -0
  274. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dc.o +0 -0
  275. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dgram.o +0 -0
  276. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_handle.o +0 -0
  277. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_invoke.o +0 -0
  278. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_error.o +0 -0
  279. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events.o +0 -0
  280. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events_emitter.o +0 -0
  281. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_exception.o +0 -0
  282. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_fetch.o +0 -0
  283. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi.o +0 -0
  284. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi_queue.o +0 -0
  285. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_file_handle.o +0 -0
  286. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_grapheme.o +0 -0
  287. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http.o +0 -0
  288. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http2.o +0 -0
  289. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_inspect.o +0 -0
  290. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_json.o +0 -0
  291. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_lib.o +0 -0
  292. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_epoll.o +0 -0
  293. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_kqueue.o +0 -0
  294. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_wsapoll.o +0 -0
  295. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_map.o +0 -0
  296. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_net.o +0 -0
  297. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_node_builtin.o +0 -0
  298. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_number.o +0 -0
  299. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_object.o +0 -0
  300. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_path.o +0 -0
  301. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_qs.o +0 -0
  302. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_readline.o +0 -0
  303. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_regex.o +0 -0
  304. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_shared.o +0 -0
  305. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_stream.o +0 -0
  306. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_string.o +0 -0
  307. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_symbol.o +0 -0
  308. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_test.o +0 -0
  309. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls.o +0 -0
  310. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls_ca.o +0 -0
  311. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_union.o +0 -0
  312. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url.o +0 -0
  313. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url_params.o +0 -0
  314. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util.o +0 -0
  315. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_compare.o +0 -0
  316. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_style.o +0 -0
  317. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_watch.o +0 -0
  318. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_zlib.o +0 -0
  319. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
  320. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
  321. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
  322. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
  323. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
  324. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
  325. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
  326. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
  327. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_context.o +0 -0
  328. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_copying.o +0 -0
  329. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
  330. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
  331. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
  332. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
  333. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
  334. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
  335. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
  336. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
  337. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
  338. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
  339. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
  340. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
  341. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
  342. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
  343. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
  344. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_shared.o +0 -0
  345. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
  346. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
  347. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
  348. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
  349. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_util_compare.o +0 -0
  350. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
  351. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
  352. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
  353. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_mailbox.o +0 -0
  354. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_message.o +0 -0
  355. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker.o +0 -0
  356. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker_events.o +0 -0
  357. package/dist/lib/runtime-darwin-arm64/package.json +1 -1
  358. package/dist/lib/runtime-darwin-arm64/runtime-pack.json +3318 -790
  359. package/dist/lib/runtime-sources/package.json +1 -1
  360. package/dist/lib/runtime-sources/src/scr_array.c +479 -46
  361. package/dist/lib/runtime-sources/src/scr_assert.c +3 -3
  362. package/dist/lib/runtime-sources/src/scr_async.c +401 -71
  363. package/dist/lib/runtime-sources/src/scr_async.test.ts +16 -6
  364. package/dist/lib/runtime-sources/src/scr_async_dyn.c +30 -30
  365. package/dist/lib/runtime-sources/src/scr_bytes.c +487 -221
  366. package/dist/lib/runtime-sources/src/scr_bytes.test.c +85 -0
  367. package/dist/lib/runtime-sources/src/scr_bytes_io.c +45 -64
  368. package/dist/lib/runtime-sources/src/scr_child.c +48 -30
  369. package/dist/lib/runtime-sources/src/scr_closure.c +21 -11
  370. package/dist/lib/runtime-sources/src/scr_console.c +27 -5
  371. package/dist/lib/runtime-sources/src/scr_context.c +167 -0
  372. package/dist/lib/runtime-sources/src/scr_context.test.c +118 -0
  373. package/dist/lib/runtime-sources/src/scr_context.test.ts +47 -0
  374. package/dist/lib/runtime-sources/src/scr_copying.c +13 -2
  375. package/dist/lib/runtime-sources/src/scr_cycle.c +112 -12
  376. package/dist/lib/runtime-sources/src/scr_dc.c +8 -8
  377. package/dist/lib/runtime-sources/src/scr_dgram.c +10 -7
  378. package/dist/lib/runtime-sources/src/scr_error.c +26 -14
  379. package/dist/lib/runtime-sources/src/scr_events.c +45 -31
  380. package/dist/lib/runtime-sources/src/scr_events_emitter.c +34 -1
  381. package/dist/lib/runtime-sources/src/scr_exception.c +26 -7
  382. package/dist/lib/runtime-sources/src/scr_fetch.c +23 -20
  383. package/dist/lib/runtime-sources/src/scr_fetch_curl.c +1 -1
  384. package/dist/lib/runtime-sources/src/scr_ffi.c +3 -3
  385. package/dist/lib/runtime-sources/src/scr_file_handle.c +1 -0
  386. package/dist/lib/runtime-sources/src/scr_http.c +20 -16
  387. package/dist/lib/runtime-sources/src/scr_http2.c +10 -8
  388. package/dist/lib/runtime-sources/src/scr_inspect.c +1 -0
  389. package/dist/lib/runtime-sources/src/scr_island.c +1 -1
  390. package/dist/lib/runtime-sources/src/scr_json.c +652 -189
  391. package/dist/lib/runtime-sources/src/scr_json.test.c +339 -1
  392. package/dist/lib/runtime-sources/src/scr_json.test.ts +59 -25
  393. package/dist/lib/runtime-sources/src/scr_key.h +92 -0
  394. package/dist/lib/runtime-sources/src/scr_lib.c +256 -136
  395. package/dist/lib/runtime-sources/src/scr_mailbox.c +233 -0
  396. package/dist/lib/runtime-sources/src/scr_mailbox.h +28 -0
  397. package/dist/lib/runtime-sources/src/scr_mailbox.test.c +86 -0
  398. package/dist/lib/runtime-sources/src/scr_mailbox.test.ts +46 -0
  399. package/dist/lib/runtime-sources/src/scr_map.c +240 -107
  400. package/dist/lib/runtime-sources/src/scr_message.c +443 -0
  401. package/dist/lib/runtime-sources/src/scr_message.h +14 -0
  402. package/dist/lib/runtime-sources/src/scr_message.test.c +152 -0
  403. package/dist/lib/runtime-sources/src/scr_message.test.ts +44 -0
  404. package/dist/lib/runtime-sources/src/scr_net.c +14 -12
  405. package/dist/lib/runtime-sources/src/scr_number.c +36 -4
  406. package/dist/lib/runtime-sources/src/scr_numeric.h +25 -0
  407. package/dist/lib/runtime-sources/src/scr_numeric.test.c +37 -0
  408. package/dist/lib/runtime-sources/src/scr_numeric.test.ts +33 -0
  409. package/dist/lib/runtime-sources/src/scr_object.c +9 -4
  410. package/dist/lib/runtime-sources/src/scr_path.c +1 -1
  411. package/dist/lib/runtime-sources/src/scr_readline.c +8 -8
  412. package/dist/lib/runtime-sources/src/scr_regex.c +351 -167
  413. package/dist/lib/runtime-sources/src/scr_runtime.h +207 -34
  414. package/dist/lib/runtime-sources/src/scr_shared.c +280 -0
  415. package/dist/lib/runtime-sources/src/scr_shared.test.c +113 -0
  416. package/dist/lib/runtime-sources/src/scr_shared.test.ts +45 -0
  417. package/dist/lib/runtime-sources/src/scr_stream.c +9 -9
  418. package/dist/lib/runtime-sources/src/scr_string.c +365 -141
  419. package/dist/lib/runtime-sources/src/scr_test.c +8 -8
  420. package/dist/lib/runtime-sources/src/scr_tls.c +12 -12
  421. package/dist/lib/runtime-sources/src/scr_tls_ca.c +34 -12
  422. package/dist/lib/runtime-sources/src/scr_union.c +10 -5
  423. package/dist/lib/runtime-sources/src/scr_util_compare.c +1 -0
  424. package/dist/lib/runtime-sources/src/scr_util_style.c +11 -11
  425. package/dist/lib/runtime-sources/src/scr_watch.c +16 -6
  426. package/dist/lib/runtime-sources/src/scr_worker.c +232 -0
  427. package/dist/lib/runtime-sources/src/scr_worker.h +42 -0
  428. package/dist/lib/runtime-sources/src/scr_worker.test.c +115 -0
  429. package/dist/lib/runtime-sources/src/scr_worker.test.ts +49 -0
  430. package/dist/lib/runtime-sources/src/scr_worker_events.c +443 -0
  431. package/dist/lib/runtime-sources/src/scr_zlib.c +6 -0
  432. package/package.json +1 -1
@@ -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
+ );
@@ -0,0 +1,443 @@
1
+ #include "scr_worker.h"
2
+
3
+ #ifdef SCR_WORKERS
4
+ #include <stdlib.h>
5
+
6
+ extern int sc_worker_entry(uint32_t root);
7
+
8
+ typedef struct ScrWorkerView {
9
+ size_t rc;
10
+ ScrEmitter *events;
11
+ ScrWorkerThread *thread;
12
+ ScrPromise *termination;
13
+ bool port;
14
+ bool closed;
15
+ bool referenced;
16
+ bool started;
17
+ bool closing;
18
+ ScrMailEvent *queued_head;
19
+ ScrMailEvent *queued_tail;
20
+ struct ScrWorkerView *next;
21
+ } ScrWorkerView;
22
+
23
+ static SCR_TL ScrMailbox *scr_worker_events;
24
+ static SCR_TL ScrWorkerView *scr_worker_views;
25
+ static SCR_TL ScrWorkerView *scr_worker_port;
26
+ static const char *const scr_worker_method_names[] = {
27
+ "ref", "unref", "hasRef", "terminate", "postMessage", "on", "once", "addListener",
28
+ "prependListener", "prependOnceListener", "off", "removeListener", "removeAllListeners",
29
+ "listenerCount", "close", "start",
30
+ };
31
+ static SCR_TL ScrDyn *scr_worker_methods[sizeof scr_worker_method_names / sizeof scr_worker_method_names[0]];
32
+
33
+ static void scr_worker_view_trace(void *ptr, ScrTraceVisit visit, void *ctx) {
34
+ visit(((ScrWorkerView *)ptr)->events, ctx);
35
+ visit(((ScrWorkerView *)ptr)->termination, ctx);
36
+ }
37
+
38
+ static void scr_worker_view_gcfree(void *ptr) {
39
+ ScrWorkerView *view = ptr;
40
+ scr_worker_thread_release(view->thread);
41
+ while (view->queued_head) {
42
+ ScrMailEvent *event = view->queued_head;
43
+ view->queued_head = event->next;
44
+ scr_mail_event_free(event);
45
+ }
46
+ scr_obj_free_note();
47
+ scr_cyc_free(ptr);
48
+ }
49
+
50
+ static void scr_worker_view_destroy(void *ptr) {
51
+ ScrWorkerView *view = ptr;
52
+ scr_emitter_release(view->events);
53
+ scr_promise_release(view->termination);
54
+ scr_worker_view_gcfree(ptr);
55
+ }
56
+
57
+ static void *scr_worker_view_retain(void *ptr) {
58
+ ScrWorkerView *view = ptr;
59
+ view->rc++;
60
+ scr_cyc_mark_live(view);
61
+ return view;
62
+ }
63
+
64
+ static void scr_worker_view_release(void *ptr) {
65
+ ScrWorkerView *view = ptr;
66
+ if (!view) return;
67
+ if (--view->rc == 0) {
68
+ scr_cyc_on_dead(view);
69
+ scr_rc_destroy(view, scr_worker_view_destroy);
70
+ } else scr_cyc_on_release(view);
71
+ }
72
+
73
+ static void scr_worker_port_listeners(void *ptr, const ScrStr *name, bool present) {
74
+ ScrWorkerView *view = ptr;
75
+ if (name->len != 7 || memcmp(name->data, "message", 7)) return;
76
+ if (present) view->started = true;
77
+ view->referenced = present;
78
+ }
79
+
80
+ static ScrWorkerView *scr_worker_view_new(bool port) {
81
+ ScrWorkerView *view = scr_cyc_alloc(sizeof(*view), scr_worker_view_trace, scr_worker_view_gcfree);
82
+ view->rc = 1;
83
+ view->port = port;
84
+ view->referenced = !port;
85
+ view->events = scr_emitter_new();
86
+ view->events->cls = port ? "MessagePort" : "Worker";
87
+ if (port) scr_emitter_observe(view->events, scr_worker_port_listeners, view);
88
+ scr_obj_alloc_note();
89
+ return view;
90
+ }
91
+
92
+ static ScrDyn *scr_worker_refusal(const char *operation) {
93
+ ScrStr *message = scr_str_new(operation, strlen(operation));
94
+ scr_throw_lowering_fence(message);
95
+ scr_str_release(message);
96
+ return NULL;
97
+ }
98
+
99
+ static bool scr_worker_empty_transfer(const ScrDyn *value) {
100
+ if (value->kind == SCR_DYN_TYPED_REF) {
101
+ ScrDyn *view = scr_dyn_typed_ref_materialize(value);
102
+ bool empty = view && !scr_exc_pending() && scr_worker_empty_transfer(view);
103
+ scr_dyn_release(view);
104
+ return empty;
105
+ }
106
+ return value->kind == SCR_DYN_UNDEF || (value->kind == SCR_DYN_ARR && value->v.arr.len == 0);
107
+ }
108
+
109
+ static ScrDyn *scr_worker_view_invoke(void *ptr, ScrDyn *self, const char *method,
110
+ ScrDyn *const *args, size_t argc, const char *what) {
111
+ (void)what;
112
+ ScrWorkerView *view = ptr;
113
+ if (!strcmp(method, "ref") || !strcmp(method, "unref")) {
114
+ view->referenced = !strcmp(method, "ref");
115
+ return scr_dyn_retain(scr_dyn_undefined());
116
+ }
117
+ if (view->port && !strcmp(method, "hasRef"))
118
+ return scr_dyn_new_bool(view->referenced && !view->closed);
119
+ if (!view->port && !strcmp(method, "terminate")) {
120
+ if (!view->termination) {
121
+ view->termination = scr_promise_new();
122
+ if (view->closed) scr_promise_fulfill_ref(view->termination,
123
+ scr_dyn_retain(scr_dyn_undefined()), scr_dyn_retain_v, scr_dyn_release_v, scr_dyn_trace_v);
124
+ else scr_worker_thread_terminate(view->thread);
125
+ }
126
+ return scr_dyn_new_promise(view->termination);
127
+ }
128
+ if (!strcmp(method, "postMessage")) {
129
+ /* Worker drops messages after exit before validating or cloning. A
130
+ * closed MessagePort still validates its payload, as Node does. */
131
+ if (!view->port && view->closed) return scr_dyn_retain(scr_dyn_undefined());
132
+ if (!argc) {
133
+ static const char message[] = "The \"value\" argument must be specified";
134
+ scr_throw_error_msg_code(SCR_ERR_TYPE, message, sizeof message - 1, "ERR_MISSING_ARGS");
135
+ return NULL;
136
+ }
137
+ if (argc > 1 && !scr_worker_empty_transfer(args[1]))
138
+ return scr_exc_pending() ? NULL : scr_worker_refusal("Worker postMessage transfer lists are not supported yet");
139
+ ScrMessage *message = scr_message_encode(args[0]);
140
+ if (!message) return NULL;
141
+ if (view->closed) scr_message_free(message);
142
+ else if (view->port) scr_worker_post_parent(message);
143
+ else scr_worker_thread_post(view->thread, message);
144
+ return scr_dyn_retain(scr_dyn_undefined());
145
+ }
146
+ bool once = !strcmp(method, "once") || !strcmp(method, "prependOnceListener");
147
+ bool prepend = !strcmp(method, "prependListener") || !strcmp(method, "prependOnceListener");
148
+ if (once || prepend || !strcmp(method, "on") || !strcmp(method, "addListener")) {
149
+ ScrDyn *listener = argc > 1 ? args[1] : scr_dyn_undefined();
150
+ scr_dyn_check_listener(listener, "listener");
151
+ if (scr_exc_pending()) return NULL;
152
+ if (!argc || args[0]->kind != SCR_DYN_STR)
153
+ return scr_worker_refusal("Worker event names must be strings");
154
+ scr_emitter_release(scr_emitter_on_flex(view->events, args[0]->v.str, listener, once, prepend));
155
+ return scr_exc_pending() ? NULL : scr_dyn_retain(self);
156
+ }
157
+ if (!strcmp(method, "off") || !strcmp(method, "removeListener")) {
158
+ ScrDyn *listener = argc > 1 ? args[1] : scr_dyn_undefined();
159
+ scr_dyn_check_listener(listener, "listener");
160
+ if (scr_exc_pending()) return NULL;
161
+ if (!argc || args[0]->kind != SCR_DYN_STR)
162
+ return scr_worker_refusal("Worker event names must be strings");
163
+ scr_emitter_release(scr_emitter_off_dyn(view->events, args[0]->v.str, listener));
164
+ return scr_exc_pending() ? NULL : scr_dyn_retain(self);
165
+ }
166
+ if (!strcmp(method, "removeAllListeners")) {
167
+ bool all = !argc || args[0]->kind == SCR_DYN_UNDEF;
168
+ if (!all && args[0]->kind != SCR_DYN_STR)
169
+ return scr_worker_refusal("Worker event names must be strings");
170
+ scr_emitter_release(scr_emitter_remove_all(view->events, all ? NULL : args[0]->v.str, all));
171
+ return scr_exc_pending() ? NULL : scr_dyn_retain(self);
172
+ }
173
+ if (!strcmp(method, "listenerCount")) {
174
+ if (!argc || args[0]->kind != SCR_DYN_STR)
175
+ return scr_worker_refusal("Worker event names must be strings");
176
+ return scr_dyn_new_num(argc > 1 && args[1]->kind != SCR_DYN_UNDEF
177
+ ? scr_emitter_listener_count_dyn(view->events, args[0]->v.str, args[1])
178
+ : scr_emitter_listener_count(view->events, args[0]->v.str));
179
+ }
180
+ if (view->port && !strcmp(method, "close")) {
181
+ if (argc && args[0]->kind != SCR_DYN_UNDEF) {
182
+ scr_dyn_check_listener(args[0], "callback");
183
+ if (scr_exc_pending()) return NULL;
184
+ ScrStr *name = scr_str_new("close", 5);
185
+ scr_emitter_release(scr_emitter_on_flex(view->events, name, args[0], true, false));
186
+ scr_str_release(name);
187
+ }
188
+ if (!view->closed) view->closing = true;
189
+ view->closed = true;
190
+ scr_worker_port_close();
191
+ return scr_dyn_retain(scr_dyn_undefined());
192
+ }
193
+ if (view->port && !strcmp(method, "start")) {
194
+ view->started = true;
195
+ return scr_dyn_retain(scr_dyn_undefined());
196
+ }
197
+ return scr_worker_refusal("This Worker or MessagePort method is not supported yet");
198
+ }
199
+
200
+ static ScrDyn *scr_worker_method_call(ScrClosure *closure, ScrDyn *const *args, size_t argc) {
201
+ ScrDyn *self = scr_dyn_this_get();
202
+ ScrDyn *result = NULL;
203
+ if (self->kind != SCR_DYN_HANDLE ||
204
+ (self->v.handle.tag != SCR_DYNH_WORKER && self->v.handle.tag != SCR_DYNH_MESSAGE_PORT)) {
205
+ static const char message[] = "Illegal invocation";
206
+ scr_throw_error_msg_code(SCR_ERR_TYPE, message, sizeof message - 1, "ERR_INVALID_THIS");
207
+ } else {
208
+ size_t method = (size_t)scr_box_get_f64(closure->caps[0]);
209
+ result = scr_worker_view_invoke(self->v.handle.ptr, self, scr_worker_method_names[method], args, argc, "worker method");
210
+ }
211
+ scr_dyn_release(self);
212
+ return result;
213
+ }
214
+
215
+ static ScrDyn *scr_worker_view_get(void *ptr, const char *key, size_t length) {
216
+ ScrWorkerView *view = ptr;
217
+ if (!view->port && length == 8 && !memcmp(key, "threadId", 8))
218
+ return scr_dyn_new_num(view->closed ? -1 : (double)scr_worker_thread_id(view->thread));
219
+ for (size_t i = 0; i < sizeof scr_worker_methods / sizeof scr_worker_methods[0]; i++) {
220
+ const char *name = scr_worker_method_names[i];
221
+ if (strlen(name) != length || memcmp(name, key, length)) continue;
222
+ if ((view->port && !strcmp(name, "terminate")) ||
223
+ (!view->port && (!strcmp(name, "start") || !strcmp(name, "close") || !strcmp(name, "hasRef")))) return NULL;
224
+ if (!scr_worker_methods[i]) {
225
+ ScrClosure *closure = scr_closure_new(NULL, 1);
226
+ closure->caps[0] = scr_box_new(SCR_BOX_F64);
227
+ scr_box_set_f64(closure->caps[0], (double)i);
228
+ scr_worker_methods[i] = scr_dyn_new_func(closure, scr_worker_method_call, 0, "", name);
229
+ }
230
+ return scr_dyn_retain(scr_worker_methods[i]);
231
+ }
232
+ return NULL;
233
+ }
234
+
235
+ static bool scr_workers_pending(void) {
236
+ for (ScrWorkerView *view = scr_worker_views; view; view = view->next)
237
+ if (view->referenced) return true;
238
+ return scr_worker_port && (scr_worker_port->closing ||
239
+ (scr_worker_port->referenced && !scr_worker_port->closed));
240
+ }
241
+
242
+ static int scr_worker_events_pollfd(void) {
243
+ return scr_worker_events ? scr_mailbox_pollfd(scr_worker_events) : -1;
244
+ }
245
+
246
+ static bool scr_worker_events_ready(void) {
247
+ return (scr_worker_port && (scr_worker_port->closing ||
248
+ (scr_worker_port->started && scr_worker_port->queued_head))) ||
249
+ (scr_worker_events && scr_mailbox_pending(scr_worker_events));
250
+ }
251
+
252
+ static void scr_worker_events_wait(double milliseconds) {
253
+ if (!scr_worker_events_ready()) scr_mailbox_wait(scr_worker_events, milliseconds);
254
+ }
255
+
256
+ static void scr_worker_dispatch(void) {
257
+ ScrWorkerView *port = scr_worker_port;
258
+ if (port && port->closing) {
259
+ port->closing = false;
260
+ ScrStr *name = scr_str_new("close", 5);
261
+ scr_dyn_this_push(port, SCR_DYNH_MESSAGE_PORT);
262
+ scr_emitter_emit_flex(port->events, name, NULL, 0);
263
+ scr_dyn_this_pop();
264
+ scr_str_release(name);
265
+ if (scr_exc_pending()) return;
266
+ }
267
+ ScrMailEvent *event;
268
+ if (port && port->started && port->queued_head) {
269
+ event = port->queued_head;
270
+ port->queued_head = event->next;
271
+ if (!port->queued_head) port->queued_tail = NULL;
272
+ event->next = NULL;
273
+ } else event = scr_mailbox_take(scr_worker_events);
274
+ if (!event) return;
275
+ if (event->kind == SCR_WORKER_WAKE) { scr_mail_event_free(event); return; }
276
+ ScrWorkerView *view = scr_worker_port;
277
+ if (event->source) {
278
+ view = scr_worker_views;
279
+ while (view && scr_worker_thread_id(view->thread) != event->source) view = view->next;
280
+ }
281
+ if (!view) { scr_mail_event_free(event); return; }
282
+ if (view->port && event->kind == SCR_WORKER_MESSAGE) {
283
+ if (view->closed) { scr_mail_event_free(event); return; }
284
+ if (!view->started) {
285
+ if (view->queued_tail) view->queued_tail->next = event;
286
+ else view->queued_head = event;
287
+ view->queued_tail = event;
288
+ return;
289
+ }
290
+ }
291
+ scr_worker_view_retain(view);
292
+ const char *event_name = event->kind == SCR_WORKER_ONLINE ? "online" :
293
+ event->kind == SCR_WORKER_EXIT ? "exit" : event->kind == SCR_WORKER_ERROR ? "error" : "message";
294
+ ScrDyn *argument = event->message ? scr_message_decode(event->message) :
295
+ event->kind == SCR_WORKER_EXIT ? scr_dyn_new_num(event->code) : NULL;
296
+ if (event->kind == SCR_WORKER_EXIT) {
297
+ scr_worker_thread_join(view->thread);
298
+ view->closed = true;
299
+ if (view->termination) scr_promise_fulfill_ref(view->termination,
300
+ scr_dyn_new_num(event->code), scr_dyn_retain_v, scr_dyn_release_v, scr_dyn_trace_v);
301
+ ScrWorkerView **slot = &scr_worker_views;
302
+ while (*slot != view) slot = &(*slot)->next;
303
+ *slot = view->next;
304
+ view->next = NULL;
305
+ scr_worker_view_release(view); /* registry reference */
306
+ }
307
+ if (!scr_exc_pending()) {
308
+ ScrStr *name = scr_str_new(event_name, strlen(event_name));
309
+ scr_dyn_this_push(view, view->port ? SCR_DYNH_MESSAGE_PORT : SCR_DYNH_WORKER);
310
+ if (event->kind == SCR_WORKER_ERROR) scr_emitter_emit_error_flex(view->events, argument);
311
+ else scr_emitter_emit_flex(view->events, name, argument ? &argument : NULL, argument ? 1 : 0);
312
+ scr_dyn_this_pop();
313
+ scr_str_release(name);
314
+ }
315
+ scr_dyn_release(argument);
316
+ scr_worker_view_release(view);
317
+ scr_mail_event_free(event);
318
+ }
319
+
320
+ static void scr_worker_events_cleanup(void) {
321
+ scr_loop_set_workers(NULL, NULL, NULL, NULL, NULL);
322
+ scr_mailbox_close(scr_worker_events);
323
+ for (ScrWorkerView *view = scr_worker_views; view; view = view->next)
324
+ scr_worker_thread_terminate(view->thread);
325
+ while (scr_worker_views) {
326
+ ScrWorkerView *view = scr_worker_views;
327
+ scr_worker_views = view->next;
328
+ view->next = NULL;
329
+ scr_worker_thread_join(view->thread);
330
+ scr_worker_view_release(view);
331
+ }
332
+ scr_worker_view_release(scr_worker_port);
333
+ scr_worker_port = NULL;
334
+ for (size_t i = 0; i < sizeof scr_worker_methods / sizeof scr_worker_methods[0]; i++) {
335
+ scr_dyn_release(scr_worker_methods[i]);
336
+ scr_worker_methods[i] = NULL;
337
+ }
338
+ scr_mailbox_release(scr_worker_events);
339
+ scr_worker_events = NULL;
340
+ }
341
+
342
+ static bool scr_worker_events_install(void) {
343
+ if (scr_worker_events) return true;
344
+ ScrMailbox *inbox = scr_worker_inbox();
345
+ scr_worker_events = inbox ? scr_mailbox_retain(inbox) : scr_mailbox_new();
346
+ if (!scr_worker_events) return false;
347
+ if (inbox && !scr_worker_port) scr_worker_port = scr_worker_view_new(true);
348
+ static const ScrDynHandleOps worker_ops = {
349
+ .cls = "Worker", .retain = scr_worker_view_retain, .release = scr_worker_view_release,
350
+ .invoke = scr_worker_view_invoke, .get = scr_worker_view_get,
351
+ };
352
+ static const ScrDynHandleOps port_ops = {
353
+ .cls = "MessagePort", .retain = scr_worker_view_retain, .release = scr_worker_view_release,
354
+ .invoke = scr_worker_view_invoke, .get = scr_worker_view_get,
355
+ };
356
+ scr_dyn_handle_install(SCR_DYNH_WORKER, &worker_ops);
357
+ scr_dyn_handle_install(SCR_DYNH_MESSAGE_PORT, &port_ops);
358
+ if (scr_context_atexit(scr_worker_events_cleanup) != 0) scr_trap("scriptc: out of memory\n");
359
+ scr_loop_set_workers(scr_workers_pending, scr_worker_events_ready, scr_worker_dispatch,
360
+ scr_worker_events_pollfd, scr_worker_events_wait);
361
+ return true;
362
+ }
363
+
364
+ ScrDyn *scr_worker_parent_port(void) {
365
+ if (scr_context_is_main()) return scr_dyn_new_null();
366
+ if (!scr_worker_events_install()) return NULL;
367
+ if (!scr_worker_port) scr_worker_port = scr_worker_view_new(true);
368
+ return scr_dyn_new_handle(scr_worker_port, SCR_DYNH_MESSAGE_PORT);
369
+ }
370
+
371
+ static ScrArr *scr_worker_arguments(ScrStr *filename, ScrDyn *argv) {
372
+ if (argv->kind == SCR_DYN_TYPED_REF) {
373
+ ScrDyn *view = scr_dyn_typed_ref_materialize(argv);
374
+ ScrArr *result = !view || scr_exc_pending() ? NULL : scr_worker_arguments(filename, view);
375
+ scr_dyn_release(view);
376
+ return result;
377
+ }
378
+ if (argv->kind != SCR_DYN_UNDEF && argv->kind != SCR_DYN_ARR) {
379
+ scr_dyn_arg_type_fail("options.argv", "an instance of Array", argv);
380
+ return NULL;
381
+ }
382
+ ScrArr *arguments = scr_arr_new(SCR_ELEM_STR, 0);
383
+ scr_arr_push_ref(arguments, scr_str_retain(filename));
384
+ if (argv->kind == SCR_DYN_ARR) {
385
+ for (size_t i = 0; i < argv->v.arr.len; i++) {
386
+ ScrDyn *value = scr_dyn_arr_at(argv, (double)i);
387
+ ScrStr *text = scr_dyn_to_string(value, NULL);
388
+ scr_dyn_release(value);
389
+ if (!text || scr_exc_pending()) {
390
+ scr_str_release(text);
391
+ scr_arr_release(arguments);
392
+ return NULL;
393
+ }
394
+ if (memchr(text->data, 0, text->len)) {
395
+ scr_str_release(text);
396
+ scr_arr_release(arguments);
397
+ scr_worker_refusal("Worker argv strings containing null bytes are not supported yet");
398
+ return NULL;
399
+ }
400
+ scr_arr_push_ref(arguments, text);
401
+ }
402
+ }
403
+ return arguments;
404
+ }
405
+
406
+ static ScrDyn *scr_worker_new_options(double root, ScrStr *filename, ScrDyn *options) {
407
+ if (!scr_worker_events_install()) return NULL;
408
+ ScrDyn *data = scr_dyn_undefined();
409
+ ScrDyn *argv = scr_dyn_undefined();
410
+ if (options->kind != SCR_DYN_UNDEF) {
411
+ if (options->kind != SCR_DYN_OBJ) {
412
+ scr_dyn_arg_type_fail("options", "object", options);
413
+ return NULL;
414
+ }
415
+ for (size_t i = 0; i < options->v.obj.len; i++) {
416
+ const ScrDynEntry *entry = &options->v.obj.entries[i];
417
+ if (entry->accessor) return scr_worker_refusal("Worker option accessors are not supported yet");
418
+ if (entry->key_len == 10 && !memcmp(entry->key, "workerData", 10)) data = entry->value;
419
+ else if (entry->key_len == 4 && !memcmp(entry->key, "argv", 4)) argv = entry->value;
420
+ else return scr_worker_refusal("This Worker constructor option is not supported yet");
421
+ }
422
+ }
423
+ ScrArr *arguments = scr_worker_arguments(filename, argv);
424
+ if (!arguments) return NULL;
425
+ ScrMessage *wire = scr_message_encode(data);
426
+ if (!wire) { scr_arr_release(arguments); return NULL; }
427
+ ScrWorkerThread *thread = scr_worker_thread_start(sc_worker_entry, (uint32_t)root, wire, scr_worker_events, arguments);
428
+ scr_arr_release(arguments);
429
+ if (!thread) return NULL;
430
+ ScrWorkerView *view = scr_worker_view_new(false);
431
+ view->thread = thread;
432
+ view->next = scr_worker_views;
433
+ scr_worker_views = view;
434
+ return scr_dyn_new_handle(view, SCR_DYNH_WORKER);
435
+ }
436
+
437
+ ScrDyn *scr_worker_new(double root, ScrStr *filename, ScrDyn *options) {
438
+ ScrDyn *view = options->kind == SCR_DYN_TYPED_REF ? scr_dyn_typed_ref_materialize(options) : NULL;
439
+ ScrDyn *result = scr_exc_pending() ? NULL : scr_worker_new_options(root, filename, view ? view : options);
440
+ scr_dyn_release(view);
441
+ return result;
442
+ }
443
+ #endif
@@ -23,6 +23,7 @@ static void scr_zlib_oom(void) {
23
23
  }
24
24
 
25
25
  ScrBytes *scr_zlib_deflate(const ScrBytes *data) {
26
+ SCR_BYTES_SNAPSHOT(data);
26
27
  uLong srcLen = (uLong)data->len;
27
28
  uLong cap = compressBound(srcLen);
28
29
  uint8_t *buf = malloc(cap ? cap : 1);
@@ -37,6 +38,7 @@ ScrBytes *scr_zlib_deflate(const ScrBytes *data) {
37
38
  }
38
39
 
39
40
  ScrBytes *scr_zlib_inflate(const ScrBytes *data) {
41
+ SCR_BYTES_SNAPSHOT(data);
40
42
  z_stream zs;
41
43
  memset(&zs, 0, sizeof zs);
42
44
  if (inflateInit(&zs) != Z_OK) scr_zlib_oom();
@@ -100,6 +102,7 @@ static int scr_zlib_window_bits(int mode, bool inflating) {
100
102
  }
101
103
 
102
104
  ScrBytes *scr_zlib_deflate_mode(const ScrBytes *data, double mode, double level) {
105
+ SCR_BYTES_SNAPSHOT(data);
103
106
  z_stream zs;
104
107
  memset(&zs, 0, sizeof zs);
105
108
  int lvl = (int)level;
@@ -126,6 +129,7 @@ ScrBytes *scr_zlib_deflate_mode(const ScrBytes *data, double mode, double level)
126
129
  }
127
130
 
128
131
  ScrBytes *scr_zlib_inflate_mode(const ScrBytes *data, double mode) {
132
+ SCR_BYTES_SNAPSHOT(data);
129
133
  z_stream zs;
130
134
  memset(&zs, 0, sizeof zs);
131
135
  if (inflateInit2(&zs, scr_zlib_window_bits((int)mode, true)) != Z_OK) scr_zlib_oom();
@@ -177,6 +181,7 @@ ScrBytes *scr_zlib_inflate_mode(const ScrBytes *data, double mode) {
177
181
  }
178
182
 
179
183
  double scr_zlib_crc32(const ScrBytes *data, double value) {
184
+ SCR_BYTES_SNAPSHOT(data);
180
185
  char recv[48], msg[160];
181
186
  scr_num_received(value, recv);
182
187
  if (!(isfinite(value) && trunc(value) == value)) {
@@ -321,6 +326,7 @@ static void scr_zlib_async_destroy(void *payload) {
321
326
 
322
327
  void scr_zlib_codec_async(const ScrBytes *data, double mode, bool compressing,
323
328
  ScrClosure *cb, ScrZlibBytesFn fn) {
329
+ SCR_BYTES_SNAPSHOT(data);
324
330
  ScrZlibAsyncOp *op = calloc(1, sizeof *op);
325
331
  if (!op) scr_zlib_oom();
326
332
  op->data = malloc(data->len ? data->len : 1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scriptc/cli-darwin-arm64",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Native scriptc compiler for darwin-arm64",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://scriptc.dev",