Skip to content

timers: optimize timer functions with improved argument handling - #57072

Merged
nodejs-github-bot merged 5 commits into
nodejs:mainfrom
gurgunday:timers-preallocate
Mar 24, 2025
Merged

timers: optimize timer functions with improved argument handling#57072
nodejs-github-bot merged 5 commits into
nodejs:mainfrom
gurgunday:timers-preallocate

Conversation

@gurgunday

@gurgundaygurgunday commented Feb 15, 2025

Copy link
Copy Markdown
Member

After:

timers/immediate.js
timers/immediate.js type="depth" n=5000000: 80,080.39740943641
timers/immediate.js type="depth1" n=5000000: 81,172.49117847806
timers/immediate.js type="breadth" n=5000000: 6,043,891.345759598
timers/immediate.js type="breadth1" n=5000000: 3,625,307.3296283777
timers/immediate.js type="breadth4" n=5000000: 3,390,438.1071638097
timers/immediate.js type="clear" n=5000000: 17,872,894.015227303
timers/set-immediate-breadth-args.js
timers/set-immediate-breadth-args.js n=5000000: 2,719,426.8722150475
timers/set-immediate-breadth.js
timers/set-immediate-breadth.js n=10000000: 5,408,182.94584942
timers/set-immediate-depth-args.js
timers/set-immediate-depth-args.js n=5000000: 81,470.89492708661
timers/timers-breadth-args.js
timers/timers-breadth-args.js n=1000000: 2,293,034.7427874957
timers/timers-breadth.js
timers/timers-breadth.js n=5000000: 3,560,692.234861032
timers/timers-cancel-pooled.js
timers/timers-cancel-pooled.js n=5000000: 26,070,668.11238602
timers/timers-cancel-unpooled.js
timers/timers-cancel-unpooled.js direction="start" n=1000000: 4,025,027.621752054
timers/timers-cancel-unpooled.js direction="end" n=1000000: 23,885,540.68014507
timers/timers-depth.js
timers/timers-depth.js n=1000: 871.7480297332925
timers/timers-insert-pooled.js
timers/timers-insert-pooled.js n=5000000: 3,114,655.0450797137
timers/timers-insert-unpooled.js
timers/timers-insert-unpooled.js direction="start" n=1000000: 3,866,726.810766608
timers/timers-insert-unpooled.js direction="end" n=1000000: 2,321,271.5229021
timers/timers-timeout-nexttick.js
timers/timers-timeout-nexttick.js n=50000: 3,159,308.1115235765
timers/timers-timeout-nexttick.js n=5000000: 6,083,459.279596363
timers/timers-timeout-pooled.js
timers/timers-timeout-pooled.js n=10000000: 18,978,540.19786525
timers/timers-timeout-unpooled.js
timers/timers-timeout-unpooled.js n=1000000: 18,657,978.268119812

Before:

gurgunday@Gurguns-MacBook-Air node % node benchmark/run.js timers timers/immediate.js
timers/immediate.js type="depth" n=5000000: 78,882.93004449889
timers/immediate.js type="depth1" n=5000000: 79,208.86810881029
timers/immediate.js type="breadth" n=5000000: 5,475,245.614097755
timers/immediate.js type="breadth1" n=5000000: 3,418,192.2343457905
timers/immediate.js type="breadth4" n=5000000: 2,220,066.291179455
timers/immediate.js type="clear" n=5000000: 16,625,836.383481566
timers/set-immediate-breadth-args.js
timers/set-immediate-breadth-args.js n=5000000: 2,484,761.063515046
timers/set-immediate-breadth.js
timers/set-immediate-breadth.js n=10000000: 5,217,361.020062365
timers/set-immediate-depth-args.js
timers/set-immediate-depth-args.js n=5000000: 78,881.00406705718
timers/timers-breadth-args.js
timers/timers-breadth-args.js n=1000000: 2,320,253.8066240572
timers/timers-breadth.js
timers/timers-breadth.js n=5000000: 3,627,726.0207083295
timers/timers-cancel-pooled.js
timers/timers-cancel-pooled.js n=5000000: 28,413,416.044484362
timers/timers-cancel-unpooled.js
timers/timers-cancel-unpooled.js direction="start" n=1000000: 3,928,022.9082296006
timers/timers-cancel-unpooled.js direction="end" n=1000000: 22,356,256.425188098
timers/timers-depth.js
timers/timers-depth.js n=1000: 871.8493679691478
timers/timers-insert-pooled.js
timers/timers-insert-pooled.js n=5000000: 2,885,978.1773654805
timers/timers-insert-unpooled.js
timers/timers-insert-unpooled.js direction="start" n=1000000: 3,951,745.894772246
timers/timers-insert-unpooled.js direction="end" n=1000000: 2,249,549.459109555
timers/timers-timeout-nexttick.js
timers/timers-timeout-nexttick.js n=50000: 3,015,908.91955063
timers/timers-timeout-nexttick.js n=5000000: 6,165,632.315873412
timers/timers-timeout-pooled.js
timers/timers-timeout-pooled.js n=10000000: 16,896,694.03508683
timers/timers-timeout-unpooled.js
timers/timers-timeout-unpooled.js n=1000000: 16,643,169.56249218

@nodejs-github-botnodejs-github-bot added needs-ci PRs that need a full CI run. timers Issues and PRs related to the timers subsystem / setImmediate, setInterval, setTimeout. labels Feb 15, 2025
@gurgunday

Copy link
Copy Markdown
MemberAuthor

However, I recommend merging this version with the latest commit (5bf7e26) to not have holey arrays and for consistency

gurgunday@Gurguns-MacBook-Air node % ./out/Release/node benchmark/run.js timers
timers/immediate.js
timers/immediate.js type="depth" n=5000000: 80,468.347887105
timers/immediate.js type="depth1" n=5000000: 80,273.09887569316
timers/immediate.js type="breadth" n=5000000: 5,866,096.091053544
timers/immediate.js type="breadth1" n=5000000: 3,582,319.354496545
timers/immediate.js type="breadth4" n=5000000: 3,268,553.8642968345
timers/immediate.js type="clear" n=5000000: 18,280,959.14708357
timers/set-immediate-breadth-args.js
timers/set-immediate-breadth-args.js n=5000000: 3,078,123.9392592525
timers/set-immediate-breadth.js
timers/set-immediate-breadth.js n=10000000: 5,286,463.315563438
timers/set-immediate-depth-args.js
timers/set-immediate-depth-args.js n=5000000: 79,877.45100246496
timers/timers-breadth-args.js
timers/timers-breadth-args.js n=1000000: 2,770,819.9410369517
timers/timers-breadth.js
timers/timers-breadth.js n=5000000: 4,216,864.783787456
timers/timers-cancel-pooled.js
timers/timers-cancel-pooled.js n=5000000: 29,206,432.148907755
timers/timers-cancel-unpooled.js
timers/timers-cancel-unpooled.js direction="start" n=1000000: 4,021,420.094131391
timers/timers-cancel-unpooled.js direction="end" n=1000000: 23,927,666.663675707
timers/timers-depth.js
timers/timers-depth.js n=1000: 877.6599768611793
timers/timers-insert-pooled.js
timers/timers-insert-pooled.js n=5000000: 2,833,107.3812150676
timers/timers-insert-unpooled.js
timers/timers-insert-unpooled.js direction="start" n=1000000: 3,502,887.6930419514
timers/timers-insert-unpooled.js direction="end" n=1000000: 2,340,635.853484566
timers/timers-timeout-nexttick.js
timers/timers-timeout-nexttick.js n=50000: 2,621,409.534003561
timers/timers-timeout-nexttick.js n=5000000: 6,167,875.059683906
timers/timers-timeout-pooled.js
timers/timers-timeout-pooled.js n=10000000: 19,414,833.68972917
timers/timers-timeout-unpooled.js
timers/timers-timeout-unpooled.js n=1000000: 16,475,878.465418886

@codecov

codecovBot commented Feb 15, 2025

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 90.27%. Comparing base (fd45383) to head (703dedd).
Report is 199 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #57072 +/- ##
==========================================
+ Coverage 90.26% 90.27% +0.01% 
==========================================
Files 630 630 Lines 184634 184560 -74 Branches 36137 36111 -26 ==========================================
- Hits 166654 166606 -48 - Misses 11022 11023 +1 + Partials 6958 6931 -27 
Files with missing linesCoverage Δ
lib/timers.js100.00% <100.00%> (ø)

... and 42 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.

@anonriganonrig added needs-benchmark-ci PR that need a benchmark CI run. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. labels Feb 15, 2025
@gurgundaygurgunday changed the title timers: Optimize timer functions with improved argument handlingtimers: optimize timer functions with improved argument handlingFeb 21, 2025
@lpinca

Copy link
Copy Markdown
Member

@atlowChemi

Copy link
Copy Markdown
Member

Benchmark CI: ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1659

 confidence improvement accuracy (*) (**) (***)
timers/immediate.js type='breadth' n=5000000 *** -7.56 % ±2.29% ±3.08% ±4.08%
timers/immediate.js type='breadth1' n=5000000 -0.72 % ±1.15% ±1.53% ±1.99%
timers/immediate.js type='breadth4' n=5000000 *** 40.00 % ±1.92% ±2.58% ±3.41%
timers/immediate.js type='clear' n=5000000 *** -6.54 % ±1.40% ±1.86% ±2.42%
timers/immediate.js type='depth' n=5000000 *** 1.32 % ±0.61% ±0.82% ±1.06%
timers/immediate.js type='depth1' n=5000000 -0.04 % ±0.72% ±0.95% ±1.24%
timers/set-immediate-breadth-args.js n=5000000 *** 18.49 % ±3.89% ±5.20% ±6.83%
timers/set-immediate-breadth.js n=10000000 * -1.30 % ±1.08% ±1.43% ±1.87%
timers/set-immediate-depth-args.js n=5000000 *** 3.67 % ±0.61% ±0.81% ±1.06%
timers/timers-breadth-args.js n=1000000 *** 23.00 % ±1.78% ±2.37% ±3.09%
timers/timers-breadth.js n=5000000 *** 8.88 % ±1.58% ±2.10% ±2.74%
timers/timers-cancel-pooled.js n=5000000 *** 26.12 % ±6.18% ±8.23% ±10.74%
timers/timers-cancel-unpooled.js direction='end' n=1000000 * 3.96 % ±3.77% ±5.07% ±6.72%
timers/timers-cancel-unpooled.js direction='start' n=1000000 ** 3.00 % ±1.74% ±2.34% ±3.11%
timers/timers-depth.js n=1000 -0.04 % ±0.15% ±0.20% ±0.26%
timers/timers-insert-pooled.js n=5000000 ** -6.73 % ±4.98% ±6.63% ±8.63%
timers/timers-insert-unpooled.js direction='end' n=1000000 *** 3.54 % ±0.93% ±1.25% ±1.64%
timers/timers-insert-unpooled.js direction='start' n=1000000 *** 10.48 % ±2.02% ±2.72% ±3.60%
timers/timers-timeout-nexttick.js n=50000 *** -8.83 % ±3.52% ±4.69% ±6.10%
timers/timers-timeout-nexttick.js n=5000000 ** 5.25 % ±3.26% ±4.34% ±5.65%
timers/timers-timeout-pooled.js n=10000000 * 0.52 % ±0.50% ±0.66% ±0.86%
timers/timers-timeout-unpooled.js n=1000000 *** 12.27 % ±3.09% ±4.15% ±5.48%

@atlowChemiatlowChemi added the commit-queue Add this label to land a pull request using GitHub Actions. label Feb 23, 2025
@nodejs-github-botnodejs-github-bot added commit-queue-failed An error occurred while landing this pull request using GitHub Actions. and removed commit-queue Add this label to land a pull request using GitHub Actions. labels Feb 23, 2025
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator
Commit Queue failed
- Loading data for nodejs/node/pull/57072
✔ Done loading data for nodejs/node/pull/57072
----------------------------------- PR info ------------------------------------
Title timers: optimize timer functions with improved argument handling (#57072)
⚠ Could not retrieve the email or name of the PR author's from user's GitHub profile!
Branch gurgunday:timers-preallocate -> nodejs:main
Labels timers, needs-ci, needs-benchmark-ci, commit-queue-squash
Commits 5
- timers: optimize timer functions with improved argument handling
- avoid holey arrays
- remove unused import
- remove unused import
- jsdoc too
Committers 1
- Gürgün Dayıoğlu <hey@gurgun.day>
PR-URL: https://github.com/nodejs/node/pull/57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
--------------------------------------------------------------------------------
ℹ This PR was created on Sat, 15 Feb 2025 17:25:50 GMT
✔ Approvals: 4
✔ - James M Snell (@jasnell) (TSC): https://github.com/nodejs/node/pull/57072#pullrequestreview-2619477349
✔ - Yagiz Nizipli (@anonrig) (TSC): https://github.com/nodejs/node/pull/57072#pullrequestreview-2619481862
✔ - Ruben Bridgewater (@BridgeAR) (TSC): https://github.com/nodejs/node/pull/57072#pullrequestreview-2619492113
✔ - Chemi Atlow (@atlowChemi): https://github.com/nodejs/node/pull/57072#pullrequestreview-2625769474
✔ Last GitHub CI successful
✘ No full Jenkins CI runs detected
ℹ Last Benchmark CI on 2025-02-23T19:48:20Z: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1659/
- Querying data for job/node-test-pull-request/1659/
✔ Last Jenkins CI successful
--------------------------------------------------------------------------------
✔ Aborted `git node land` session in /home/runner/work/node/node/.ncu
https://github.com/nodejs/node/actions/runs/13486630589

@atlowChemiatlowChemi added request-ci Add this label to start a Jenkins CI on a PR. and removed commit-queue-failed An error occurred while landing this pull request using GitHub Actions. labels Feb 25, 2025
@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Feb 25, 2025
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@atlowChemiatlowChemi added the request-ci Add this label to start a Jenkins CI on a PR. label Feb 27, 2025
@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Feb 27, 2025
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@Flarna

Flarna commented Feb 28, 2025

Copy link
Copy Markdown
Member

Benchmark CI including latest changes: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1668/

timers/immediate.js type='breadth' n=5000000 *** -5.64 % ±2.29% ±3.07% ±4.05%
timers/immediate.js type='breadth1' n=5000000 -0.58 % ±1.10% ±1.46% ±1.90%
timers/immediate.js type='breadth4' n=5000000 *** 40.89 % ±2.06% ±2.76% ±3.61%
timers/immediate.js type='clear' n=5000000 *** -5.13 % ±1.20% ±1.61% ±2.10%
timers/immediate.js type='depth' n=5000000 *** 1.63 % ±0.91% ±1.21% ±1.57%
timers/immediate.js type='depth1' n=5000000 0.52 % ±1.04% ±1.39% ±1.80%
timers/set-immediate-breadth-args.js n=5000000 *** 18.84 % ±4.37% ±5.85% ±7.67%
timers/set-immediate-breadth.js n=10000000 *** -2.71 % ±0.88% ±1.19% ±1.56%
timers/set-immediate-depth-args.js n=5000000 *** 4.39 % ±1.02% ±1.36% ±1.78%
timers/timers-breadth-args.js n=1000000 *** 22.76 % ±2.18% ±2.90% ±3.78%
timers/timers-breadth.js n=5000000 ** 4.17 % ±2.85% ±3.81% ±4.99%
timers/timers-cancel-pooled.js n=5000000 *** 35.57 % ±5.24% ±6.99% ±9.15%
timers/timers-cancel-unpooled.js direction='end' n=1000000 ** 7.75 % ±5.05% ±6.81% ±9.03%
timers/timers-cancel-unpooled.js direction='start' n=1000000 ** 3.44 % ±2.17% ±2.92% ±3.87%
timers/timers-depth.js n=1000 -0.11 % ±0.16% ±0.21% ±0.28%
timers/timers-insert-pooled.js n=5000000 -1.30 % ±4.99% ±6.64% ±8.65%
timers/timers-insert-unpooled.js direction='end' n=1000000 *** 2.27 % ±1.20% ±1.59% ±2.08%
timers/timers-insert-unpooled.js direction='start' n=1000000 *** 10.43 % ±1.83% ±2.46% ±3.25%
timers/timers-timeout-nexttick.js n=50000 *** -8.52 % ±3.62% ±4.83% ±6.30%
timers/timers-timeout-nexttick.js n=5000000 ** 4.29 % ±3.18% ±4.24% ±5.53%
timers/timers-timeout-pooled.js n=10000000 ** 0.83 % ±0.52% ±0.69% ±0.91%
timers/timers-timeout-unpooled.js n=1000000 *** 9.35 % ±2.31% ±3.09% ±4.07%

@gurgunday

Copy link
Copy Markdown
MemberAuthor

@lpinca can you take a look if you have time?

@FlarnaFlarna added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Mar 19, 2025
@lpincalpinca added the commit-queue Add this label to land a pull request using GitHub Actions. label Mar 24, 2025
@nodejs-github-botnodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Mar 24, 2025
@nodejs-github-bot
nodejs-github-bot merged commit 1123585 into nodejs:mainMar 24, 2025
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in 1123585

aduh95 pushed a commit that referenced this pull request Mar 25, 2025
PR-URL: #57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
RafaelGSS pushed a commit to RafaelGSS/node that referenced this pull request Apr 8, 2025
PR-URL: nodejs#57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
@gurgunday
gurgunday deleted the timers-preallocate branch April 12, 2025 10:45
RafaelGSS pushed a commit that referenced this pull request Apr 14, 2025
PR-URL: #57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
aduh95 pushed a commit that referenced this pull request Apr 14, 2025
PR-URL: #57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
aduh95 pushed a commit that referenced this pull request Apr 15, 2025
PR-URL: #57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
RafaelGSS pushed a commit that referenced this pull request Apr 16, 2025
PR-URL: #57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
RafaelGSS pushed a commit that referenced this pull request Apr 17, 2025
PR-URL: #57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Apr 20, 2025
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | minor | `23.10.0` -> `23.11.0` |
MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).
**Proposed changes to behavior should be submitted there as MRs.**
---
### Release Notes
<details>
<summary>nodejs/node (node)</summary>
### [`v23.11.0`](https://github.com/nodejs/node/releases/tag/v23.11.0): 2025-04-01, Version 23.11.0 (Current), @&#8203;aduh95
[Compare Source](nodejs/node@v23.10.0...v23.11.0)
##### Notable Changes
- \[[`64b086740a`](nodejs/node@64b086740a)] - **(SEMVER-MINOR)** **assert**: implement partial error comparison (Ruben Bridgewater) [#&#8203;57370](nodejs/node#57370)
- \[[`053cef70e0`](nodejs/node@053cef70e0)] - **(SEMVER-MINOR)** **crypto**: add optional callback to `crypto.diffieHellman` (Filip Skokan) [#&#8203;57274](nodejs/node#57274)
- \[[`f8aff90235`](nodejs/node@f8aff90235)] - **(SEMVER-MINOR)** **process**: add `execve` (Paolo Insogna) [#&#8203;56496](nodejs/node#56496)
- \[[`4b04c92d7d`](nodejs/node@4b04c92d7d)] - **(SEMVER-MINOR)** **sqlite**: add `StatementSync.prototype.columns()` (Colin Ihrig) [#&#8203;57490](nodejs/node#57490)
- \[[`1b8d1d3a3a`](nodejs/node@1b8d1d3a3a)] - **(SEMVER-MINOR)** **util**: expose diff function used by the assertion errors (Giovanni Bucci) [#&#8203;57462](nodejs/node#57462)
##### Commits
- \[[`7b72396c8b`](nodejs/node@7b72396c8b)] - **assert**: improve partialDeepStrictEqual performance (Ruben Bridgewater) [#&#8203;57509](nodejs/node#57509)
- \[[`64b086740a`](nodejs/node@64b086740a)] - **(SEMVER-MINOR)** **assert**: implement partial error comparison (Ruben Bridgewater) [#&#8203;57370](nodejs/node#57370)
- \[[`f694d7de0e`](nodejs/node@f694d7de0e)] - **(SEMVER-MINOR)** **assert**: improve partialDeepStrictEqual (Ruben Bridgewater) [#&#8203;57370](nodejs/node#57370)
- \[[`80d9d5653f`](nodejs/node@80d9d5653f)] - **(SEMVER-MINOR)** **assert,util**: improve performance (Ruben Bridgewater) [#&#8203;57370](nodejs/node#57370)
- \[[`d52a71f832`](nodejs/node@d52a71f832)] - **(SEMVER-MINOR)** **benchmark**: adjust assert runtimes (Ruben Bridgewater) [#&#8203;57370](nodejs/node#57370)
- \[[`7592cf4cd7`](nodejs/node@7592cf4cd7)] - **(SEMVER-MINOR)** **benchmark**: skip running some assert benchmarks by default (Ruben Bridgewater) [#&#8203;57370](nodejs/node#57370)
- \[[`e4cc54a746`](nodejs/node@e4cc54a746)] - **(SEMVER-MINOR)** **benchmark**: add assert partialDeepStrictEqual benchmark (Ruben Bridgewater) [#&#8203;57370](nodejs/node#57370)
- \[[`de48407011`](nodejs/node@de48407011)] - **build**: fix update-wpt workflow (Jonas) [#&#8203;57468](nodejs/node#57468)
- \[[`52cd0954f9`](nodejs/node@52cd0954f9)] - **cli**: clarify --cpu-prof-name allowed values (Eugenio Ceschia) [#&#8203;57433](nodejs/node#57433)
- \[[`7611fc14de`](nodejs/node@7611fc14de)] - **crypto**: fix output of privateDecrypt with zero-length data (Filip Skokan) [#&#8203;57575](nodejs/node#57575)
- \[[`cc42ee8fc7`](nodejs/node@cc42ee8fc7)] - **crypto**: ensure expected JWK alg in SubtleCrypto.importKey RSA imports (Filip Skokan) [#&#8203;57450](nodejs/node#57450)
- \[[`053cef70e0`](nodejs/node@053cef70e0)] - **(SEMVER-MINOR)** **crypto**: add optional callback to crypto.diffieHellman (Filip Skokan) [#&#8203;57274](nodejs/node#57274)
- \[[`1f08864fd7`](nodejs/node@1f08864fd7)] - **debugger**: fix behavior of plain object exec in debugger repl (Dario Piotrowicz) [#&#8203;57498](nodejs/node#57498)
- \[[`162b2828eb`](nodejs/node@162b2828eb)] - **deps**: update undici to 6.21.2 (Matteo Collina) [#&#8203;57442](nodejs/node#57442)
- \[[`43bea6bb80`](nodejs/node@43bea6bb80)] - **deps**: V8: cherry-pick [`c172ffc`](nodejs/node@c172ffc5bf54) (Choongwoo Han) [#&#8203;57437](nodejs/node#57437)
- \[[`99f93afb9d`](nodejs/node@99f93afb9d)] - **deps**: update ada to v3.2.1 (Yagiz Nizipli) [#&#8203;57429](nodejs/node#57429)
- \[[`30e5658f12`](nodejs/node@30e5658f12)] - **deps**: update googletest to [`0bdccf4`](nodejs/node@0bdccf4) (Node.js GitHub Bot) [#&#8203;57380](nodejs/node#57380)
- \[[`573467c070`](nodejs/node@573467c070)] - **deps**: update acorn to 8.14.1 (Node.js GitHub Bot) [#&#8203;57382](nodejs/node#57382)
- \[[`affeaac0c7`](nodejs/node@affeaac0c7)] - **doc**: add gurgunday as triager (Gürgün Dayıoğlu) [#&#8203;57594](nodejs/node#57594)
- \[[`4ed1a098f5`](nodejs/node@4ed1a098f5)] - **doc**: clarify behaviour of node-api adjust function (Michael Dawson) [#&#8203;57463](nodejs/node#57463)
- \[[`921041b284`](nodejs/node@921041b284)] - **doc**: remove Corepack documentation (Antoine du Hamel) [#&#8203;57635](nodejs/node#57635)
- \[[`99dbd8b391`](nodejs/node@99dbd8b391)] - **doc**: remove mention of `--require` not supporting ES modules (Huáng Jùnliàng) [#&#8203;57620](nodejs/node#57620)
- \[[`8c76b2949e`](nodejs/node@8c76b2949e)] - **doc**: mention reports should align with Node.js CoC (Rafael Gonzaga) [#&#8203;57607](nodejs/node#57607)
- \[[`ee1c78a7a3`](nodejs/node@ee1c78a7a3)] - **doc**: add section stating that very stale MRs should be closed (Dario Piotrowicz) [#&#8203;57541](nodejs/node#57541)
- \[[`595e9e5ad6`](nodejs/node@595e9e5ad6)] - **doc**: add bjohansebas as triager (Sebastian Beltran) [#&#8203;57564](nodejs/node#57564)
- \[[`3742d2a198`](nodejs/node@3742d2a198)] - **doc**: update support channels (Claudio W.) [#&#8203;57538](nodejs/node#57538)
- \[[`717c44dead`](nodejs/node@717c44dead)] - **doc**: make stability labels more consistent (Antoine du Hamel) [#&#8203;57516](nodejs/node#57516)
- \[[`b4576a6f57`](nodejs/node@b4576a6f57)] - **doc**: remove cryptoStream API reference (Jonas) [#&#8203;57579](nodejs/node#57579)
- \[[`2c4f894036`](nodejs/node@2c4f894036)] - **doc**: module resolution pseudocode corrections (Marcel Laverdet) [#&#8203;57080](nodejs/node#57080)
- \[[`c45894f90c`](nodejs/node@c45894f90c)] - **doc**: add history entry for DEP0190 in `child_process.md` (Antoine du Hamel) [#&#8203;57544](nodejs/node#57544)
- \[[`c21068b696`](nodejs/node@c21068b696)] - **doc**: remove deprecated pattern in `child_process.md` (Antoine du Hamel) [#&#8203;57568](nodejs/node#57568)
- \[[`87e0dda352`](nodejs/node@87e0dda352)] - **doc**: mark multiple experimental APIS as stable (James M Snell) [#&#8203;57510](nodejs/node#57510)
- \[[`d637763e4e`](nodejs/node@d637763e4e)] - **doc**: remove mertcanaltin from Triagers (Mert Can Altin) [#&#8203;57531](nodejs/node#57531)
- \[[`ee6025495d`](nodejs/node@ee6025495d)] - **doc**: recommend watching the collaborators repo in the onboarding doc (Darshan Sen) [#&#8203;57527](nodejs/node#57527)
- \[[`706b64638b`](nodejs/node@706b64638b)] - **doc**: remove mention of visa fees from onboarding doc (Darshan Sen) [#&#8203;57526](nodejs/node#57526)
- \[[`176d951bd0`](nodejs/node@176d951bd0)] - **doc**: deprecate passing `args` to `spawn` and `execFile` (Antoine du Hamel) [#&#8203;57389](nodejs/node#57389)
- \[[`5c05ba119b`](nodejs/node@5c05ba119b)] - **doc**: remove some inconsistencies in `deprecations.md` (Antoine du Hamel) [#&#8203;57512](nodejs/node#57512)
- \[[`9d5be4bb8c`](nodejs/node@9d5be4bb8c)] - **doc**: run license-builder (github-actions\[bot]) [#&#8203;57511](nodejs/node#57511)
- \[[`273607edb4`](nodejs/node@273607edb4)] - **doc**: add new writing-docs contributing md (Dario Piotrowicz) [#&#8203;57502](nodejs/node#57502)
- \[[`e28c723f24`](nodejs/node@e28c723f24)] - **doc**: add node.js streams references to Web Streams doc (Dario Piotrowicz) [#&#8203;57393](nodejs/node#57393)
- \[[`47296492ba`](nodejs/node@47296492ba)] - **doc**: replace NOTEs that do not render properly (Colin Ihrig) [#&#8203;57484](nodejs/node#57484)
- \[[`db9c37f792`](nodejs/node@db9c37f792)] - **doc**: prefer to sign commits under nodejs repository (Rafael Gonzaga) [#&#8203;57311](nodejs/node#57311)
- \[[`e5e3987ae7`](nodejs/node@e5e3987ae7)] - **doc**: fixed the incorrect splitting of multiple words (letianpailove) [#&#8203;57454](nodejs/node#57454)
- \[[`91a824e43b`](nodejs/node@91a824e43b)] - **doc**: add review guidelines for collaborator nominations (Antoine du Hamel) [#&#8203;57449](nodejs/node#57449)
- \[[`2a5fcb2172`](nodejs/node@2a5fcb2172)] - **doc**: fix typo in `url.md` (Allon Murienik) [#&#8203;57467](nodejs/node#57467)
- \[[`17ccf9282f`](nodejs/node@17ccf9282f)] - **doc**: add history info for --use-system-ca (Darshan Sen) [#&#8203;57432](nodejs/node#57432)
- \[[`9adaaeb965`](nodejs/node@9adaaeb965)] - **doc**: remove typo YAML snippet from tls.getCACertificates doc (Darshan Sen) [#&#8203;57459](nodejs/node#57459)
- \[[`ee4e855f8e`](nodejs/node@ee4e855f8e)] - **doc**: fix typo in sqlite.md (Tobias Nießen) [#&#8203;57473](nodejs/node#57473)
- \[[`8cb3441443`](nodejs/node@8cb3441443)] - **doc**: explicit mention arbitrary code execution as a vuln (Rafael Gonzaga) [#&#8203;57426](nodejs/node#57426)
- \[[`27f183ad03`](nodejs/node@27f183ad03)] - **doc**: update maintaining-openssl.md for openssl (Richard Lau) [#&#8203;57413](nodejs/node#57413)
- \[[`ca67145d60`](nodejs/node@ca67145d60)] - **doc**: add missing `deprecated` badges in `fs.md` (Yukihiro Hasegawa) [#&#8203;57384](nodejs/node#57384)
- \[[`3687390510`](nodejs/node@3687390510)] - **doc**: fix small typo in `process.md` (Felix Rieseberg) [#&#8203;57333](nodejs/node#57333)
- \[[`097d9926e3`](nodejs/node@097d9926e3)] - **doc**: add note about sync nodejs-private branches (Rafael Gonzaga) [#&#8203;57404](nodejs/node#57404)
- \[[`5006627969`](nodejs/node@5006627969)] - **fs**: apply exclude function to root path (Rich Trott) [#&#8203;57420](nodejs/node#57420)
- \[[`0583c3db92`](nodejs/node@0583c3db92)] - **http**: coerce content-length to number (Marco Ippolito) [#&#8203;57458](nodejs/node#57458)
- \[[`2a580b9332`](nodejs/node@2a580b9332)] - **lib**: add warning when binding inspector to public IP (Demian Parkhomenko) [#&#8203;55736](nodejs/node#55736)
- \[[`fda56b9837`](nodejs/node@fda56b9837)] - **lib**: limit split function calls to prevent excessive array length (Gürgün Dayıoğlu) [#&#8203;57501](nodejs/node#57501)
- \[[`d5a26f6525`](nodejs/node@d5a26f6525)] - **lib**: make getCallSites sourceMap option truly optional (James M Snell) [#&#8203;57388](nodejs/node#57388)
- \[[`00a5b18043`](nodejs/node@00a5b18043)] - **meta**: add some clarification to the nomination process (James M Snell) [#&#8203;57503](nodejs/node#57503)
- \[[`d0c96c463c`](nodejs/node@d0c96c463c)] - **meta**: remove collaborator self-nomination (Rich Trott) [#&#8203;57537](nodejs/node#57537)
- \[[`a9a93f31ee`](nodejs/node@a9a93f31ee)] - **meta**: edit collaborator nomination process (Antoine du Hamel) [#&#8203;57483](nodejs/node#57483)
- \[[`0ca362f5f2`](nodejs/node@0ca362f5f2)] - **meta**: move ovflowd to emeritus (Claudio W.) [#&#8203;57443](nodejs/node#57443)
- \[[`f8aff90235`](nodejs/node@f8aff90235)] - **(SEMVER-MINOR)** **process**: add execve (Paolo Insogna) [#&#8203;56496](nodejs/node#56496)
- \[[`e8d4a31d4b`](nodejs/node@e8d4a31d4b)] - **sqlite**: add support for unknown named parameters (Colin Ihrig) [#&#8203;57552](nodejs/node#57552)
- \[[`5652da642d`](nodejs/node@5652da642d)] - **sqlite**: add DatabaseSync.prototype.isOpen (Colin Ihrig) [#&#8203;57522](nodejs/node#57522)
- \[[`5c976f16cd`](nodejs/node@5c976f16cd)] - **sqlite**: add DatabaseSync.prototype\[Symbol.dispose]\() (Colin Ihrig) [#&#8203;57506](nodejs/node#57506)
- \[[`4b04c92d7d`](nodejs/node@4b04c92d7d)] - **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype.columns() (Colin Ihrig) [#&#8203;57490](nodejs/node#57490)
- \[[`7f5e31645c`](nodejs/node@7f5e31645c)] - **src**: ensure primordials are initialized exactly once (Chengzhong Wu) [#&#8203;57519](nodejs/node#57519)
- \[[`9611980f58`](nodejs/node@9611980f58)] - **src**: improve error handling in multiple files (James M Snell) [#&#8203;57507](nodejs/node#57507)
- \[[`3ddc5cd875`](nodejs/node@3ddc5cd875)] - **src**: cache urlpattern properties (JonasBa) [#&#8203;57465](nodejs/node#57465)
- \[[`b9d9ee4da2`](nodejs/node@b9d9ee4da2)] - **src**: make minor cleanups in encoding_binding.cc (James M Snell) [#&#8203;57448](nodejs/node#57448)
- \[[`f8acf2dd2a`](nodejs/node@f8acf2dd2a)] - **src**: make minor cleanups in compile_cache.cc (James M Snell) [#&#8203;57448](nodejs/node#57448)
- \[[`6ee15c6509`](nodejs/node@6ee15c6509)] - **src**: define urlpattern components using a macro (JonasBa) [#&#8203;57452](nodejs/node#57452)
- \[[`4ab3c1690a`](nodejs/node@4ab3c1690a)] - **src**: cleanup crypto more (James M Snell) [#&#8203;57323](nodejs/node#57323)
- \[[`5be80b1748`](nodejs/node@5be80b1748)] - **src**: refine ncrypto more (James M Snell) [#&#8203;57300](nodejs/node#57300)
- \[[`6a13319a6e`](nodejs/node@6a13319a6e)] - **src**: cleanup aliased_buffer.h (Mohammed Keyvanzadeh) [#&#8203;57395](nodejs/node#57395)
- \[[`3cff7f80bb`](nodejs/node@3cff7f80bb)] - **src**: suggest --use-system-ca when a certificate error occurs (Aditi) [#&#8203;57362](nodejs/node#57362)
- \[[`3d372ad9f3`](nodejs/node@3d372ad9f3)] - **test**: update WPT for urlpattern to [`6ceca69`](nodejs/node@6ceca69d26) (Node.js GitHub Bot) [#&#8203;57486](nodejs/node#57486)
- \[[`481ea665af`](nodejs/node@481ea665af)] - **test**: add more number cases for buffer.indexOf (Meghan Denny) [#&#8203;57200](nodejs/node#57200)
- \[[`27b01ed4e7`](nodejs/node@27b01ed4e7)] - **test**: update parallel/test-tls-dhe for OpenSSL 3.5 (Richard Lau) [#&#8203;57477](nodejs/node#57477)
- \[[`8f7debcf41`](nodejs/node@8f7debcf41)] - **timers**: optimize timer functions with improved argument handling (Gürgün Dayıoğlu) [#&#8203;57072](nodejs/node#57072)
- \[[`d4abd9d3fb`](nodejs/node@d4abd9d3fb)] - **timers**: remove unnecessary allocation of \_onTimeout (Gürgün Dayıoğlu) [#&#8203;57497](nodejs/node#57497)
- \[[`f8f81c8ba2`](nodejs/node@f8f81c8ba2)] - **timers**: remove unused parameter from insertGuarded (Gürgün Dayıoğlu) [#&#8203;57251](nodejs/node#57251)
- \[[`c4fdb27b51`](nodejs/node@c4fdb27b51)] - **tls**: remove unnecessary type check on normalize (Yagiz Nizipli) [#&#8203;57336](nodejs/node#57336)
- \[[`ad5dcc5798`](nodejs/node@ad5dcc5798)] - **tools**: fix WPT update cron string (Antoine du Hamel) [#&#8203;57665](nodejs/node#57665)
- \[[`7faa482588`](nodejs/node@7faa482588)] - **tools**: remove stalled label on unstalled issues and MRs (Rich Trott) [#&#8203;57630](nodejs/node#57630)
- \[[`e3bb26da2b`](nodejs/node@e3bb26da2b)] - **tools**: update sccache to support GH cache changes (Michaël Zasso) [#&#8203;57573](nodejs/node#57573)
- \[[`f0c9f505d9`](nodejs/node@f0c9f505d9)] - **tools**: bump [@&#8203;babel/helpers](https://github.com/babel/helpers) from 7.26.9 to 7.26.10 in /tools/eslint (dependabot\[bot]) [#&#8203;57444](nodejs/node#57444)
- \[[`a40ff1f646`](nodejs/node@a40ff1f646)] - **url**: fix constructor error message for URLPattern (jakecastelli) [#&#8203;57482](nodejs/node#57482)
- \[[`f36bee4b89`](nodejs/node@f36bee4b89)] - **util**: avoid run debug when enabled is false (fengmk2) [#&#8203;57494](nodejs/node#57494)
- \[[`1b8d1d3a3a`](nodejs/node@1b8d1d3a3a)] - **(SEMVER-MINOR)** **util**: expose diff function used by the assertion errors (Giovanni Bucci) [#&#8203;57462](nodejs/node#57462)
- \[[`1f7b08a317`](nodejs/node@1f7b08a317)] - **win,test**: disable test case failing with ClangCL (Stefan Stojanovic) [#&#8203;57397](nodejs/node#57397)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzAuMiIsInVwZGF0ZWRJblZlciI6IjM5LjIzMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
RafaelGSS pushed a commit that referenced this pull request May 1, 2025
PR-URL: #57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
RafaelGSS pushed a commit that referenced this pull request May 2, 2025
PR-URL: #57072
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs that have at least one approval, no pending requests for changes, and a CI started.commit-queue-squashAdd this label to instruct the Commit Queue to squash all the PR commits into the first one.needs-benchmark-ciPR that need a benchmark CI run.needs-ciPRs that need a full CI run.timersIssues and PRs related to the timers subsystem / setImmediate, setInterval, setTimeout.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@gurgunday@lpinca@atlowChemi@nodejs-github-bot@Flarna@jasnell@anonrig@BridgeAR@mertcanaltin