Skip to content

timers: optimize timer functions with improved argument handling #57072

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Mar 24, 2025

Conversation

gurgunday
Copy link
Member

@gurgunday gurgunday commented Feb 15, 2025

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-bot nodejs-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
Member Author

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

Copy link

codecov bot commented Feb 15, 2025

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 lines Coverage Δ
lib/timers.js 100.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.

@anonrig anonrig 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
@gurgunday gurgunday changed the title timers: Optimize timer functions with improved argument handling timers: optimize timer functions with improved argument handling Feb 21, 2025
@lpinca
Copy link
Member

lpinca commented Feb 23, 2025

@atlowChemi
Copy link
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%

@atlowChemi atlowChemi added the commit-queue Add this label to land a pull request using GitHub Actions. label Feb 23, 2025
@nodejs-github-bot nodejs-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
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

@atlowChemi atlowChemi 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-actions github-actions bot 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
Collaborator

@gurgunday
Copy link
Member Author

@atlowChemi can we try again? This shouldn't fail normally

@atlowChemi atlowChemi added the request-ci Add this label to start a Jenkins CI on a PR. label Feb 27, 2025
@github-actions github-actions bot 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
Collaborator

@Flarna
Copy link
Member

Flarna commented Feb 28, 2025

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
Member Author

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

@Flarna Flarna added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Mar 19, 2025
@lpinca lpinca added the commit-queue Add this label to land a pull request using GitHub Actions. label Mar 24, 2025
@nodejs-github-bot nodejs-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:main Mar 24, 2025
62 checks passed
@nodejs-github-bot
Copy link
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>
pandeykushagra51 pushed a commit to pandeykushagra51/node that referenced this pull request Mar 28, 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>
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>
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 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=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. needs-benchmark-ci PR that need a benchmark CI run. needs-ci PRs that need a full CI run. timers Issues 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