@scriptc/cli-darwin-arm64 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +57 -30
- package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
- package/dist/lib/llvm/package.json +1 -1
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default-workers/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_mailbox.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_message.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/workers/scr_worker_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_async_dyn.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bigint_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_console_native.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_copying.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_crypto_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dc.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_dyn_invoke.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_fetch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_ffi_queue.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_grapheme.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_http2.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_inspect.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_epoll.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_kqueue.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_loop_wsapoll.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_net.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_path.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_qs.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_test.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_tls_ca.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_watch.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default-workers/scr_zlib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_child.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_closure.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_console.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_context.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_dgram.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_error.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events_emitter.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_number.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_object.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_readline.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_shared.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_stream.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_tls.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_union.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic-text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/text-decoder-legacy-workers/scr_bytes.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_mailbox.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_message.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/workers/scr_worker_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/package.json +1 -1
- package/dist/lib/runtime-darwin-arm64/runtime-pack.json +3300 -772
- package/dist/lib/runtime-sources/package.json +1 -1
- package/dist/lib/runtime-sources/src/scr_array.c +212 -40
- 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_dyn.c +30 -30
- package/dist/lib/runtime-sources/src/scr_bytes.c +50 -5
- package/dist/lib/runtime-sources/src/scr_bytes_io.c +47 -32
- 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 +1 -0
- 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 +179 -45
- package/dist/lib/runtime-sources/src/scr_json.test.c +16 -0
- package/dist/lib/runtime-sources/src/scr_json.test.ts +1 -0
- package/dist/lib/runtime-sources/src/scr_key.h +28 -4
- package/dist/lib/runtime-sources/src/scr_lib.c +124 -63
- 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 +195 -46
- 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 +34 -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 +113 -0
- package/dist/lib/runtime-sources/src/scr_runtime.h +170 -28
- 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 +224 -113
- 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
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
#include "scr_runtime.h"
|
|
18
18
|
|
|
19
19
|
#include <ctype.h>
|
|
20
|
+
#ifdef SCR_WORKERS
|
|
21
|
+
#include <stdatomic.h>
|
|
22
|
+
static atomic_uint scr_process_mask;
|
|
23
|
+
static void scr_process_mask_init(void);
|
|
24
|
+
#endif
|
|
20
25
|
#include <dirent.h>
|
|
21
26
|
#include <errno.h>
|
|
22
27
|
#include <fcntl.h>
|
|
@@ -253,6 +258,10 @@ static bool scr_lib_same_executable_arg(const char *a, const char *b) {
|
|
|
253
258
|
* Load the documented OS parser from System32 without adding an executable-
|
|
254
259
|
* only shell dependency to the embedding runtime's link contract. */
|
|
255
260
|
static void scr_lib_prepare_utf8_argv(void) {
|
|
261
|
+
#ifdef SCR_WORKERS
|
|
262
|
+
/* Worker arguments were copied as UTF-8 before their native thread began. */
|
|
263
|
+
if (!scr_context_is_main()) return;
|
|
264
|
+
#endif
|
|
256
265
|
if (scr_lib_argv == NULL || scr_lib_argv_utf8 != NULL) return;
|
|
257
266
|
HMODULE shell = LoadLibraryExW(L"shell32.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
|
|
258
267
|
if (shell == NULL) scr_trap("could not load Windows command-line parser");
|
|
@@ -325,6 +334,9 @@ bool scr_lib_should_collapse_reexec_arg(ScrStr *cmd, ScrArr *args) {
|
|
|
325
334
|
* the archive's objects free of any atexit reference — the K8 ambient
|
|
326
335
|
* audit's bar). */
|
|
327
336
|
void scr_lib_init(int argc, char **argv) {
|
|
337
|
+
#ifdef SCR_WORKERS
|
|
338
|
+
if (scr_context_is_main()) scr_process_mask_init();
|
|
339
|
+
#endif
|
|
328
340
|
scr_lib_argc = argc;
|
|
329
341
|
scr_lib_argv = argv;
|
|
330
342
|
if (argc >= 2 && strncmp(argv[1], "--scriptc-fork=", 15) == 0) {
|
|
@@ -345,7 +357,7 @@ void scr_lib_init(int argc, char **argv) {
|
|
|
345
357
|
scr_lib_argv = scr_lib_argv_owned;
|
|
346
358
|
}
|
|
347
359
|
}
|
|
348
|
-
|
|
360
|
+
scr_atexit(scr_lib_cleanup);
|
|
349
361
|
}
|
|
350
362
|
#endif /* !SCR_LIB */
|
|
351
363
|
|
|
@@ -564,7 +576,7 @@ ScrStr *scr_process_platform(void) {
|
|
|
564
576
|
scr_platform_str = scr_str_new("unknown", 7);
|
|
565
577
|
#endif
|
|
566
578
|
#ifndef SCR_LIB
|
|
567
|
-
|
|
579
|
+
scr_atexit(scr_process_platform_cleanup);
|
|
568
580
|
#endif
|
|
569
581
|
}
|
|
570
582
|
return scr_str_retain(scr_platform_str);
|
|
@@ -586,7 +598,7 @@ ScrStr *scr_process_arch(void) {
|
|
|
586
598
|
scr_arch_str = scr_str_new("unknown", 7);
|
|
587
599
|
#endif
|
|
588
600
|
#ifndef SCR_LIB
|
|
589
|
-
|
|
601
|
+
scr_atexit(scr_process_arch_cleanup);
|
|
590
602
|
#endif
|
|
591
603
|
}
|
|
592
604
|
return scr_str_retain(scr_arch_str);
|
|
@@ -602,7 +614,7 @@ ScrStr *scr_process_versions_node(void) {
|
|
|
602
614
|
scr_versions_node_str =
|
|
603
615
|
scr_str_new(SCR_NODE_COMPAT_VERSION, sizeof(SCR_NODE_COMPAT_VERSION) - 1);
|
|
604
616
|
#ifndef SCR_LIB
|
|
605
|
-
|
|
617
|
+
scr_atexit(scr_process_versions_node_cleanup);
|
|
606
618
|
#endif
|
|
607
619
|
}
|
|
608
620
|
return scr_str_retain(scr_versions_node_str);
|
|
@@ -621,7 +633,7 @@ ScrStr *scr_process_versions_openssl(void) {
|
|
|
621
633
|
scr_versions_openssl_str =
|
|
622
634
|
scr_str_new(SCR_OPENSSL_COMPAT_VERSION, sizeof(SCR_OPENSSL_COMPAT_VERSION) - 1);
|
|
623
635
|
#ifndef SCR_LIB
|
|
624
|
-
|
|
636
|
+
scr_atexit(scr_process_versions_openssl_cleanup);
|
|
625
637
|
#endif
|
|
626
638
|
}
|
|
627
639
|
return scr_str_retain(scr_versions_openssl_str);
|
|
@@ -684,13 +696,19 @@ ScrStr *scr_process_exec_path(void) {
|
|
|
684
696
|
#endif
|
|
685
697
|
scr_exec_path_str = scr_str_new(use, strlen(use));
|
|
686
698
|
#ifndef SCR_LIB
|
|
687
|
-
|
|
699
|
+
scr_atexit(scr_process_exec_path_cleanup);
|
|
688
700
|
#endif
|
|
689
701
|
}
|
|
690
702
|
return scr_str_retain(scr_exec_path_str);
|
|
691
703
|
}
|
|
692
704
|
|
|
693
705
|
ScrStr *scr_env_get(const ScrStr *name) {
|
|
706
|
+
#ifdef SCR_WORKERS
|
|
707
|
+
if (!scr_context_is_main()) {
|
|
708
|
+
const char *value = scr_context_getenv(name->data);
|
|
709
|
+
return value ? scr_str_new(value, strlen(value)) : NULL;
|
|
710
|
+
}
|
|
711
|
+
#endif
|
|
694
712
|
/* ScrStr data is NUL-terminated (like the fs paths below). A fresh copy
|
|
695
713
|
* per read: getenv's buffer is not ours to alias, and Node's process.env
|
|
696
714
|
* reads snapshot the value too. Absent → NULL (the compiler's undefined
|
|
@@ -710,7 +728,7 @@ ScrStr *scr_env_get(const ScrStr *name) {
|
|
|
710
728
|
free(buf);
|
|
711
729
|
return s;
|
|
712
730
|
#else
|
|
713
|
-
const char *v =
|
|
731
|
+
const char *v = scr_getenv(name->data);
|
|
714
732
|
return v ? scr_str_new(v, strlen(v)) : NULL;
|
|
715
733
|
#endif
|
|
716
734
|
}
|
|
@@ -719,6 +737,9 @@ ScrStr *scr_env_get(const ScrStr *name) {
|
|
|
719
737
|
* children (posix_spawn inherits environ) observe the write, like Node.
|
|
720
738
|
* Both args borrowed (NUL-terminated ScrStr data); setenv copies. */
|
|
721
739
|
void scr_env_set(const ScrStr *name, const ScrStr *value) {
|
|
740
|
+
#ifdef SCR_WORKERS
|
|
741
|
+
if (scr_context_env_set(name->data, value->data)) return;
|
|
742
|
+
#endif
|
|
722
743
|
#ifdef _WIN32
|
|
723
744
|
/* The WIN32 environment (see scr_env_get): an empty value stays a
|
|
724
745
|
* present-but-empty variable, and children inherit the write. */
|
|
@@ -731,6 +752,9 @@ void scr_env_set(const ScrStr *name, const ScrStr *value) {
|
|
|
731
752
|
/* `delete process.env.NAME` — unsetenv(3): later reads answer absent and
|
|
732
753
|
* spawned children lose the variable, like Node. Borrowed. */
|
|
733
754
|
void scr_env_unset(const ScrStr *name) {
|
|
755
|
+
#ifdef SCR_WORKERS
|
|
756
|
+
if (scr_context_env_set(name->data, NULL)) return;
|
|
757
|
+
#endif
|
|
734
758
|
#ifdef _WIN32
|
|
735
759
|
SetEnvironmentVariableA(name->data, NULL);
|
|
736
760
|
#else
|
|
@@ -886,6 +910,7 @@ void scr_fs_invalid_named_path(const ScrDyn *value, const ScrStr *path, const ch
|
|
|
886
910
|
scr_jb_puts(&b, "' must be a string, Uint8Array, or URL without null bytes. Received ");
|
|
887
911
|
if (value->kind == SCR_DYN_BYTES) {
|
|
888
912
|
const ScrBytes *bytes = value->v.bytes;
|
|
913
|
+
SCR_SHARED_GUARD(bytes, NULL);
|
|
889
914
|
if (value->buffer) {
|
|
890
915
|
scr_jb_puts(&b, "<Buffer");
|
|
891
916
|
for (size_t i = 0; i < bytes->len; i++) {
|
|
@@ -936,7 +961,7 @@ void scr_process_load_env_file(const ScrDyn *value) {
|
|
|
936
961
|
if (value->kind == SCR_DYN_UNDEF || value->kind == SCR_DYN_NULL) path = scr_str_new("./.env", 6);
|
|
937
962
|
else if (value->kind == SCR_DYN_STR) path = scr_str_retain(value->v.str);
|
|
938
963
|
else if (scr_dyn_native_url_is(value)) path = scr_url_to_path(value->v.handle.ptr);
|
|
939
|
-
else if (scr_dyn_bytes_is(value, SCR_BYTES_U8)) path =
|
|
964
|
+
else if (scr_dyn_bytes_is(value, SCR_BYTES_U8)) path = scr_bytes_string(value->v.bytes, 0, value->v.bytes->len);
|
|
940
965
|
else {
|
|
941
966
|
scr_dyn_arg_type_fail("path", "of type string or an instance of Buffer or URL", value);
|
|
942
967
|
return;
|
|
@@ -978,6 +1003,10 @@ void scr_process_load_env_file(const ScrDyn *value) {
|
|
|
978
1003
|
* (not producible by setenv) are skipped; the value is everything after
|
|
979
1004
|
* the FIRST '='. +1 array. */
|
|
980
1005
|
ScrArr *scr_env_pairs(void) {
|
|
1006
|
+
#ifdef SCR_WORKERS
|
|
1007
|
+
ScrArr *local = scr_context_env_pairs();
|
|
1008
|
+
if (local) return local;
|
|
1009
|
+
#endif
|
|
981
1010
|
ScrArr *out = scr_arr_new(SCR_ELEM_STR, 0);
|
|
982
1011
|
#ifdef _WIN32
|
|
983
1012
|
/* The WIN32 environment block (see scr_env_get): NUL-separated
|
|
@@ -1297,7 +1326,7 @@ bool scr_proc_stream_write(double fd, const ScrStr *data) {
|
|
|
1297
1326
|
* directory API. The env var covers every real session; abort matches
|
|
1298
1327
|
* the POSIX arm's stance on the unreachable failure. */
|
|
1299
1328
|
ScrStr *scr_os_homedir(void) {
|
|
1300
|
-
const char *home =
|
|
1329
|
+
const char *home = scr_getenv("USERPROFILE");
|
|
1301
1330
|
if (home && home[0] != '\0') return scr_str_new(home, strlen(home));
|
|
1302
1331
|
scr_trap("scriptc: os.homedir() failed\n");
|
|
1303
1332
|
}
|
|
@@ -1371,11 +1400,11 @@ ScrStr *scr_os_tmpdir(void) {
|
|
|
1371
1400
|
* physical-memory query. Keep the useful environment-backed answers and
|
|
1372
1401
|
* spell the platform explicitly for the rest. */
|
|
1373
1402
|
ScrStr *scr_os_homedir(void) {
|
|
1374
|
-
const char *home =
|
|
1403
|
+
const char *home = scr_getenv("HOME");
|
|
1375
1404
|
return scr_str_new(home ? home : "", home ? strlen(home) : 0);
|
|
1376
1405
|
}
|
|
1377
1406
|
ScrStr *scr_os_user_name(void) {
|
|
1378
|
-
const char *user =
|
|
1407
|
+
const char *user = scr_getenv("USER");
|
|
1379
1408
|
return scr_str_new(user ? user : "", user ? strlen(user) : 0);
|
|
1380
1409
|
}
|
|
1381
1410
|
ScrStr *scr_os_user_shell(void) { return scr_str_new("", 0); }
|
|
@@ -1391,7 +1420,7 @@ ScrStr *scr_os_tmpdir(void) { return scr_str_new("/tmp", 4); }
|
|
|
1391
1420
|
ScrStr *scr_os_homedir(void) {
|
|
1392
1421
|
/* uv_os_homedir: $HOME when set (even empty is "set" only if non-NULL;
|
|
1393
1422
|
* libuv requires non-empty), else the passwd entry. */
|
|
1394
|
-
const char *home =
|
|
1423
|
+
const char *home = scr_getenv("HOME");
|
|
1395
1424
|
if (home && home[0] != '\0') return scr_str_new(home, strlen(home));
|
|
1396
1425
|
struct passwd pw;
|
|
1397
1426
|
struct passwd *result = NULL;
|
|
@@ -1468,9 +1497,9 @@ double scr_os_totalmem(void) {
|
|
|
1468
1497
|
ScrStr *scr_os_tmpdir(void) {
|
|
1469
1498
|
/* Node's env cascade, with ONE trailing slash trimmed (never down to
|
|
1470
1499
|
* nothing: "/" stays "/"). */
|
|
1471
|
-
const char *dir =
|
|
1472
|
-
if (!dir || dir[0] == '\0') dir =
|
|
1473
|
-
if (!dir || dir[0] == '\0') dir =
|
|
1500
|
+
const char *dir = scr_getenv("TMPDIR");
|
|
1501
|
+
if (!dir || dir[0] == '\0') dir = scr_getenv("TMP");
|
|
1502
|
+
if (!dir || dir[0] == '\0') dir = scr_getenv("TEMP");
|
|
1474
1503
|
if (!dir || dir[0] == '\0') dir = "/tmp";
|
|
1475
1504
|
size_t len = strlen(dir);
|
|
1476
1505
|
if (len > 1 && dir[len - 1] == '/') len--;
|
|
@@ -1743,8 +1772,8 @@ void scr_os_ifaddrs_free(ScrIfaddrs *s) {
|
|
|
1743
1772
|
|
|
1744
1773
|
/* The events-unit hooks (scr_events.c fills them at install; NULL in
|
|
1745
1774
|
* event-free binaries and in the standalone runtime C tests). */
|
|
1746
|
-
void (*scr_process_exit_hook)(double code) = NULL;
|
|
1747
|
-
void (*scr_stdin_destroy_hook)(void) = NULL;
|
|
1775
|
+
SCR_TL void (*scr_process_exit_hook)(double code) = NULL;
|
|
1776
|
+
SCR_TL void (*scr_stdin_destroy_hook)(void) = NULL;
|
|
1748
1777
|
|
|
1749
1778
|
void scr_process_set_exit_code(double code) {
|
|
1750
1779
|
if (!isfinite(code) || trunc(code) != code) {
|
|
@@ -1782,6 +1811,13 @@ void scr_process_exit(double code) {
|
|
|
1782
1811
|
* non-NULL only when the events unit is linked (scr_events.c). */
|
|
1783
1812
|
scr_process_in_exit = true;
|
|
1784
1813
|
if (scr_process_exit_hook != NULL) scr_process_exit_hook(code);
|
|
1814
|
+
#ifdef SCR_WORKERS
|
|
1815
|
+
if (!scr_context_is_main()) {
|
|
1816
|
+
/* A nested exit or a failing exit listener already selected its code. */
|
|
1817
|
+
if (!scr_context_stopping()) scr_context_stop((int)code);
|
|
1818
|
+
return;
|
|
1819
|
+
}
|
|
1820
|
+
#endif
|
|
1785
1821
|
/* _Exit skips atexit handlers on purpose: no further code runs (matching
|
|
1786
1822
|
* Node), and the RC audit is meaningless mid-program (live values are
|
|
1787
1823
|
* expected). scr_init's flush-at-exit is also skipped — flush here. */
|
|
@@ -1796,7 +1832,7 @@ void scr_process_exit(double code) {
|
|
|
1796
1832
|
* attribute monotonic stamp — the binary's own start, which is what
|
|
1797
1833
|
* "the current Node.js process" means for a compiled program). */
|
|
1798
1834
|
#ifdef _WIN32
|
|
1799
|
-
#if defined(SCR_LIB) && defined(SCR_THREAD_INSTANCES)
|
|
1835
|
+
#if (defined(SCR_LIB) && defined(SCR_THREAD_INSTANCES)) || defined(SCR_WORKERS)
|
|
1800
1836
|
/* The uptime anchor belongs to the host PROCESS, not to a library
|
|
1801
1837
|
* instance. InitOnce keeps the lazy Windows spelling race-free when
|
|
1802
1838
|
* several thread instances ask for the clock concurrently. */
|
|
@@ -1840,7 +1876,7 @@ __attribute__((constructor)) static void scr_uptime_anchor_init(void) {
|
|
|
1840
1876
|
#endif
|
|
1841
1877
|
|
|
1842
1878
|
double scr_process_uptime(void) {
|
|
1843
|
-
#if defined(_WIN32) && defined(SCR_LIB) && defined(SCR_THREAD_INSTANCES)
|
|
1879
|
+
#if defined(_WIN32) && ((defined(SCR_LIB) && defined(SCR_THREAD_INSTANCES)) || defined(SCR_WORKERS))
|
|
1844
1880
|
scr_uptime_anchor_init();
|
|
1845
1881
|
#elif defined(_WIN32)
|
|
1846
1882
|
if (scr_uptime_t0_ms == 0) scr_uptime_anchor_init();
|
|
@@ -1852,7 +1888,7 @@ double scr_process_uptime(void) {
|
|
|
1852
1888
|
* start (Node's timeOrigin anchor), fractional — the same monotonic
|
|
1853
1889
|
* clock and anchor as uptime, in Node's performance.now units. */
|
|
1854
1890
|
double scr_perf_now(void) {
|
|
1855
|
-
#if defined(_WIN32) && defined(SCR_LIB) && defined(SCR_THREAD_INSTANCES)
|
|
1891
|
+
#if defined(_WIN32) && ((defined(SCR_LIB) && defined(SCR_THREAD_INSTANCES)) || defined(SCR_WORKERS))
|
|
1856
1892
|
scr_uptime_anchor_init();
|
|
1857
1893
|
#elif defined(_WIN32)
|
|
1858
1894
|
if (scr_uptime_t0_ms == 0) scr_uptime_anchor_init();
|
|
@@ -2092,9 +2128,34 @@ SCR_TL bool scr_process_in_exit = false;
|
|
|
2092
2128
|
|
|
2093
2129
|
bool scr_process_exiting(void) { return scr_process_in_exit; }
|
|
2094
2130
|
|
|
2131
|
+
#ifdef SCR_WORKERS
|
|
2132
|
+
/* Initialize before workers start. Reading through the cached process value
|
|
2133
|
+
* avoids temporarily clearing the OS mask while another thread creates a file. */
|
|
2134
|
+
static void scr_process_mask_init(void) {
|
|
2135
|
+
#ifdef _WIN32
|
|
2136
|
+
int current, ignored;
|
|
2137
|
+
_umask_s(0, ¤t);
|
|
2138
|
+
_umask_s(current, &ignored);
|
|
2139
|
+
#else
|
|
2140
|
+
unsigned current = umask(0);
|
|
2141
|
+
umask((mode_t)current);
|
|
2142
|
+
#endif
|
|
2143
|
+
atomic_store_explicit(&scr_process_mask, (unsigned)current, memory_order_relaxed);
|
|
2144
|
+
}
|
|
2145
|
+
#endif
|
|
2146
|
+
|
|
2095
2147
|
/* umask(2): mask < 0 reads without setting (set 0, restore — umask has no
|
|
2096
2148
|
* read-only form); otherwise sets and answers the previous mask. */
|
|
2097
2149
|
double scr_process_umask(double mask) {
|
|
2150
|
+
#ifdef SCR_WORKERS
|
|
2151
|
+
if (mask < 0) return atomic_load_explicit(&scr_process_mask, memory_order_relaxed);
|
|
2152
|
+
if (!scr_context_is_main()) {
|
|
2153
|
+
static const char message[] = "Setting process.umask() is not supported in workers";
|
|
2154
|
+
scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "ERR_WORKER_UNSUPPORTED_OPERATION");
|
|
2155
|
+
return 0;
|
|
2156
|
+
}
|
|
2157
|
+
atomic_store_explicit(&scr_process_mask, (unsigned)mask, memory_order_relaxed);
|
|
2158
|
+
#endif
|
|
2098
2159
|
#ifdef _WIN32
|
|
2099
2160
|
/* Node on Windows accepts umask() calls; only the low bits matter. */
|
|
2100
2161
|
int prev;
|
|
@@ -2124,6 +2185,13 @@ double scr_process_umask(double mask) {
|
|
|
2124
2185
|
}
|
|
2125
2186
|
|
|
2126
2187
|
void scr_process_chdir(ScrStr *dir) {
|
|
2188
|
+
#ifdef SCR_WORKERS
|
|
2189
|
+
if (!scr_context_is_main()) {
|
|
2190
|
+
static const char message[] = "process.chdir() is not supported in workers";
|
|
2191
|
+
scr_throw_error_msg_code(SCR_ERR_TYPE, message, sizeof message - 1, "ERR_WORKER_UNSUPPORTED_OPERATION");
|
|
2192
|
+
return;
|
|
2193
|
+
}
|
|
2194
|
+
#endif
|
|
2127
2195
|
#ifdef _WIN32
|
|
2128
2196
|
WCHAR *wide = scr_fs_win_wide(dir);
|
|
2129
2197
|
BOOL changed = wide && SetCurrentDirectoryW(wide);
|
|
@@ -3141,6 +3209,7 @@ static double scr_fs_write_bytes(double fd, const void *data, size_t length,
|
|
|
3141
3209
|
* Node/libuv. Positioned writes do not advance the descriptor. */
|
|
3142
3210
|
double scr_fs_write_sync(double fd, ScrBytes *buf, double offset, double length,
|
|
3143
3211
|
double position) {
|
|
3212
|
+
SCR_BYTES_SNAPSHOT(buf);
|
|
3144
3213
|
size_t bytelen = buf->len; /* frontend admits u8 buffers only */
|
|
3145
3214
|
char msg[160];
|
|
3146
3215
|
char recv[48];
|
|
@@ -3271,9 +3340,18 @@ double scr_fs_read_sync(double fd, ScrBytes *buf, double offset, double length,
|
|
|
3271
3340
|
scr_throw_error_msg_code(SCR_ERR_RANGE, msg, (size_t)mlen, "ERR_OUT_OF_RANGE");
|
|
3272
3341
|
return 0;
|
|
3273
3342
|
}
|
|
3343
|
+
uint8_t *bounce = buf->shared ? malloc(want ? want : 1) : NULL;
|
|
3344
|
+
if (buf->shared && !bounce) scr_trap("scriptc: out of memory\n");
|
|
3345
|
+
uint8_t *destination = bounce ? bounce : buf->data + off;
|
|
3274
3346
|
ssize_t n = position == -1
|
|
3275
|
-
? read((int)fd,
|
|
3276
|
-
: scr_fs_pread((int)fd,
|
|
3347
|
+
? read((int)fd, destination, want)
|
|
3348
|
+
: scr_fs_pread((int)fd, destination, want, position);
|
|
3349
|
+
int read_error = errno;
|
|
3350
|
+
if (bounce) {
|
|
3351
|
+
if (n > 0) scr_bytes_write(buf, off, bounce, (size_t)n);
|
|
3352
|
+
free(bounce);
|
|
3353
|
+
}
|
|
3354
|
+
errno = read_error;
|
|
3277
3355
|
if (n < 0) {
|
|
3278
3356
|
int e = errno;
|
|
3279
3357
|
char namebuf[16];
|
|
@@ -3319,7 +3397,7 @@ static double scr_fs_vector_sync(double fd, ScrArr *buffers, double position,
|
|
|
3319
3397
|
size_t at = 0;
|
|
3320
3398
|
for (size_t i = 0; i < count; i++) {
|
|
3321
3399
|
ScrBytes *buf = scr_arr_get_ref(buffers, (double)i);
|
|
3322
|
-
|
|
3400
|
+
scr_bytes_read(buf, 0, data + at, buf->len);
|
|
3323
3401
|
at += buf->len;
|
|
3324
3402
|
scr_bytes_release(buf);
|
|
3325
3403
|
}
|
|
@@ -3336,7 +3414,7 @@ static double scr_fs_vector_sync(double fd, ScrArr *buffers, double position,
|
|
|
3336
3414
|
for (size_t i = 0; i < count && remaining; i++) {
|
|
3337
3415
|
ScrBytes *buf = scr_arr_get_ref(buffers, (double)i);
|
|
3338
3416
|
size_t n = buf->len < remaining ? buf->len : remaining;
|
|
3339
|
-
|
|
3417
|
+
scr_bytes_write(buf, 0, data + at, n);
|
|
3340
3418
|
at += n;
|
|
3341
3419
|
remaining -= n;
|
|
3342
3420
|
scr_bytes_release(buf);
|
|
@@ -3911,43 +3989,6 @@ ScrBytes *scr_fs_read_fd_bytes(double fd) {
|
|
|
3911
3989
|
return scr_bytes_take_data(out.bytes, out.len);
|
|
3912
3990
|
}
|
|
3913
3991
|
|
|
3914
|
-
/* ── Atomics.wait: the synchronous-sleep idiom ───────────────────────
|
|
3915
|
-
* Atomics.wait(int32Array, idx, expected, timeoutMs). scriptc has no
|
|
3916
|
-
* threads: nothing can ever notify a waiter, so the spec's behavior for
|
|
3917
|
-
* every compilable program is exactly "compare, then sleep out the
|
|
3918
|
-
* timeout" — "not-equal" immediately when the element differs from
|
|
3919
|
-
* `expected`, "timed-out" after a real nanosleep otherwise ("ok" is
|
|
3920
|
-
* unreachable; the compiler requires the timeout argument, since an
|
|
3921
|
-
* infinite wait here would be a certain deadlock). The sleep resumes
|
|
3922
|
-
* across EINTR so signals don't shorten it. Timeout semantics follow the
|
|
3923
|
-
* spec: NaN/+Infinity would be infinite (compiler-fenced by requiring
|
|
3924
|
-
* the argument, but a runtime NaN clamps to 0 defensively), negatives
|
|
3925
|
-
* clamp to 0. */
|
|
3926
|
-
ScrStr *scr_atomics_wait(ScrBytes *arr, double idx, double expected, double timeout_ms) {
|
|
3927
|
-
double have = scr_bytes_get(arr, idx); /* traps out-of-range like every access */
|
|
3928
|
-
/* The comparison is on the stored int32 vs ToInt32(expected). */
|
|
3929
|
-
double t = expected;
|
|
3930
|
-
if (t != t || isinf(t)) t = 0;
|
|
3931
|
-
else {
|
|
3932
|
-
t = trunc(t);
|
|
3933
|
-
t = fmod(t, 4294967296.0);
|
|
3934
|
-
if (t < 0) t += 4294967296.0;
|
|
3935
|
-
if (t >= 2147483648.0) t -= 4294967296.0;
|
|
3936
|
-
}
|
|
3937
|
-
if (have != t) return scr_str_new("not-equal", 9);
|
|
3938
|
-
double ms = timeout_ms;
|
|
3939
|
-
if (ms != ms || ms < 0) ms = 0;
|
|
3940
|
-
if (ms > 0) {
|
|
3941
|
-
struct timespec left = {
|
|
3942
|
-
(time_t)(ms / 1000.0),
|
|
3943
|
-
(long)((ms - (double)(time_t)(ms / 1000.0) * 1000.0) * 1e6),
|
|
3944
|
-
};
|
|
3945
|
-
struct timespec rem;
|
|
3946
|
-
while (nanosleep(&left, &rem) != 0 && errno == EINTR) left = rem;
|
|
3947
|
-
}
|
|
3948
|
-
return scr_str_new("timed-out", 9);
|
|
3949
|
-
}
|
|
3950
|
-
|
|
3951
3992
|
/* ── the tty probes ──────────────────────────────────────────────────── */
|
|
3952
3993
|
|
|
3953
3994
|
bool scr_process_is_tty(double fd) { return isatty((int)fd) != 0; }
|
|
@@ -4467,7 +4508,7 @@ static DWORD scr_fs_win_junction(const WCHAR *target, const WCHAR *destination)
|
|
|
4467
4508
|
|
|
4468
4509
|
#ifdef _WIN32
|
|
4469
4510
|
/* libuv keeps this fallback for later calls once Windows rejects the flag. */
|
|
4470
|
-
static DWORD scr_fs_symlink_usermode_flag = 0x2; /* ALLOW_UNPRIVILEGED_CREATE */
|
|
4511
|
+
static SCR_TL DWORD scr_fs_symlink_usermode_flag = 0x2; /* ALLOW_UNPRIVILEGED_CREATE */
|
|
4471
4512
|
#endif
|
|
4472
4513
|
|
|
4473
4514
|
int scr_fs_symlink_infer(ScrStr *absolute) {
|
|
@@ -5738,6 +5779,7 @@ ScrCryptoHash *scr_crypto_hmac_new_str(ScrStr *alg, ScrStr *key) {
|
|
|
5738
5779
|
}
|
|
5739
5780
|
|
|
5740
5781
|
ScrCryptoHash *scr_crypto_hmac_new_bytes(ScrStr *alg, ScrBytes *key) {
|
|
5782
|
+
SCR_BYTES_SNAPSHOT(key);
|
|
5741
5783
|
ScrDigestAlg kind;
|
|
5742
5784
|
if (!scr_digest_alg(alg->data, alg->len, &kind)) {
|
|
5743
5785
|
scr_crypto_invalid_digest(alg);
|
|
@@ -5778,6 +5820,7 @@ ScrCryptoHash *scr_crypto_hash_update_str(ScrCryptoHash *hash, ScrStr *data) {
|
|
|
5778
5820
|
}
|
|
5779
5821
|
|
|
5780
5822
|
ScrCryptoHash *scr_crypto_hash_update_bytes(ScrCryptoHash *hash, ScrBytes *data) {
|
|
5823
|
+
SCR_BYTES_SNAPSHOT(data);
|
|
5781
5824
|
return scr_crypto_hash_update_raw(hash, data->data,
|
|
5782
5825
|
data->len * scr_bytes_elem_size(data->elem));
|
|
5783
5826
|
}
|
|
@@ -5849,10 +5892,12 @@ ScrStr *scr_crypto_hash_digest_str(ScrStr *alg, ScrStr *data, ScrStr *enc) {
|
|
|
5849
5892
|
}
|
|
5850
5893
|
|
|
5851
5894
|
ScrStr *scr_crypto_hash_digest_bytes(ScrStr *alg, ScrBytes *data, ScrStr *enc) {
|
|
5895
|
+
SCR_BYTES_SNAPSHOT(data);
|
|
5852
5896
|
return scr_hash_digest_raw(alg, data->data, data->len * scr_bytes_elem_size(data->elem), enc);
|
|
5853
5897
|
}
|
|
5854
5898
|
|
|
5855
5899
|
bool scr_crypto_timing_safe_equal(ScrBytes *left, ScrBytes *right) {
|
|
5900
|
+
SCR_SHARED_GUARD(left, right);
|
|
5856
5901
|
size_t left_len = left->len * scr_bytes_elem_size(left->elem);
|
|
5857
5902
|
size_t right_len = right->len * scr_bytes_elem_size(right->elem);
|
|
5858
5903
|
if (left_len != right_len) {
|
|
@@ -5897,7 +5942,13 @@ ScrBytes *scr_crypto_random_fill(ScrBytes *bytes, double offset, double size) {
|
|
|
5897
5942
|
scr_throw_error_msg_code(SCR_ERR_RANGE, msg, (size_t)n, "ERR_OUT_OF_RANGE");
|
|
5898
5943
|
return NULL;
|
|
5899
5944
|
}
|
|
5900
|
-
|
|
5945
|
+
if (bytes->shared) {
|
|
5946
|
+
uint8_t *random = malloc(size ? (size_t)size : 1);
|
|
5947
|
+
if (!random) scr_trap("scriptc: out of memory\n");
|
|
5948
|
+
arc4random_buf(random, (size_t)size);
|
|
5949
|
+
scr_bytes_write(bytes, (size_t)offset, random, (size_t)size);
|
|
5950
|
+
free(random);
|
|
5951
|
+
} else arc4random_buf(bytes->data + (size_t)offset, (size_t)size);
|
|
5901
5952
|
return scr_bytes_retain(bytes);
|
|
5902
5953
|
}
|
|
5903
5954
|
|
|
@@ -5991,6 +6042,8 @@ static ScrBytes *scr_crypto_pbkdf2_raw(const unsigned char *password, size_t pas
|
|
|
5991
6042
|
|
|
5992
6043
|
ScrBytes *scr_crypto_pbkdf2(ScrBytes *password, ScrBytes *salt,
|
|
5993
6044
|
double iterations, double keylen, ScrStr *digest) {
|
|
6045
|
+
SCR_BYTES_SNAPSHOT(password);
|
|
6046
|
+
SCR_BYTES_SNAPSHOT(salt);
|
|
5994
6047
|
if (!isfinite(iterations) || floor(iterations) != iterations ||
|
|
5995
6048
|
iterations < 1 || iterations > 2147483647.0) {
|
|
5996
6049
|
char value[64], msg[176];
|
|
@@ -6051,6 +6104,9 @@ static bool scr_crypto_integer(double value, const char *name, double max) {
|
|
|
6051
6104
|
|
|
6052
6105
|
ScrBytes *scr_crypto_hkdf_bytes(ScrStr *digest, ScrBytes *ikm, ScrBytes *salt,
|
|
6053
6106
|
ScrBytes *info, double keylen) {
|
|
6107
|
+
SCR_BYTES_SNAPSHOT(ikm);
|
|
6108
|
+
SCR_BYTES_SNAPSHOT(salt);
|
|
6109
|
+
SCR_BYTES_SNAPSHOT(info);
|
|
6054
6110
|
if (!scr_crypto_integer(keylen, "length", 9007199254740991.0)) return NULL;
|
|
6055
6111
|
size_t info_len = info->len * scr_bytes_elem_size(info->elem);
|
|
6056
6112
|
if (info_len > 1024) {
|
|
@@ -6175,6 +6231,8 @@ static bool scr_scrypt_params(double n, double r, double p, double maxmem, size_
|
|
|
6175
6231
|
|
|
6176
6232
|
ScrBytes *scr_crypto_scrypt_derive(ScrBytes *password, ScrBytes *salt, double keylen,
|
|
6177
6233
|
double n, double r, double p, double maxmem) {
|
|
6234
|
+
SCR_BYTES_SNAPSHOT(password);
|
|
6235
|
+
SCR_BYTES_SNAPSHOT(salt);
|
|
6178
6236
|
if (!scr_crypto_integer(keylen, "keylen", 2147483647.0) ||
|
|
6179
6237
|
!scr_crypto_integer(n, "N", 4294967295.0) || !scr_crypto_integer(r, "r", 4294967295.0) ||
|
|
6180
6238
|
!scr_crypto_integer(p, "p", 4294967295.0) || !scr_crypto_integer(maxmem, "maxmem", 9007199254740991.0)) return NULL;
|
|
@@ -6305,6 +6363,7 @@ ScrBytes *scr_crypto_scrypt(ScrBytes *password, ScrBytes *salt, double keylen, S
|
|
|
6305
6363
|
static ScrStr *scr_x509_fingerprint_raw(const uint8_t *in, size_t n);
|
|
6306
6364
|
|
|
6307
6365
|
ScrStr *scr_crypto_x509_fingerprint(ScrBytes *data) {
|
|
6366
|
+
SCR_BYTES_SNAPSHOT(data);
|
|
6308
6367
|
return scr_x509_fingerprint_raw(data->data, data->len * scr_bytes_elem_size(data->elem));
|
|
6309
6368
|
}
|
|
6310
6369
|
|
|
@@ -6531,6 +6590,7 @@ static ScrStr *scr_x509_validity_raw(const uint8_t *in, size_t n, bool want_to)
|
|
|
6531
6590
|
}
|
|
6532
6591
|
|
|
6533
6592
|
ScrStr *scr_crypto_x509_valid_from(ScrBytes *data) {
|
|
6593
|
+
SCR_BYTES_SNAPSHOT(data);
|
|
6534
6594
|
return scr_x509_validity_raw(data->data, data->len * scr_bytes_elem_size(data->elem), false);
|
|
6535
6595
|
}
|
|
6536
6596
|
|
|
@@ -6539,6 +6599,7 @@ ScrStr *scr_crypto_x509_valid_from_str(ScrStr *pem) {
|
|
|
6539
6599
|
}
|
|
6540
6600
|
|
|
6541
6601
|
ScrStr *scr_crypto_x509_valid_to(ScrBytes *data) {
|
|
6602
|
+
SCR_BYTES_SNAPSHOT(data);
|
|
6542
6603
|
return scr_x509_validity_raw(data->data, data->len * scr_bytes_elem_size(data->elem), true);
|
|
6543
6604
|
}
|
|
6544
6605
|
|