@scriptc/cli-darwin-x64 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.
- package/dist/THIRD_PARTY_NOTICES +1 -1
- package/dist/bin/scriptc +0 -0
- package/dist/bin/scriptc.json +1 -1
- package/dist/lib/declarations/scriptc-node-fallback.d.ts +972 -245
- package/dist/lib/declarations/scriptc-overrides.d.ts +5 -1
- package/dist/lib/declarations/scriptc.d.ts +22 -2
- package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
- package/dist/lib/llvm/package.json +1 -1
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/default-workers/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/workers/scr_mailbox.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/workers/scr_message.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/workers/scr_worker.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/dev/runtime/workers/scr_worker_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/default-workers/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/workers/scr_mailbox.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/workers/scr_message.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/workers/scr_worker.o +0 -0
- package/dist/lib/runtime-darwin-x64/artifacts/release/runtime/workers/scr_worker_events.o +0 -0
- package/dist/lib/runtime-darwin-x64/package.json +1 -1
- package/dist/lib/runtime-darwin-x64/runtime-pack.json +3318 -790
- package/dist/lib/runtime-sources/package.json +1 -1
- package/dist/lib/runtime-sources/src/scr_array.c +479 -46
- package/dist/lib/runtime-sources/src/scr_assert.c +3 -3
- package/dist/lib/runtime-sources/src/scr_async.c +401 -71
- package/dist/lib/runtime-sources/src/scr_async.test.ts +16 -6
- package/dist/lib/runtime-sources/src/scr_async_dyn.c +30 -30
- package/dist/lib/runtime-sources/src/scr_bytes.c +487 -221
- package/dist/lib/runtime-sources/src/scr_bytes.test.c +85 -0
- package/dist/lib/runtime-sources/src/scr_bytes_io.c +45 -64
- package/dist/lib/runtime-sources/src/scr_child.c +48 -30
- package/dist/lib/runtime-sources/src/scr_closure.c +21 -11
- package/dist/lib/runtime-sources/src/scr_console.c +27 -5
- package/dist/lib/runtime-sources/src/scr_context.c +167 -0
- package/dist/lib/runtime-sources/src/scr_context.test.c +118 -0
- package/dist/lib/runtime-sources/src/scr_context.test.ts +47 -0
- package/dist/lib/runtime-sources/src/scr_copying.c +13 -2
- package/dist/lib/runtime-sources/src/scr_cycle.c +112 -12
- package/dist/lib/runtime-sources/src/scr_dc.c +8 -8
- package/dist/lib/runtime-sources/src/scr_dgram.c +10 -7
- package/dist/lib/runtime-sources/src/scr_error.c +26 -14
- package/dist/lib/runtime-sources/src/scr_events.c +45 -31
- package/dist/lib/runtime-sources/src/scr_events_emitter.c +34 -1
- package/dist/lib/runtime-sources/src/scr_exception.c +26 -7
- package/dist/lib/runtime-sources/src/scr_fetch.c +23 -20
- package/dist/lib/runtime-sources/src/scr_fetch_curl.c +1 -1
- package/dist/lib/runtime-sources/src/scr_ffi.c +3 -3
- package/dist/lib/runtime-sources/src/scr_file_handle.c +1 -0
- package/dist/lib/runtime-sources/src/scr_http.c +20 -16
- package/dist/lib/runtime-sources/src/scr_http2.c +10 -8
- package/dist/lib/runtime-sources/src/scr_inspect.c +1 -0
- package/dist/lib/runtime-sources/src/scr_island.c +1 -1
- package/dist/lib/runtime-sources/src/scr_json.c +652 -189
- package/dist/lib/runtime-sources/src/scr_json.test.c +339 -1
- package/dist/lib/runtime-sources/src/scr_json.test.ts +59 -25
- package/dist/lib/runtime-sources/src/scr_key.h +92 -0
- package/dist/lib/runtime-sources/src/scr_lib.c +256 -136
- package/dist/lib/runtime-sources/src/scr_mailbox.c +233 -0
- package/dist/lib/runtime-sources/src/scr_mailbox.h +28 -0
- package/dist/lib/runtime-sources/src/scr_mailbox.test.c +86 -0
- package/dist/lib/runtime-sources/src/scr_mailbox.test.ts +46 -0
- package/dist/lib/runtime-sources/src/scr_map.c +240 -107
- package/dist/lib/runtime-sources/src/scr_message.c +443 -0
- package/dist/lib/runtime-sources/src/scr_message.h +14 -0
- package/dist/lib/runtime-sources/src/scr_message.test.c +152 -0
- package/dist/lib/runtime-sources/src/scr_message.test.ts +44 -0
- package/dist/lib/runtime-sources/src/scr_net.c +14 -12
- package/dist/lib/runtime-sources/src/scr_number.c +36 -4
- package/dist/lib/runtime-sources/src/scr_numeric.h +25 -0
- package/dist/lib/runtime-sources/src/scr_numeric.test.c +37 -0
- package/dist/lib/runtime-sources/src/scr_numeric.test.ts +33 -0
- package/dist/lib/runtime-sources/src/scr_object.c +9 -4
- package/dist/lib/runtime-sources/src/scr_path.c +1 -1
- package/dist/lib/runtime-sources/src/scr_readline.c +8 -8
- package/dist/lib/runtime-sources/src/scr_regex.c +351 -167
- package/dist/lib/runtime-sources/src/scr_runtime.h +207 -34
- package/dist/lib/runtime-sources/src/scr_shared.c +280 -0
- package/dist/lib/runtime-sources/src/scr_shared.test.c +113 -0
- package/dist/lib/runtime-sources/src/scr_shared.test.ts +45 -0
- package/dist/lib/runtime-sources/src/scr_stream.c +9 -9
- package/dist/lib/runtime-sources/src/scr_string.c +365 -141
- package/dist/lib/runtime-sources/src/scr_test.c +8 -8
- package/dist/lib/runtime-sources/src/scr_tls.c +12 -12
- package/dist/lib/runtime-sources/src/scr_tls_ca.c +34 -12
- package/dist/lib/runtime-sources/src/scr_union.c +10 -5
- package/dist/lib/runtime-sources/src/scr_util_compare.c +1 -0
- package/dist/lib/runtime-sources/src/scr_util_style.c +11 -11
- package/dist/lib/runtime-sources/src/scr_watch.c +16 -6
- package/dist/lib/runtime-sources/src/scr_worker.c +232 -0
- package/dist/lib/runtime-sources/src/scr_worker.h +42 -0
- package/dist/lib/runtime-sources/src/scr_worker.test.c +115 -0
- package/dist/lib/runtime-sources/src/scr_worker.test.ts +49 -0
- package/dist/lib/runtime-sources/src/scr_worker_events.c +443 -0
- package/dist/lib/runtime-sources/src/scr_zlib.c +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#include "scr_runtime.h"
|
|
2
|
+
#include <assert.h>
|
|
3
|
+
#include <math.h>
|
|
4
|
+
#include <string.h>
|
|
5
|
+
|
|
6
|
+
long scr_bytes_live_count(void);
|
|
7
|
+
|
|
8
|
+
/* Foreign wrappers may alias without a shared owner and may be unaligned. */
|
|
9
|
+
static ScrBytes *external(uint8_t *data, ScrBytesElem elem, size_t count) {
|
|
10
|
+
ScrBytes *view = scr_bytes_from_external(data, count * scr_bytes_elem_size(elem));
|
|
11
|
+
view->elem = elem;
|
|
12
|
+
view->len = count;
|
|
13
|
+
return view;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static void external_set(void) {
|
|
17
|
+
const size_t starts[] = {1, 9, 41, 3001};
|
|
18
|
+
uint8_t storage[6000], expected[6000];
|
|
19
|
+
for (ScrBytesElem from = SCR_BYTES_U8; from <= SCR_BYTES_U8C; from++) {
|
|
20
|
+
for (ScrBytesElem to = SCR_BYTES_U8; to <= SCR_BYTES_U8C; to++) {
|
|
21
|
+
for (size_t j = 0; j < sizeof starts / sizeof starts[0]; j++) {
|
|
22
|
+
memset(storage, 0x5a, sizeof storage);
|
|
23
|
+
ScrBytes *src = external(storage + 9, from, 259);
|
|
24
|
+
ScrBytes *dst = external(storage + starts[j], to, 263);
|
|
25
|
+
for (size_t i = 0; i < src->len; i++) scr_bytes_set(src, i, (double)i * 3.5 - 257);
|
|
26
|
+
memcpy(expected, storage, sizeof storage);
|
|
27
|
+
ScrBytes *want = external(expected + starts[j], to, 263);
|
|
28
|
+
for (size_t i = 0; i < src->len; i++) scr_bytes_set(want, i + 2, scr_bytes_get(src, i));
|
|
29
|
+
scr_bytes_set_from(dst, src, 2);
|
|
30
|
+
assert(!scr_exc_pending());
|
|
31
|
+
assert(memcmp(storage, expected, sizeof storage) == 0);
|
|
32
|
+
scr_bytes_release(want);
|
|
33
|
+
scr_bytes_release(dst);
|
|
34
|
+
scr_bytes_release(src);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static void copied_storage(void) {
|
|
41
|
+
/* Same-kind copies preserve NaN payloads, signed zero and ownership. */
|
|
42
|
+
const uint64_t bits[] = {UINT64_C(0x7ff8000000000042), UINT64_C(0x8000000000000000),
|
|
43
|
+
UINT64_C(0xfff0000000000000)};
|
|
44
|
+
ScrBytes *src = scr_bytes_new(SCR_BYTES_F64, 3);
|
|
45
|
+
memcpy(src->data, bits, sizeof bits);
|
|
46
|
+
ScrBytes *copy = scr_bytes_convert(SCR_BYTES_F64, src);
|
|
47
|
+
ScrBytes *slice = scr_bytes_slice(src, 0, 3);
|
|
48
|
+
assert(copy->data != src->data && slice->data != src->data);
|
|
49
|
+
assert(memcmp(copy->data, bits, sizeof bits) == 0);
|
|
50
|
+
assert(memcmp(slice->data, bits, sizeof bits) == 0);
|
|
51
|
+
ScrBytes *view = scr_bytes_subarray(copy, 1, 3);
|
|
52
|
+
scr_bytes_release(copy);
|
|
53
|
+
scr_bytes_release(src);
|
|
54
|
+
assert(memcmp(view->data, bits + 1, sizeof bits - sizeof bits[0]) == 0);
|
|
55
|
+
scr_bytes_release(view);
|
|
56
|
+
scr_bytes_release(slice);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static void filled_storage(void) {
|
|
60
|
+
uint8_t storage[2200], expected[2200];
|
|
61
|
+
const double values[] = {-0.0, -1.5, 2.5, 255.5, 4294967297.0, NAN, INFINITY};
|
|
62
|
+
for (ScrBytesElem elem = SCR_BYTES_U8; elem <= SCR_BYTES_U8C; elem++) {
|
|
63
|
+
for (size_t j = 0; j < sizeof values / sizeof values[0]; j++) {
|
|
64
|
+
memset(storage, 0xa5, sizeof storage);
|
|
65
|
+
memcpy(expected, storage, sizeof storage);
|
|
66
|
+
ScrBytes *dst = external(storage + 1, elem, 263);
|
|
67
|
+
ScrBytes *want = external(expected + 1, elem, 263);
|
|
68
|
+
for (size_t i = 2; i < 261; i++) scr_bytes_set(want, i, values[j]);
|
|
69
|
+
ScrBytes *result = scr_bytes_fill_elem(dst, values[j], 2, 261);
|
|
70
|
+
assert(result == dst && dst->rc == 2);
|
|
71
|
+
assert(memcmp(storage, expected, sizeof storage) == 0);
|
|
72
|
+
scr_bytes_release(result);
|
|
73
|
+
scr_bytes_release(dst);
|
|
74
|
+
scr_bytes_release(want);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
void scr_bytes_test_bulk_storage(void) {
|
|
80
|
+
long before = scr_bytes_live_count();
|
|
81
|
+
external_set();
|
|
82
|
+
copied_storage();
|
|
83
|
+
filled_storage();
|
|
84
|
+
assert(scr_bytes_live_count() == before);
|
|
85
|
+
}
|
|
@@ -35,46 +35,44 @@ static void scr_bytes_io_oom(void) {
|
|
|
35
35
|
scr_trap("scriptc: out of memory\n");
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
static bool scr_fs_read_encoding_valid(ScrStr *encoding) {
|
|
39
|
+
if (encoding->len == 0 || scr_bytes_is_encoding(encoding)) return true;
|
|
40
|
+
ScrDyn *value = scr_dyn_new_str(encoding);
|
|
41
|
+
scr_dyn_arg_value_fail("encoding", "is invalid encoding", value);
|
|
42
|
+
scr_dyn_release(value);
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
39
45
|
|
|
40
|
-
ScrBytes *
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
for (;;) {
|
|
50
|
-
if (cap - len < 2048) {
|
|
51
|
-
cap *= 2;
|
|
52
|
-
uint8_t *grown = realloc(buf, cap);
|
|
53
|
-
if (!grown) scr_bytes_io_oom();
|
|
54
|
-
buf = grown;
|
|
55
|
-
}
|
|
56
|
-
size_t n = fread(buf + len, 1, cap - len, f);
|
|
57
|
-
len += n;
|
|
58
|
-
if (n == 0) break;
|
|
59
|
-
}
|
|
60
|
-
if (ferror(f)) {
|
|
61
|
-
int e = errno;
|
|
62
|
-
fclose(f);
|
|
63
|
-
free(buf);
|
|
64
|
-
scr_fs_throw(e, "read", path);
|
|
65
|
-
return NULL;
|
|
46
|
+
static ScrStr *scr_fs_decode_read(ScrBytes *bytes, ScrStr *encoding) {
|
|
47
|
+
if (!bytes) return NULL;
|
|
48
|
+
ScrStr *text;
|
|
49
|
+
if (encoding->len == 0) {
|
|
50
|
+
ScrStr *utf8 = scr_str_new("utf8", 4);
|
|
51
|
+
text = scr_bytes_to_str(bytes, utf8);
|
|
52
|
+
scr_str_release(utf8);
|
|
53
|
+
} else {
|
|
54
|
+
text = scr_bytes_to_str_checked(bytes, encoding);
|
|
66
55
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
56
|
+
scr_bytes_release(bytes);
|
|
57
|
+
return text;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
ScrStr *scr_fs_read_file_encoded(ScrStr *path, ScrStr *encoding) {
|
|
61
|
+
if (!scr_fs_read_encoding_valid(encoding)) return NULL;
|
|
62
|
+
return scr_fs_decode_read(scr_fs_read_file_bytes(path), encoding);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
ScrStr *scr_fs_read_fd_encoded(double fd, ScrStr *encoding) {
|
|
66
|
+
if (!scr_fs_read_encoding_valid(encoding)) return NULL;
|
|
67
|
+
return scr_fs_decode_read(scr_fs_read_fd_bytes(fd), encoding);
|
|
72
68
|
}
|
|
73
69
|
|
|
70
|
+
/* ── fs (the Buffer forms of scr_lib.c's utf8 pair) ────────────────────── */
|
|
71
|
+
|
|
74
72
|
/* readFileSync's runtime-encoding form (a JS helper's untyped `enc`
|
|
75
73
|
* parameter — test/common fixtures.js): undefined/null answer a Buffer,
|
|
76
|
-
*
|
|
77
|
-
*
|
|
74
|
+
* a supported encoding answers a string, invalid names throw
|
|
75
|
+
* ERR_INVALID_ARG_VALUE before reading, and an
|
|
78
76
|
* options object dispatches on its `encoding` member (Node's form). +1
|
|
79
77
|
* dyn value, or NULL with the exception pending. */
|
|
80
78
|
ScrDyn *scr_fs_read_file_sync_dyn(ScrStr *path, const ScrDyn *enc) {
|
|
@@ -82,7 +80,8 @@ ScrDyn *scr_fs_read_file_sync_dyn(ScrStr *path, const ScrDyn *enc) {
|
|
|
82
80
|
ScrDyn *ev = scr_dyn_obj_get((ScrDyn *)enc, "encoding", 8); /* borrowed */
|
|
83
81
|
return scr_fs_read_file_sync_dyn(path, ev ? ev : scr_dyn_undefined());
|
|
84
82
|
}
|
|
85
|
-
if (enc->kind == SCR_DYN_UNDEF || enc->kind == SCR_DYN_NULL
|
|
83
|
+
if (enc->kind == SCR_DYN_UNDEF || enc->kind == SCR_DYN_NULL ||
|
|
84
|
+
(enc->kind == SCR_DYN_STR && enc->v.str->len == 0)) {
|
|
86
85
|
ScrBytes *b = scr_fs_read_file_bytes(path);
|
|
87
86
|
if (!b) return NULL;
|
|
88
87
|
ScrDyn *d = scr_dyn_new_buffer(b);
|
|
@@ -90,32 +89,11 @@ ScrDyn *scr_fs_read_file_sync_dyn(ScrStr *path, const ScrDyn *enc) {
|
|
|
90
89
|
return d;
|
|
91
90
|
}
|
|
92
91
|
if (enc->kind == SCR_DYN_STR) {
|
|
93
|
-
|
|
94
|
-
if (
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
ScrDyn *d = scr_dyn_new_str(text);
|
|
99
|
-
scr_str_release(text);
|
|
100
|
-
return d;
|
|
101
|
-
}
|
|
102
|
-
static const char *const known[] = { "ascii", "latin1", "binary", "base64",
|
|
103
|
-
"base64url", "hex", "ucs2", "ucs-2", "utf16le", "utf-16le", NULL };
|
|
104
|
-
for (size_t i = 0; known[i]; i++) {
|
|
105
|
-
if (e->len == strlen(known[i]) && memcmp(e->data, known[i], e->len) == 0) {
|
|
106
|
-
char msg[128];
|
|
107
|
-
int n = snprintf(msg, sizeof msg,
|
|
108
|
-
"readFileSync with encoding '%s' is not supported yet (only 'utf8' and Buffer reads here)",
|
|
109
|
-
known[i]);
|
|
110
|
-
scr_throw_error_msg(SCR_ERR_ERROR, msg, (size_t)n);
|
|
111
|
-
return NULL;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
char msg[128];
|
|
115
|
-
int n = snprintf(msg, sizeof msg, "Unknown encoding: %.*s",
|
|
116
|
-
(int)(e->len < 64 ? e->len : 64), e->data);
|
|
117
|
-
scr_throw_error_msg_code(SCR_ERR_TYPE, msg, (size_t)n, "ERR_UNKNOWN_ENCODING");
|
|
118
|
-
return NULL;
|
|
92
|
+
ScrStr *text = scr_fs_read_file_encoded(path, enc->v.str);
|
|
93
|
+
if (!text) return NULL;
|
|
94
|
+
ScrDyn *value = scr_dyn_new_str(text);
|
|
95
|
+
scr_str_release(text);
|
|
96
|
+
return value;
|
|
119
97
|
}
|
|
120
98
|
{
|
|
121
99
|
/* Kind rendering stays local: scr_dyn_specific_type lives in the
|
|
@@ -127,6 +105,7 @@ ScrDyn *scr_fs_read_file_sync_dyn(ScrStr *path, const ScrDyn *enc) {
|
|
|
127
105
|
}
|
|
128
106
|
|
|
129
107
|
static void scr_fs_write_bytes_common(ScrStr *path, const ScrBytes *data, const char *mode) {
|
|
108
|
+
SCR_BYTES_SNAPSHOT(data);
|
|
130
109
|
FILE *f = fopen(path->data, mode);
|
|
131
110
|
if (!f) {
|
|
132
111
|
scr_fs_throw(errno, "open", path);
|
|
@@ -277,7 +256,7 @@ static double scr_fs_cb_open(const ScrStr *path, const ScrDyn *flag, double mode
|
|
|
277
256
|
static ScrStr *scr_fs_cb_path(const ScrDyn *value, const char *name) {
|
|
278
257
|
if (!scr_fs_path_chk(value, name)) return NULL;
|
|
279
258
|
ScrStr *path = value->kind == SCR_DYN_STR ? scr_str_retain(value->v.str)
|
|
280
|
-
:
|
|
259
|
+
: scr_bytes_string(value->v.bytes, 0, value->v.bytes->len);
|
|
281
260
|
if (memchr(path->data, 0, path->len)) {
|
|
282
261
|
scr_fs_invalid_named_path(value, path, name);
|
|
283
262
|
scr_str_release(path);
|
|
@@ -995,11 +974,13 @@ ScrBytes *scr_crypto_random_bytes(double n) {
|
|
|
995
974
|
/* ── process.stdout/stderr.write(buf) ──────────────────────────────────── */
|
|
996
975
|
|
|
997
976
|
bool scr_process_stdout_write_bytes(const ScrBytes *b, const ScrStr *encoding) {
|
|
977
|
+
SCR_BYTES_SNAPSHOT(b);
|
|
998
978
|
(void)encoding;
|
|
999
979
|
return scr_stdio_write(1, b->data, b->len * scr_bytes_elem_size(b->elem));
|
|
1000
980
|
}
|
|
1001
981
|
|
|
1002
982
|
bool scr_process_stderr_write_bytes(const ScrBytes *b, const ScrStr *encoding) {
|
|
983
|
+
SCR_BYTES_SNAPSHOT(b);
|
|
1003
984
|
(void)encoding;
|
|
1004
985
|
return scr_stdio_write(2, b->data, b->len * scr_bytes_elem_size(b->elem));
|
|
1005
986
|
}
|
|
@@ -1322,7 +1303,7 @@ static void scr_fs_exists_fire(ScrClosure *self) {
|
|
|
1322
1303
|
ans = scr_fs_exists(p);
|
|
1323
1304
|
scr_str_release(p);
|
|
1324
1305
|
} else if (scr_dyn_bytes_is(path, SCR_BYTES_U8)) {
|
|
1325
|
-
ScrStr *p =
|
|
1306
|
+
ScrStr *p = scr_bytes_string(path->v.bytes, 0, path->v.bytes->len);
|
|
1326
1307
|
ans = scr_fs_exists(p);
|
|
1327
1308
|
scr_str_release(p);
|
|
1328
1309
|
}
|
|
@@ -1471,7 +1452,7 @@ void scr_fs_lchmod_chk(const ScrDyn *path, const ScrDyn *mode, const ScrDyn *cb,
|
|
|
1471
1452
|
#ifdef __APPLE__
|
|
1472
1453
|
static void scr_fs_lchmod_apply(const ScrDyn *path, const ScrDyn *mode) {
|
|
1473
1454
|
ScrStr *p = path->kind == SCR_DYN_STR ? scr_str_retain(path->v.str)
|
|
1474
|
-
:
|
|
1455
|
+
: scr_bytes_string(path->v.bytes, 0, path->v.bytes->len);
|
|
1475
1456
|
double m = mode->kind == SCR_DYN_NUM ? mode->v.num : (double)strtol(mode->v.str->data, NULL, 8);
|
|
1476
1457
|
if (lchmod(p->data, (mode_t)m) != 0) scr_fs_throw(errno, "lchmod", p);
|
|
1477
1458
|
scr_str_release(p);
|
|
@@ -1261,9 +1261,9 @@ struct ScrChildWriter {
|
|
|
1261
1261
|
struct ScrChildWriter *next; /* the service registry (+1) */
|
|
1262
1262
|
};
|
|
1263
1263
|
|
|
1264
|
-
static ScrChildStream *scr_child_streams = NULL;
|
|
1265
|
-
static size_t scr_child_streams_watching = 0;
|
|
1266
|
-
static ScrChildWriter *scr_child_writers = NULL;
|
|
1264
|
+
static SCR_TL ScrChildStream *scr_child_streams = NULL;
|
|
1265
|
+
static SCR_TL size_t scr_child_streams_watching = 0;
|
|
1266
|
+
static SCR_TL ScrChildWriter *scr_child_writers = NULL;
|
|
1267
1267
|
static bool scr_child_writers_pending(void);
|
|
1268
1268
|
static void scr_child_writers_service(void);
|
|
1269
1269
|
static void scr_child_writer_child_settled(ScrChildWriter *w);
|
|
@@ -1304,14 +1304,14 @@ struct ScrChild {
|
|
|
1304
1304
|
struct ScrChild *next; /* the pending registry */
|
|
1305
1305
|
};
|
|
1306
1306
|
|
|
1307
|
-
static ScrChild *scr_children = NULL;
|
|
1308
|
-
static ScrChild *scr_children_closing = NULL;
|
|
1309
|
-
static size_t scr_children_reffed_n = 0;
|
|
1307
|
+
static SCR_TL ScrChild *scr_children = NULL;
|
|
1308
|
+
static SCR_TL ScrChild *scr_children_closing = NULL;
|
|
1309
|
+
static SCR_TL size_t scr_children_reffed_n = 0;
|
|
1310
1310
|
/* Pending children the handle wait can NOT represent — spawn failures
|
|
1311
1311
|
* awaiting their first-pass settle. While any exist, scr_children_wait
|
|
1312
1312
|
* declines and the loop keeps the ~1ms polling cap (the POSIX arm's
|
|
1313
1313
|
* unwatched fallback, exactly). */
|
|
1314
|
-
static size_t scr_children_unwatched = 0;
|
|
1314
|
+
static SCR_TL size_t scr_children_unwatched = 0;
|
|
1315
1315
|
|
|
1316
1316
|
static void scr_child_drop_terminal_listeners(ScrChild *c) {
|
|
1317
1317
|
scr_child_drop_spawn_listeners(c);
|
|
@@ -1685,7 +1685,7 @@ void scr_child_stream_thunk_str(ScrClosure *cb, ScrStr *chunk) {
|
|
|
1685
1685
|
|
|
1686
1686
|
#define SCR_CHILD_WRITER_HWM 16384
|
|
1687
1687
|
|
|
1688
|
-
static const char *scr_child_writer_err_code = NULL;
|
|
1688
|
+
static SCR_TL const char *scr_child_writer_err_code = NULL;
|
|
1689
1689
|
|
|
1690
1690
|
static void scr_child_writer_drop_zero_listeners(ScrChildWriter *w) {
|
|
1691
1691
|
for (size_t i = 0; i < w->n_drain; i++) scr_closure_release(w->drain_ls[i].cb);
|
|
@@ -1908,6 +1908,7 @@ bool scr_child_writer_write_string(ScrChildWriter *w, const ScrStr *data) {
|
|
|
1908
1908
|
}
|
|
1909
1909
|
|
|
1910
1910
|
bool scr_child_writer_write_bytes(ScrChildWriter *w, const ScrBytes *data) {
|
|
1911
|
+
SCR_BYTES_SNAPSHOT(data);
|
|
1911
1912
|
return scr_child_writer_write(w, data->data, data->len);
|
|
1912
1913
|
}
|
|
1913
1914
|
|
|
@@ -2431,12 +2432,12 @@ void scr_child_err_thunk0(ScrClosure *cb, ScrStr *msg) {
|
|
|
2431
2432
|
((void (*)(ScrClosure *))cb->fn)(cb);
|
|
2432
2433
|
}
|
|
2433
2434
|
|
|
2434
|
-
static const char *scr_child_err_code = NULL;
|
|
2435
|
+
static SCR_TL const char *scr_child_err_code = NULL;
|
|
2435
2436
|
|
|
2436
2437
|
/* The errno name embedded in an errnoException-style message — the
|
|
2437
2438
|
* POSIX arm's parser, shared story (see its comment). */
|
|
2438
2439
|
static const char *scr_err_msg_code(const ScrStr *msg) {
|
|
2439
|
-
static char buf[32];
|
|
2440
|
+
static SCR_TL char buf[32];
|
|
2440
2441
|
const char *sp = strchr((const char *)msg->data, ' ');
|
|
2441
2442
|
if (sp == NULL || sp[1] != 'E') return NULL;
|
|
2442
2443
|
const char *tok = sp + 1;
|
|
@@ -3541,11 +3542,11 @@ struct ScrChildWriter {
|
|
|
3541
3542
|
struct ScrChildWriter *next; /* the service registry (+1) */
|
|
3542
3543
|
};
|
|
3543
3544
|
|
|
3544
|
-
static ScrChildStream *scr_child_streams = NULL;
|
|
3545
|
+
static SCR_TL ScrChildStream *scr_child_streams = NULL;
|
|
3545
3546
|
/* Streams with a live consumer (data listener, not yet EOF): the loop's
|
|
3546
3547
|
* keep-alive and service predicate. */
|
|
3547
|
-
static size_t scr_child_streams_watching = 0;
|
|
3548
|
-
static ScrChildWriter *scr_child_writers = NULL;
|
|
3548
|
+
static SCR_TL size_t scr_child_streams_watching = 0;
|
|
3549
|
+
static SCR_TL ScrChildWriter *scr_child_writers = NULL;
|
|
3549
3550
|
static bool scr_child_writers_pending(void);
|
|
3550
3551
|
static void scr_child_writers_service(void);
|
|
3551
3552
|
static void scr_child_writer_child_settled(ScrChildWriter *w);
|
|
@@ -3588,18 +3589,18 @@ struct ScrChild {
|
|
|
3588
3589
|
struct ScrChild *next; /* the pending registry */
|
|
3589
3590
|
};
|
|
3590
3591
|
|
|
3591
|
-
static ScrChild *scr_children = NULL; /* unsettled children (registry +1) */
|
|
3592
|
-
static ScrChild *scr_children_closing = NULL; /* exited, waiting for stdio EOF */
|
|
3593
|
-
static size_t scr_children_reffed_n = 0; /* unsettled AND reffed (liveness) */
|
|
3592
|
+
static SCR_TL ScrChild *scr_children = NULL; /* unsettled children (registry +1) */
|
|
3593
|
+
static SCR_TL ScrChild *scr_children_closing = NULL; /* exited, waiting for stdio EOF */
|
|
3594
|
+
static SCR_TL size_t scr_children_reffed_n = 0; /* unsettled AND reffed (liveness) */
|
|
3594
3595
|
|
|
3595
3596
|
/* Children the kqueue can NOT wake the loop for (spawn failures awaiting
|
|
3596
3597
|
* their first-pass settle, exit-filter registration failures, every child
|
|
3597
3598
|
* on a non-kqueue platform): while any exist, scr_children_wait refuses
|
|
3598
3599
|
* and the loop keeps the polling cap for them. */
|
|
3599
|
-
static size_t scr_children_unwatched = 0;
|
|
3600
|
+
static SCR_TL size_t scr_children_unwatched = 0;
|
|
3600
3601
|
|
|
3601
3602
|
#ifdef SCR_HAVE_KQUEUE
|
|
3602
|
-
static int scr_child_kq = -1; /* created with the first spawn; lives forever */
|
|
3603
|
+
static SCR_TL int scr_child_kq = -1; /* created with the first spawn; lives forever */
|
|
3603
3604
|
|
|
3604
3605
|
/* Arms NOTE_EXIT for a freshly spawned pid. False = the child cannot be
|
|
3605
3606
|
* watched (it already exited and EVFILT_PROC refuses zombies — the very
|
|
@@ -3622,7 +3623,7 @@ static void scr_child_unwatch(pid_t pid) { (void)pid; }
|
|
|
3622
3623
|
#endif
|
|
3623
3624
|
|
|
3624
3625
|
#ifdef SCR_CHILD_HAVE_PIDFD
|
|
3625
|
-
static int scr_child_ep = -1; /* created with the first spawn; lives forever */
|
|
3626
|
+
static SCR_TL int scr_child_ep = -1; /* created with the first spawn; lives forever */
|
|
3626
3627
|
|
|
3627
3628
|
/* pid -> pidfd, so the reap can CLOSE the pidfd (it polls readable from
|
|
3628
3629
|
* exit until closed — kqueue's ONESHOT drop has no epoll analogue). A
|
|
@@ -3632,8 +3633,8 @@ typedef struct {
|
|
|
3632
3633
|
int pidfd;
|
|
3633
3634
|
} ScrChildPidfd;
|
|
3634
3635
|
|
|
3635
|
-
static ScrChildPidfd *scr_child_pidfds = NULL;
|
|
3636
|
-
static size_t scr_child_pidfds_n = 0, scr_child_pidfds_cap = 0;
|
|
3636
|
+
static SCR_TL ScrChildPidfd *scr_child_pidfds = NULL;
|
|
3637
|
+
static SCR_TL size_t scr_child_pidfds_n = 0, scr_child_pidfds_cap = 0;
|
|
3637
3638
|
|
|
3638
3639
|
/* Arms an exit wakeup for a freshly spawned pid: pidfd_open registered
|
|
3639
3640
|
* EPOLLIN. False = the child cannot be watched (ENOSYS on pre-5.3
|
|
@@ -4225,7 +4226,7 @@ void scr_child_stream_thunk_str(ScrClosure *cb, ScrStr *chunk) {
|
|
|
4225
4226
|
|
|
4226
4227
|
#define SCR_CHILD_WRITER_HWM 65536
|
|
4227
4228
|
|
|
4228
|
-
static const char *scr_child_writer_err_code = NULL;
|
|
4229
|
+
static SCR_TL const char *scr_child_writer_err_code = NULL;
|
|
4229
4230
|
|
|
4230
4231
|
static void scr_child_writer_drop_zero_listeners(ScrChildWriter *w) {
|
|
4231
4232
|
for (size_t i = 0; i < w->n_drain; i++) scr_closure_release(w->drain_ls[i].cb);
|
|
@@ -4432,6 +4433,7 @@ bool scr_child_writer_write_string(ScrChildWriter *w, const ScrStr *data) {
|
|
|
4432
4433
|
}
|
|
4433
4434
|
|
|
4434
4435
|
bool scr_child_writer_write_bytes(ScrChildWriter *w, const ScrBytes *data) {
|
|
4436
|
+
SCR_BYTES_SNAPSHOT(data);
|
|
4435
4437
|
return scr_child_writer_write(w, data->data, data->len);
|
|
4436
4438
|
}
|
|
4437
4439
|
|
|
@@ -4970,6 +4972,22 @@ void scr_children_teardown(void) {
|
|
|
4970
4972
|
scr_child_drop_listeners(c);
|
|
4971
4973
|
scr_child_release(c);
|
|
4972
4974
|
}
|
|
4975
|
+
#ifdef SCR_WORKERS
|
|
4976
|
+
/* Watchers belong to the script context, which can end long before the
|
|
4977
|
+
* process. Release their OS handles and reusable pid index at loop exit. */
|
|
4978
|
+
#ifdef SCR_HAVE_KQUEUE
|
|
4979
|
+
if (scr_child_kq >= 0) close(scr_child_kq);
|
|
4980
|
+
scr_child_kq = -1;
|
|
4981
|
+
#endif
|
|
4982
|
+
#ifdef SCR_CHILD_HAVE_PIDFD
|
|
4983
|
+
for (size_t i = 0; i < scr_child_pidfds_n; i++) close(scr_child_pidfds[i].pidfd);
|
|
4984
|
+
free(scr_child_pidfds);
|
|
4985
|
+
scr_child_pidfds = NULL;
|
|
4986
|
+
scr_child_pidfds_n = scr_child_pidfds_cap = 0;
|
|
4987
|
+
if (scr_child_ep >= 0) close(scr_child_ep);
|
|
4988
|
+
scr_child_ep = -1;
|
|
4989
|
+
#endif
|
|
4990
|
+
#endif
|
|
4973
4991
|
}
|
|
4974
4992
|
|
|
4975
4993
|
void scr_child_on_exit(ScrChild *c, ScrClosure *cb /*moves*/, ScrChildExitFn fn) {
|
|
@@ -5039,7 +5057,7 @@ void scr_child_err_thunk0(ScrClosure *cb, ScrStr *msg) {
|
|
|
5039
5057
|
* Node's `code` on the constructed error (the thunk signature is shared
|
|
5040
5058
|
* with scr_net.c's error events, which parse theirs out of the message
|
|
5041
5059
|
* below). NULL outside a spawn-failure settle. */
|
|
5042
|
-
static const char *scr_child_err_code = NULL;
|
|
5060
|
+
static SCR_TL const char *scr_child_err_code = NULL;
|
|
5043
5061
|
|
|
5044
5062
|
/* [.code on event errors — net/http/dgram parity with spawn failures]
|
|
5045
5063
|
* The errno name embedded in an errnoException-style message ("connect
|
|
@@ -5054,7 +5072,7 @@ static const char *scr_child_err_code = NULL;
|
|
|
5054
5072
|
* valid until the next call, or NULL for code-less messages ("socket
|
|
5055
5073
|
* hang up" stays undefined — divergence 54's documented bound). */
|
|
5056
5074
|
static const char *scr_err_msg_code(const ScrStr *msg) {
|
|
5057
|
-
static char buf[32];
|
|
5075
|
+
static SCR_TL char buf[32];
|
|
5058
5076
|
const char *sp = strchr((const char *)msg->data, ' ');
|
|
5059
5077
|
if (sp == NULL || sp[1] != 'E') return NULL;
|
|
5060
5078
|
const char *tok = sp + 1;
|
|
@@ -5541,10 +5559,10 @@ struct ScrIpc {
|
|
|
5541
5559
|
struct ScrIpc *next;
|
|
5542
5560
|
};
|
|
5543
5561
|
|
|
5544
|
-
static ScrIpc *scr_ipcs = NULL;
|
|
5545
|
-
static ScrIpc *scr_process_ipc = NULL;
|
|
5546
|
-
static double scr_process_fork_id = -2;
|
|
5547
|
-
static bool scr_ipc_cleanup_registered = false;
|
|
5562
|
+
static SCR_TL ScrIpc *scr_ipcs = NULL;
|
|
5563
|
+
static SCR_TL ScrIpc *scr_process_ipc = NULL;
|
|
5564
|
+
static SCR_TL double scr_process_fork_id = -2;
|
|
5565
|
+
static SCR_TL bool scr_ipc_cleanup_registered = false;
|
|
5548
5566
|
|
|
5549
5567
|
static ScrIpc *scr_ipc_retain(ScrIpc *ipc) {
|
|
5550
5568
|
if (ipc && ipc->rc != SIZE_MAX) ipc->rc++;
|
|
@@ -5633,7 +5651,7 @@ static void scr_ipc_stream_data(ScrClosure *closure, ScrBytes *chunk) {
|
|
|
5633
5651
|
if (!ipc->buffer) scr_trap("out of memory");
|
|
5634
5652
|
ipc->buffer_cap = cap;
|
|
5635
5653
|
}
|
|
5636
|
-
|
|
5654
|
+
scr_bytes_read(chunk, 0, ipc->buffer + ipc->buffer_len, chunk->len);
|
|
5637
5655
|
ipc->buffer_len = need;
|
|
5638
5656
|
size_t consumed = 0;
|
|
5639
5657
|
for (size_t i = 0; i < ipc->buffer_len; i++) {
|
|
@@ -5705,7 +5723,7 @@ static ScrIpc *scr_ipc_new(ScrChildStream *reader, ScrChildWriter *writer) {
|
|
|
5705
5723
|
&scr_ipc_writer_error, false);
|
|
5706
5724
|
if (!scr_ipc_cleanup_registered) {
|
|
5707
5725
|
scr_ipc_cleanup_registered = true;
|
|
5708
|
-
|
|
5726
|
+
scr_atexit(scr_ipc_global_cleanup);
|
|
5709
5727
|
}
|
|
5710
5728
|
return ipc;
|
|
5711
5729
|
}
|
|
@@ -112,15 +112,20 @@ static void scr_box_release_payload(ScrBox *b, void *p) {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
static void scr_box_destroy(void *object) {
|
|
116
|
+
ScrBox *b = object;
|
|
117
|
+
scr_box_release_payload(b, scr_box_ptr(b));
|
|
118
|
+
#ifdef SCR_RC_AUDIT
|
|
119
|
+
scr_live_boxes--;
|
|
120
|
+
#endif
|
|
121
|
+
scr_cyc_free(b);
|
|
122
|
+
}
|
|
123
|
+
|
|
115
124
|
void scr_box_release(ScrBox *b) {
|
|
116
125
|
if (!b || b->rc == SIZE_MAX) return; /* NULL: a switch jumped past the decl */
|
|
117
126
|
if (--b->rc == 0) {
|
|
118
127
|
scr_cyc_on_dead(b);
|
|
119
|
-
|
|
120
|
-
#ifdef SCR_RC_AUDIT
|
|
121
|
-
scr_live_boxes--;
|
|
122
|
-
#endif
|
|
123
|
-
scr_cyc_free(b);
|
|
128
|
+
scr_rc_destroy(b, scr_box_destroy);
|
|
124
129
|
} else {
|
|
125
130
|
scr_cyc_on_release(b); /* possible cycle root; may collect — b is done */
|
|
126
131
|
}
|
|
@@ -193,16 +198,21 @@ ScrClosure *scr_closure_new(void *fn, size_t ncaps) {
|
|
|
193
198
|
return c;
|
|
194
199
|
}
|
|
195
200
|
|
|
201
|
+
static void scr_closure_destroy(void *object) {
|
|
202
|
+
ScrClosure *c = object;
|
|
203
|
+
for (size_t i = 0; i < c->ncaps; i++) scr_box_release(c->caps[i]);
|
|
204
|
+
scr_box_release(c->props); /* NULL-tolerant */
|
|
205
|
+
#ifdef SCR_RC_AUDIT
|
|
206
|
+
scr_live_closures--;
|
|
207
|
+
#endif
|
|
208
|
+
scr_cyc_free(c);
|
|
209
|
+
}
|
|
210
|
+
|
|
196
211
|
void scr_closure_release(ScrClosure *c) {
|
|
197
212
|
if (!c || c->rc == SIZE_MAX) return; /* NULL: an uninitialized `let` local */
|
|
198
213
|
if (--c->rc == 0) {
|
|
199
214
|
scr_cyc_on_dead(c);
|
|
200
|
-
|
|
201
|
-
scr_box_release(c->props); /* NULL-tolerant */
|
|
202
|
-
#ifdef SCR_RC_AUDIT
|
|
203
|
-
scr_live_closures--;
|
|
204
|
-
#endif
|
|
205
|
-
scr_cyc_free(c);
|
|
215
|
+
scr_rc_destroy(c, scr_closure_destroy);
|
|
206
216
|
} else {
|
|
207
217
|
scr_cyc_on_release(c); /* possible cycle root; may collect — c is done */
|
|
208
218
|
}
|
|
@@ -107,9 +107,12 @@ static void scr_enable_utf8_console_output(void) {
|
|
|
107
107
|
}
|
|
108
108
|
#endif
|
|
109
109
|
|
|
110
|
-
void
|
|
110
|
+
void scr_runtime_abi_v7(void) {}
|
|
111
111
|
|
|
112
112
|
void scr_init(void) {
|
|
113
|
+
#ifdef SCR_WORKERS
|
|
114
|
+
if (scr_context_is_main()) {
|
|
115
|
+
#endif
|
|
113
116
|
#ifdef _WIN32
|
|
114
117
|
/* The CRT opens std streams in TEXT mode, which writes \n as \r\n. Node
|
|
115
118
|
* on Windows does NOT translate — console.log emits \n whether stdout is
|
|
@@ -133,16 +136,19 @@ void scr_init(void) {
|
|
|
133
136
|
* stream immediately. */
|
|
134
137
|
static char outbuf[1 << 16];
|
|
135
138
|
setvbuf(stdout, outbuf, _IOFBF, sizeof outbuf);
|
|
139
|
+
#ifdef SCR_WORKERS
|
|
140
|
+
}
|
|
141
|
+
#endif
|
|
136
142
|
/* atexit is LIFO; registration order makes exit run: library cleanup
|
|
137
143
|
* (registered later, in scr_lib_init) → cycle collection → RC audit →
|
|
138
144
|
* flush → Windows console-code-page restore. The final collection frees
|
|
139
145
|
* cycles the program dropped, so the audit (and ASan's leak check) see
|
|
140
146
|
* them as freed, not leaked. */
|
|
141
|
-
|
|
147
|
+
scr_atexit(scr_flush_at_exit);
|
|
142
148
|
#ifdef SCR_RC_AUDIT
|
|
143
|
-
|
|
149
|
+
scr_atexit(scr_rc_audit_at_exit);
|
|
144
150
|
#endif
|
|
145
|
-
|
|
151
|
+
scr_atexit(scr_collect_cycles_at_exit);
|
|
146
152
|
}
|
|
147
153
|
#endif /* !SCR_LIB — a library artifact never touches host stdio modes/buffering and
|
|
148
154
|
* registers no atexit handlers: scr_init and its exit hooks (the
|
|
@@ -154,7 +160,7 @@ void scr_init(void) {
|
|
|
154
160
|
* the stream differs. */
|
|
155
161
|
/* A real definition lets relocatable library links localize this hook;
|
|
156
162
|
* a tentative common symbol stays externally visible on Mach-O. */
|
|
157
|
-
bool (*scr_stdio_write_hook)(int fd, const void *data, size_t len) = NULL;
|
|
163
|
+
SCR_TL bool (*scr_stdio_write_hook)(int fd, const void *data, size_t len) = NULL;
|
|
158
164
|
|
|
159
165
|
static void scr_console_write(FILE *out, size_t n, const ScrLogArg *args) {
|
|
160
166
|
if (scr_stdio_write_hook) {
|
|
@@ -192,6 +198,15 @@ static void scr_console_write(FILE *out, size_t n, const ScrLogArg *args) {
|
|
|
192
198
|
if (scr_exc_pending()) scr_exc_clear();
|
|
193
199
|
return;
|
|
194
200
|
}
|
|
201
|
+
/* Formatting a single line uses several libc calls. Hold the stream lock
|
|
202
|
+
* for that whole chunk so concurrent workers cannot interleave arguments. */
|
|
203
|
+
#ifdef SCR_WORKERS
|
|
204
|
+
#ifdef _WIN32
|
|
205
|
+
_lock_file(out);
|
|
206
|
+
#else
|
|
207
|
+
flockfile(out);
|
|
208
|
+
#endif
|
|
209
|
+
#endif
|
|
195
210
|
char numbuf[32];
|
|
196
211
|
for (size_t i = 0; i < n; i++) {
|
|
197
212
|
if (i > 0) fputc(' ', out);
|
|
@@ -221,6 +236,13 @@ static void scr_console_write(FILE *out, size_t n, const ScrLogArg *args) {
|
|
|
221
236
|
* Keep the C buffer only as a formatter coalescing detail: a caller
|
|
222
237
|
* observing a live child must see this line before the next JS turn. */
|
|
223
238
|
fflush(out);
|
|
239
|
+
#ifdef SCR_WORKERS
|
|
240
|
+
#ifdef _WIN32
|
|
241
|
+
_unlock_file(out);
|
|
242
|
+
#else
|
|
243
|
+
funlockfile(out);
|
|
244
|
+
#endif
|
|
245
|
+
#endif
|
|
224
246
|
}
|
|
225
247
|
|
|
226
248
|
void scr_console_log(size_t n, const ScrLogArg *args) {
|