diff --git a/.github/workflows/test-shared.yml b/.github/workflows/test-shared.yml index 3638aa51371f..077e9e21a981 100644 --- a/.github/workflows/test-shared.yml +++ b/.github/workflows/test-shared.yml @@ -141,6 +141,8 @@ jobs: include: - runner: ubuntu-24.04 system: x86_64-linux + # Exercise the trace-event code against a perfetto-enabled V8. + perfetto: true # built separately in build-aarch64-linux-v8 # - runner: ubuntu-24.04-arm # system: aarch64-linux @@ -148,13 +150,14 @@ jobs: system: x86_64-darwin - runner: macos-latest system: aarch64-darwin - name: '${{ matrix.system }}: with shared libraries' + name: '${{ matrix.system }}: with shared libraries${{ matrix.perfetto && '' and perfetto'' || '''' }}' uses: ./.github/workflows/build-shared.yml with: runner: ${{ matrix.runner }} with-sccache: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} extra-nix-flags: | --arg useSeparateDerivationForV8 true \ + ${{ matrix.perfetto && '--arg withPerfetto true \' || '\' }} ${{ endsWith(matrix.system, '-darwin') && '--arg withAmaro false --arg withLief false --arg withSQLite false --arg withFFI false --arg extraConfigFlags ''["--without-inspector" "--without-node-options"]'' \' || '\' }} secrets: CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} diff --git a/benchmark/misc/trace.js b/benchmark/misc/trace.js index f30823280435..077b8bff2c29 100644 --- a/benchmark/misc/trace.js +++ b/benchmark/misc/trace.js @@ -14,13 +14,13 @@ const bench = common.createBenchmark(main, { }); const { - TRACE_EVENT_PHASE_NESTABLE_ASYNC_BEGIN: kBeforeEvent, + TRACE_EVENT_PHASE_BEGIN: kBeginEvent, } = common.binding('constants').trace; function doTrace(n, trace) { bench.start(); for (let i = 0; i < n; i++) { - trace(kBeforeEvent, 'foo', 'test', 0, 'test'); + trace(kBeginEvent, 'foo', 'test', 0, 'test'); } bench.end(n); } diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 915e3d87c99f..0868f0fae4c1 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -4697,6 +4697,23 @@ underlying stream are emitted from `req`. On the write-side you can use `res.writableFinished` to confirm whether the response was written successfully before the response closed. +### DEP0208: `Server.prototype._listen2` + + + +Type: Runtime + +`net.Server.prototype._listen2` is an undocumented alias for an internal +function that sets up the listening handle. It is kept only so that code +replacing it keeps being called by [`server.listen()`][], and it will be +removed in a future version of Node.js. Use [`server.listen()`][] instead of +calling or overriding `_listen2`. + [DEP0142]: #dep0142-repl_builtinlibs [DEP0156]: #dep0156-aborted-property-and-abort-aborted-event-in-http [NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf @@ -4814,6 +4831,7 @@ successfully before the response closed. [`response.writableEnded`]: http.md#responsewritableended [`response.writableFinished`]: http.md#responsewritablefinished [`script.createCachedData()`]: vm.md#scriptcreatecacheddata +[`server.listen()`]: net.md#serverlisten [`setInterval()`]: timers.md#setintervalcallback-delay-args [`setTimeout()`]: timers.md#settimeoutcallback-delay-args [`socket.bufferSize`]: net.md#socketbuffersize diff --git a/doc/api/ffi.md b/doc/api/ffi.md index 94dc9e42f03d..db040d78ba5e 100644 --- a/doc/api/ffi.md +++ b/doc/api/ffi.md @@ -62,16 +62,17 @@ FFI signatures use string type names. Supported type names: * `void` +* `char` * `i8`, `int8` -* `u8`, `uint8`, `bool`, `char` +* `u8`, `uint8`, `bool` * `i16`, `int16` * `u16`, `uint16` * `i32`, `int32` * `u32`, `uint32` * `i64`, `int64` * `u64`, `uint64` -* `f32`, `float` -* `f64`, `double` +* `f32`, `float`, `float32` +* `f64`, `double`, `float64` * `pointer`, `ptr` * `string`, `str` * `buffer` diff --git a/doc/api/stream.md b/doc/api/stream.md index 2f7fd7961a73..6a5300c6e0e0 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -3120,6 +3120,19 @@ console.log(res); // prints 'HELLOWORLD' For convenience, the [`readable.compose(stream)`][] method is available on {Readable} and {Duplex} streams as a wrapper for this function. +### `stream.isDestroyed(stream)` + + + +* `stream` {Readable|Writable|Duplex} +* Returns: {boolean|null} - Only returns `null` if `stream` is not a valid `Readable`, `Writable` or `Duplex`. + +Returns whether the stream has been destroyed. + ### `stream.isErrored(stream)`