Skip to content

[v26.x backport] repl: add basic syntax highlighting - #65267

Closed
avivkeller wants to merge 144 commits into
nodejs:v26.x-stagingfrom
avivkeller:backport
Closed

[v26.x backport] repl: add basic syntax highlighting#65267
avivkeller wants to merge 144 commits into
nodejs:v26.x-stagingfrom
avivkeller:backport

Conversation

@avivkeller

Copy link
Copy Markdown
Member

Backport of #64591 (4a5eb1c)

mcollina and others added 30 commits August 13, 2026 14:11
Increase the default HTTP/2 stream window from 64KB (65535) to 4MB
(4194304) and the default local connection window to 32MB (33554432).

The default 64KB window limits throughput on high-latency connections
to window_size / RTT. With a 250ms RTT, throughput is limited to
256KB/s. The new defaults improve throughput to 16MB/s (128Mbps)
for the stream window and 128MB/s (1Gbps) for the connection window.

Fixes: nodejs#38426
Signed-off-by: Matteo Collina <[email protected]>
PR-URL: nodejs#64623
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Tim Perry <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Ethan Arrowood <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Several SQLite tests created temporary file databases through a
`nextDb()` helper even though they only exercise SQL behavior and never
rely on filesystem persistence. Switch those to `:memory:`, which is
faster and drops the temporary-file bookkeeping. Tests that depend on an
on-disk or shared database keep using files: the constructor, open() and
backup() cases, the timeout and cross-worker suites, and the WAL
journal-mode PRAGMA.

Refs: nodejs#64665
Signed-off-by: Paul Bouchon <[email protected]>
PR-URL: nodejs#64701
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Edy Silva <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Signed-off-by: islandryu <[email protected]>
PR-URL: nodejs#64751
Reviewed-By: Aviv Keller <[email protected]>
Signed-off-by: Junsoo Ha <[email protected]>
PR-URL: nodejs#64864
Reviewed-By: Paolo Insogna <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
The `--allow-ffi` example in cli.md hard-coded the Linux-only `.so`
extension. node:ffi already exposes `suffix` for exactly this case,
and doc/api/ffi.md's own examples use it. Do the same here.

Assisted-by: Claude Sonnet 5
Signed-off-by: agape1225 <[email protected]>
PR-URL: nodejs#64914
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Signed-off-by: Antoine du Hamel <[email protected]>
PR-URL: nodejs#64961
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
Reviewed-By: Tierney Cyren <[email protected]>
Reviewed-By: René <[email protected]>
To help with automating keeping in sync with the bundled version.

Signed-off-by: Antoine du Hamel <[email protected]>
PR-URL: nodejs#64962
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
convertPointerArg ended with an unconditional getRawPointer call for
buffer and arraybuffer types, rejecting BigInt addresses that the
single-argument fast path and ToFFIArgument both accept. Drop the
fallback; hasPointerMemoryArg already converts memory-backed values,
and null, undefined, and strings are handled earlier.

Signed-off-by: Trivikram Kamat <[email protected]>
Assisted-by: claude:opus-5
PR-URL: nodejs#64964
Fixes: nodejs#64963
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Signed-off-by: hanityx <[email protected]>
PR-URL: nodejs#64865
Reviewed-By: Aviv Keller <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
Signed-off-by: Chengzhong Wu <[email protected]>
PR-URL: nodejs#64966
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Treat detached ArrayBuffers and Buffer or TypedArray views backed by
them as zero-length inputs in buffer.isUtf8() and buffer.isAscii(). Both
functions now return true for these inputs, consistent with other empty
inputs.

Signed-off-by: Archkon <[email protected]>
PR-URL: nodejs#64504
Fixes: nodejs#64503
Reviewed-By: James M Snell <[email protected]>
Synchronize mk-ca-bundle.pl with curl 1.33. This brings in curl's
corrected handling of NSS distrust-after metadata.

Refs: https://github.com/curl/curl/blob/0ada20387c31c638cfd7f6b4ae7e5cab5b318caf/scripts/mk-ca-bundle.pl
Signed-off-by: Archkon <[email protected]>
PR-URL: nodejs#64753
Fixes: nodejs#64752
Reviewed-By: Tim Perry <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: René <[email protected]>
File write streams inherit the default byte-stream highWaterMark.
The fixed 16 KiB value became stale when that default changed.
Also document the Windows-specific byte-stream default.

Signed-off-by: umuoy1 <[email protected]>
PR-URL: nodejs#64617
Reviewed-By: Chengzhong Wu <[email protected]>
Signed-off-by: James M Snell <[email protected]>
PR-URL: nodejs#64760
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Signed-off-by: Matteo Collina <[email protected]>
PR-URL: nodejs#64651
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Signed-off-by: kyungrae <[email protected]>
PR-URL: nodejs#64976
Refs: nodejs#35093
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Tierney Cyren <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Similar to `URL.parse(...)`, the `MIMEType.parse(...)` API will
return `null` if the input cannot be parsed as opposed to throwing
the way the constructor does.

Signed-off-by: James M Snell <[email protected]>
PR-URL: nodejs#64965
Reviewed-By: Aviv Keller <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: René <[email protected]>
PR-URL: nodejs#64977
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
The startup failure always appended the OpenSSL error queue, so when
Node.js itself detected the missing fips provider it printed an error
header followed by nothing. Report the reason instead.

Signed-off-by: Filip Skokan <[email protected]>
PR-URL: nodejs#64979
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: nodejs#64960
Fixes: nodejs#48379
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
PR-URL: nodejs#58909
Reviewed-By: Jake Yuesong Li <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
OpenSSL reports FIPS mode as disabled after a successful
EVP_default_properties_enable_fips(..., 0) call. Do not treat that
disabled state as a failure.

Add OpenSSL 3 regression coverage that verifies the state is enabled
before disabling it again.

Signed-off-by: Filip Skokan <[email protected]>
PR-URL: nodejs#64982
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
A missing OPENSSL_VERSION_NUMBER macro raises TypeError while the
configure logic attempts to slice None. Treat that like the other
version detection failures so configure warns and records version 0.

Signed-off-by: Filip Skokan <[email protected]>
PR-URL: nodejs#64982
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
openssl_is_fips is always the string "true" or "false", so testing
whether it is non-empty always adds OPENSSL_FIPS to mkssldef. Add the
define only when FIPS was requested.

Signed-off-by: Filip Skokan <[email protected]>
PR-URL: nodejs#64982
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
Distinguish OpenSSL 3 provider setup from FIPS/property-query state,
document configuration precedence and provider limitations, and retain
the OpenSSL 1.1 and runtime control guidance.

Regenerate the CLI manpage.

Signed-off-by: Filip Skokan <[email protected]>
PR-URL: nodejs#64982
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
Report the rejected import name instead of the import module when
throwing for reserved Wasm import names.

Signed-off-by: hyemimi <[email protected]>
PR-URL: nodejs#64950
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Guy Bedford <[email protected]>
Signed-off-by: Antoine du Hamel <[email protected]>
PR-URL: nodejs#65053
Refs: nodejs#58909
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
PR-URL: nodejs#62061
Fixes: nodejs#61396
Reviewed-By: René <[email protected]>
Reviewed-By: Edy Silva <[email protected]>
Signed-off-by: Renegade334 <[email protected]>
PR-URL: nodejs#64985
Reviewed-By: Aviv Keller <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
This extends explicit resource management support to prepared
statements, allowing a StatementSync to be deterministically
finalized via a `using` declaration, mirroring the existing
DatabaseSync and Session dispose methods.

Signed-off-by: Guilherme Araújo <[email protected]>
PR-URL: nodejs#64232
Reviewed-By: René <[email protected]>
panva and others added 4 commits August 13, 2026 15:05
Signed-off-by: Filip Skokan <[email protected]>
PR-URL: nodejs#64960
Fixes: nodejs#48379
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
Hide TurboSHAKE and KangarooTwelve when FIPS is enabled. Reject cSHAKE
and KMAC parameters that require implementations outside the OpenSSL
provider, while keeping provider-backed paths available.

Signed-off-by: Filip Skokan <[email protected]>
PR-URL: nodejs#65172
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Signed-off-by: Adam Mcgrath <[email protected]>
PR-URL: nodejs#65073
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Aviv Keller <[email protected]>
Signed-off-by: avivkeller <[email protected]>
PR-URL: nodejs#64591
Reviewed-By: James M Snell <[email protected]>
@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. readline Issues and PRs related to the built-in readline module. repl Issues and PRs related to the REPL subsystem. util Issues and PRs related to the built-in util module. v26.x Issues that can be reproduced on v26.x or PRs targeting the v26.x-staging branch. labels Aug 13, 2026
@avivkeller
avivkeller marked this pull request as draft August 13, 2026 18:54
@codecov

codecov Bot commented Aug 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 88.51518% with 280 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.22%. Comparing base (9b55403) to head (d068509).
⚠️ Report is 343 commits behind head on v26.x-staging.

Files with missing lines Patch % Lines
src/node_sockaddr.cc 83.10% 8 Missing and 42 partials ⚠️
src/histogram.cc 86.03% 22 Missing and 21 partials ⚠️
src/permission/permission.cc 67.34% 19 Missing and 13 partials ⚠️
src/node_sqlite.cc 87.55% 7 Missing and 19 partials ⚠️
src/histogram-inl.h 76.27% 8 Missing and 6 partials ⚠️
src/crypto/crypto_util.cc 52.00% 10 Missing and 2 partials ⚠️
src/stream_pipe.cc 0.00% 9 Missing and 3 partials ⚠️
src/node_buffer.cc 77.77% 2 Missing and 8 partials ⚠️
lib/internal/crypto/webidl.js 85.45% 8 Missing ⚠️
src/node_errors.cc 38.46% 8 Missing ⚠️
... and 24 more
Additional details and impacted files
@@                Coverage Diff                @@
##           v26.x-staging   #65267      +/-   ##
=================================================
- Coverage          90.29%   90.22%   -0.07%     
=================================================
  Files                729      730       +1     
  Lines             242763   242862      +99     
  Branches           46920    46083     -837     
=================================================
- Hits              219191   219112      -79     
- Misses             15024    15191     +167     
- Partials            8548     8559      +11     
Files with missing lines Coverage Δ
lib/_http_agent.js 96.60% <100.00%> (ø)
lib/_http_outgoing.js 97.76% <100.00%> (ø)
lib/buffer.js 99.15% <100.00%> (ø)
lib/internal/blocklist.js 94.74% <100.00%> (ø)
lib/internal/buffer.js 98.76% <100.00%> (ø)
lib/internal/crypto/aes.js 93.75% <100.00%> (-3.91%) ⬇️
lib/internal/crypto/cfrg.js 95.89% <100.00%> (ø)
lib/internal/crypto/cipher.js 98.01% <100.00%> (-1.33%) ⬇️
lib/internal/crypto/diffiehellman.js 97.94% <100.00%> (-0.46%) ⬇️
lib/internal/crypto/ec.js 96.89% <100.00%> (-0.39%) ⬇️
... and 119 more

... and 23 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@aduh95 aduh95 changed the title repl: add basic syntax highlighting [v26.x backport] repl: add basic syntax highlighting Aug 13, 2026
@avivkeller
avivkeller marked this pull request as ready for review August 15, 2026 18:04
@avivkeller
avivkeller requested a review from aduh95 August 20, 2026 02:05
@avivkeller

Copy link
Copy Markdown
Member Author

Bump!

@aduh95 aduh95 added author ready PRs with CI started, the required approvals, and no outstanding review comments. request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 24, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

aduh95 pushed a commit that referenced this pull request Aug 25, 2026
Signed-off-by: avivkeller <[email protected]>
PR-URL: #64591
Backport-PR-URL: #65267
Reviewed-By: Antoine du Hamel <[email protected]>
aduh95 pushed a commit that referenced this pull request Aug 25, 2026
Signed-off-by: avivkeller <[email protected]>
PR-URL: #64591
Backport-PR-URL: #65267
Reviewed-By: Antoine du Hamel <[email protected]>
@aduh95

aduh95 commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Landed in c18b0aa54e

@aduh95 aduh95 closed this Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. needs-ci PRs that need a full CI run. readline Issues and PRs related to the built-in readline module. repl Issues and PRs related to the REPL subsystem. util Issues and PRs related to the built-in util module. v26.x Issues that can be reproduced on v26.x or PRs targeting the v26.x-staging branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.