GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — src: use simdutf for one-byte string UTF-8 write in stringBytes by mertcanaltin · Pull Request #61696 · nodejs/node

Conversation

@mertcanaltin

@mertcanaltin mertcanaltin commented Feb 5, 2026

Copy link
Copy Markdown
Member

I use simdutf::convert_latin1_to_utf8_safe for one-byte strings in StringBytes::Write UTF-8 path instead of V8's
WriteUtf8V2.

buffer.write(str, 'utf8') 577% faster

benchmark results:

➜  node git:(mert/simdutf-write-utf8) ✗ node-benchmark-compare ./result.csv
                                                                                          confidence improvement accuracy (*)    (**)   (***)
buffers/buffer-from.js n=800000 len=100 source='array'                                                    0.57 %       ±1.29%  ±1.76%  ±2.40%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer-middle'                                       0.40 %       ±3.23%  ±4.42%  ±6.03%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer'                                             -0.22 %       ±2.94%  ±4.09%  ±5.70%
buffers/buffer-from.js n=800000 len=100 source='buffer'                                                  -0.20 %       ±2.55%  ±3.51%  ±4.84%
buffers/buffer-from.js n=800000 len=100 source='object'                                                  -1.26 %       ±3.31%  ±4.65%  ±6.60%
buffers/buffer-from.js n=800000 len=100 source='string-base64'                                           -0.62 %       ±1.37%  ±1.88%  ±2.57%
buffers/buffer-from.js n=800000 len=100 source='string-utf8'                                              1.73 %       ±2.03%  ±2.86%  ±4.08%
buffers/buffer-from.js n=800000 len=100 source='string'                                                   1.13 %       ±1.52%  ±2.09%  ±2.86%
buffers/buffer-from.js n=800000 len=100 source='uint16array'                                              0.54 %       ±1.54%  ±2.12%  ±2.89%
buffers/buffer-from.js n=800000 len=100 source='uint8array'                                              -0.18 %       ±1.62%  ±2.23%  ±3.06%
buffers/buffer-from.js n=800000 len=2048 source='array'                                                   0.86 %       ±3.64%  ±5.03%  ±6.96%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer-middle'                                      0.41 %       ±3.35%  ±4.62%  ±6.36%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer'                                            -5.09 %      ±10.56% ±15.15% ±22.24%
buffers/buffer-from.js n=800000 len=2048 source='buffer'                                          **      1.53 %       ±0.93%  ±1.28%  ±1.75%
buffers/buffer-from.js n=800000 len=2048 source='object'                                                  0.34 %       ±1.59%  ±2.19%  ±3.01%
buffers/buffer-from.js n=800000 len=2048 source='string-base64'                                          -0.41 %       ±0.88%  ±1.21%  ±1.65%
buffers/buffer-from.js n=800000 len=2048 source='string-utf8'                                    ***      5.89 %       ±1.13%  ±1.57%  ±2.17%
buffers/buffer-from.js n=800000 len=2048 source='string'                                         ***      6.34 %       ±1.27%  ±1.74%  ±2.38%
buffers/buffer-from.js n=800000 len=2048 source='uint16array'                                             0.48 %       ±1.03%  ±1.41%  ±1.93%
buffers/buffer-from.js n=800000 len=2048 source='uint8array'                                              0.78 %       ±1.56%  ±2.16%  ±2.98%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='ascii'                                     0.85 %       ±1.38%  ±1.89%  ±2.58%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='latin1'                             *      1.83 %       ±1.66%  ±2.30%  ±3.17%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='utf8'                               *      1.88 %       ±1.60%  ±2.21%  ±3.04%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='ascii'                                    0.18 %       ±1.45%  ±1.99%  ±2.74%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='latin1'                                   7.48 %      ±15.46% ±22.20% ±32.63%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='utf8'                                     4.34 %       ±7.11% ±10.18% ±14.89%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='ascii'                                    1.44 %       ±1.82%  ±2.50%  ±3.42%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='latin1'                                   0.81 %       ±1.28%  ±1.76%  ±2.42%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='utf8'                                     0.43 %       ±2.93%  ±4.03%  ±5.50%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='ascii'                                     0.22 %       ±1.10%  ±1.51%  ±2.07%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='latin1'                                    0.92 %       ±1.86%  ±2.60%  ±3.67%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='utf8'                                      0.41 %       ±2.33%  ±3.20%  ±4.36%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding=''                            ***    577.07 %       ±6.13%  ±8.80% ±12.93%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='ascii'                                1.27 %       ±1.34%  ±1.83%  ±2.50%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='hex'                                 -0.36 %       ±0.59%  ±0.83%  ±1.19%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='latin1'                               0.90 %       ±1.22%  ±1.67%  ±2.30%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf16le'                       *     -1.33 %       ±1.09%  ±1.50%  ±2.05%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf8'                        ***    573.78 %       ±5.59%  ±7.94% ±11.44%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding=''                      ***     12.86 %       ±1.85%  ±2.57%  ±3.59%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='ascii'                         -2.36 %       ±4.06%  ±5.77%  ±8.35%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='hex'                           -0.33 %       ±0.64%  ±0.88%  ±1.21%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='latin1'                         0.67 %       ±1.75%  ±2.40%  ±3.27%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf16le'                       -0.39 %       ±0.97%  ±1.33%  ±1.81%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf8'                           0.12 %      ±10.16% ±14.56% ±21.33%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding=''               ***      9.47 %       ±1.17%  ±1.60%  ±2.18%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='ascii'           **      1.49 %       ±1.01%  ±1.38%  ±1.88%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='hex'                     0.52 %       ±1.73%  ±2.47%  ±3.57%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='latin1'          **      1.91 %       ±1.15%  ±1.60%  ±2.22%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf16le'                 0.45 %       ±1.07%  ±1.47%  ±2.03%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf8'           ***      8.09 %       ±1.04%  ±1.43%  ±1.96%

Be aware that when doing many comparisons the risk of a false-positive result increases.
In this case, there are 50 comparisons, you can thus expect the following amount of false-positive results:
  2.50 false positives, when considering a   5% risk acceptance (*, **, ***),
  0.50 false positives, when considering a   1% risk acceptance (**, ***),
  0.05 false positives, when considering a 0.1% risk acceptance (***)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

CarlosEduR, shrujalshah28, H4ad, and ChALkeR reacted with rocket emoji
All reactions
  • 🚀 4 reactions
@nodejs-github-bot nodejs-github-bot added buffer Issues and PRs related to the buffer subsystem. c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. labels Feb 5, 2026
@mertcanaltin

mertcanaltin commented Feb 5, 2026

Copy link
Copy Markdown
Member Author

@nodejs/performance ❤️

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

anonrig
anonrig approved these changes Feb 5, 2026
View reviewed changes
@anonrig anonrig added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Feb 5, 2026
@anonrig

anonrig commented Feb 5, 2026

Copy link
Copy Markdown
Member

Triggered a benchmark CI run: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1794/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@anonrig anonrig added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Feb 5, 2026
@anonrig
anonrig requested review from addaleax and lemire February 5, 2026 19:18
Qard
Qard approved these changes Feb 5, 2026
View reviewed changes
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Feb 5, 2026
@nodejs-github-bot

nodejs-github-bot commented Feb 5, 2026

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/71211/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

lemire
lemire approved these changes Feb 5, 2026
View reviewed changes
@anonrig anonrig added the commit-queue PRs queued for automated landing through the Commit Queue. label Feb 5, 2026
H4ad
H4ad approved these changes Feb 5, 2026
View reviewed changes
ChALkeR
ChALkeR approved these changes Feb 5, 2026
View reviewed changes

@ChALkeR ChALkeR left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

non-blocking, can go into a follow-up: this logic likely can be improved further or even unified with #61496

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

mertcanaltin reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
gurgunday
gurgunday approved these changes Feb 5, 2026
View reviewed changes

@gurgunday gurgunday left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@codecov

codecov Bot commented Feb 5, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.74%. Comparing base (102cdfe) to head (a6e8753).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #61696      +/-   ##
==========================================
- Coverage   89.76%   89.74%   -0.02%     
==========================================
  Files         674      674              
  Lines      204424   204431       +7     
  Branches    39285    39288       +3     
==========================================
- Hits       183504   183470      -34     
- Misses      13220    13264      +44     
+ Partials     7700     7697       -3     
Files with missing lines Coverage Δ
src/string_bytes.cc 69.66% <100.00%> (+0.65%) ⬆️

... and 45 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.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

addaleax
addaleax approved these changes Feb 6, 2026
View reviewed changes
@anonrig

anonrig commented Feb 6, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

@mertcanaltin Please don't click "merge to main branch" or whatever that button title is, it doesn't work with commit-queue. You have to remove your last commit and keep only the existing commit. Since you also pushed something new, we have to go through the whole process again and rebuild your pull-request.

mertcanaltin reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@mertcanaltin mertcanaltin closed this Feb 6, 2026
@mertcanaltin
mertcanaltin force-pushed the mert/simdutf-write-utf8 branch from 8de635a to c74c73d Compare February 6, 2026 17:30
@mertcanaltin
src: use simdutf for one-byte string UTF-8 write in stringBytes
a6e8753
@mertcanaltin mertcanaltin reopened this Feb 6, 2026
@mertcanaltin

mertcanaltin commented Feb 6, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

sorry. I mistakenly synced the branch. It should be solved now.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

anonrig
anonrig approved these changes Feb 6, 2026
View reviewed changes
@anonrig anonrig added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Feb 6, 2026
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Feb 6, 2026
@nodejs-github-bot

This comment has been minimized.

Sign in to view
@Renegade334

Renegade334 commented Feb 7, 2026

Copy link
Copy Markdown
Member

This would probably be superseded by #61712? (Although the StringBytes change would likely be easier to backport.)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@mertcanaltin

mertcanaltin commented Feb 7, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

Thanks! @Renegade334 I agree with your comment that this optimization solves the issue more effectively at the V8 layer. That said, this PR could still be useful as an easier backport option for older release lines. I'm waiting for other maintainers' comments.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

billywhizz
billywhizz reviewed Feb 7, 2026
View reviewed changes
Comment thread src/string_bytes.cc Resolved

Uh oh!

There was an error while loading. Please reload this page.

addaleax
addaleax approved these changes Feb 7, 2026
View reviewed changes

@addaleax addaleax left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't mind merging this (with the intention of backporting it) and then later reverting it on main once #61712 is available

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Renegade334 reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
Renegade334
Renegade334 approved these changes Feb 7, 2026
View reviewed changes
@nodejs-github-bot

nodejs-github-bot commented Feb 7, 2026

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/71229/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@gurgunday

gurgunday commented Feb 7, 2026

Copy link
Copy Markdown
Member

I like the backport plan

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot nodejs-github-bot added commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. and removed commit-queue PRs queued for automated landing through the Commit Queue. labels Feb 7, 2026
@nodejs-github-bot

nodejs-github-bot commented Feb 7, 2026

Copy link
Copy Markdown
Collaborator
Commit Queue failed
- Loading data for nodejs/node/pull/61696
✔  Done loading data for nodejs/node/pull/61696
----------------------------------- PR info ------------------------------------
Title      src: use simdutf for one-byte string UTF-8 write in stringBytes (#61696)
Author     Mert Can Altin <[email protected]> (@mertcanaltin)
Branch     mertcanaltin:mert/simdutf-write-utf8 -> nodejs:main
Labels     buffer, c++, author ready, needs-ci
Commits    1
 - src: use simdutf for one-byte string UTF-8 write in stringBytes
Committers 1
 - Mert Can Altin <[email protected]>
PR-URL: https://github.com/nodejs/node/pull/61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Thu, 05 Feb 2026 19:11:13 GMT
   ✔  Approvals: 8
   ✔  - Yagiz Nizipli (@anonrig) (TSC): https://github.com/nodejs/node/pull/61696#pullrequestreview-3764386119
   ✔  - Stephen Belanger (@Qard): https://github.com/nodejs/node/pull/61696#pullrequestreview-3758974723
   ✔  - Daniel Lemire (@lemire): https://github.com/nodejs/node/pull/61696#pullrequestreview-3759154723
   ✔  - Vinícius Lourenço Claro Cardoso (@H4ad): https://github.com/nodejs/node/pull/61696#pullrequestreview-3759180179
   ✔  - Сковорода Никита Андреевич (@ChALkeR): https://github.com/nodejs/node/pull/61696#pullrequestreview-3759185771
   ✔  - Gürgün Dayıoğlu (@gurgunday): https://github.com/nodejs/node/pull/61696#pullrequestreview-3759188442
   ✔  - Anna Henningsen (@addaleax): https://github.com/nodejs/node/pull/61696#pullrequestreview-3767062000
   ✔  - René (@Renegade334): https://github.com/nodejs/node/pull/61696#pullrequestreview-3767064889
   ✘  Last GitHub CI failed
   ℹ  Last Benchmark CI on 2026-02-05T19:18:39Z: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1794/
   ℹ  Last Full PR CI on 2026-02-07T13:32:20Z: https://ci.nodejs.org/job/node-test-pull-request/71229/
- Querying data for job/node-test-pull-request/71229/
✔  Build data downloaded
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu
https://github.com/nodejs/node/actions/runs/21785408042
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@anonrig anonrig added commit-queue PRs queued for automated landing through the Commit Queue. and removed commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. labels Feb 7, 2026
@nodejs-github-bot nodejs-github-bot added commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. and removed commit-queue PRs queued for automated landing through the Commit Queue. labels Feb 7, 2026
@nodejs-github-bot

nodejs-github-bot commented Feb 7, 2026

Copy link
Copy Markdown
Collaborator
Commit Queue failed
- Loading data for nodejs/node/pull/61696
✔  Done loading data for nodejs/node/pull/61696
----------------------------------- PR info ------------------------------------
Title      src: use simdutf for one-byte string UTF-8 write in stringBytes (#61696)
Author     Mert Can Altin <[email protected]> (@mertcanaltin)
Branch     mertcanaltin:mert/simdutf-write-utf8 -> nodejs:main
Labels     buffer, c++, author ready, needs-ci
Commits    1
 - src: use simdutf for one-byte string UTF-8 write in stringBytes
Committers 1
 - Mert Can Altin <[email protected]>
PR-URL: https://github.com/nodejs/node/pull/61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Thu, 05 Feb 2026 19:11:13 GMT
   ✔  Approvals: 8
   ✔  - Yagiz Nizipli (@anonrig) (TSC): https://github.com/nodejs/node/pull/61696#pullrequestreview-3764386119
   ✔  - Stephen Belanger (@Qard): https://github.com/nodejs/node/pull/61696#pullrequestreview-3758974723
   ✔  - Daniel Lemire (@lemire): https://github.com/nodejs/node/pull/61696#pullrequestreview-3759154723
   ✔  - Vinícius Lourenço Claro Cardoso (@H4ad): https://github.com/nodejs/node/pull/61696#pullrequestreview-3759180179
   ✔  - Сковорода Никита Андреевич (@ChALkeR): https://github.com/nodejs/node/pull/61696#pullrequestreview-3759185771
   ✔  - Gürgün Dayıoğlu (@gurgunday): https://github.com/nodejs/node/pull/61696#pullrequestreview-3759188442
   ✔  - Anna Henningsen (@addaleax): https://github.com/nodejs/node/pull/61696#pullrequestreview-3767062000
   ✔  - René (@Renegade334): https://github.com/nodejs/node/pull/61696#pullrequestreview-3767064889
   ✘  Last GitHub CI failed
   ℹ  Last Benchmark CI on 2026-02-07T19:14:26Z: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1794/
   ℹ  Last Full PR CI on 2026-02-07T19:14:26Z: https://ci.nodejs.org/job/node-test-pull-request/71229/
- Querying data for job/node-test-pull-request/1794/
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu
https://github.com/nodejs/node/actions/runs/21785918980
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Renegade334

Renegade334 commented Feb 7, 2026

Copy link
Copy Markdown
Member

The last set of actions were cursed by the GHA outage.

mertcanaltin reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Renegade334 pushed a commit that referenced this pull request Feb 7, 2026
@mertcanaltin @Renegade334
src: use simdutf for one-byte string UTF-8 write in stringBytes
28979fb
PR-URL: #61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
@Renegade334

Renegade334 commented Feb 7, 2026

Copy link
Copy Markdown
Member

Landed in 28979fb

mertcanaltin reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Renegade334 Renegade334 closed this Feb 7, 2026
aduh95 pushed a commit that referenced this pull request Feb 8, 2026
@mertcanaltin @aduh95
src: use simdutf for one-byte string UTF-8 write in stringBytes
c4ecfef
PR-URL: #61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
@github-actions github-actions Bot mentioned this pull request Feb 8, 2026
2026-02-10, Version 25.6.1 (Current) #61739
Merged
aduh95 pushed a commit that referenced this pull request Feb 10, 2026
@mertcanaltin @aduh95
src: use simdutf for one-byte string UTF-8 write in stringBytes
1343a40
PR-URL: #61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 11, 2026
ECG Bot
build(deps): update node to v25.6.1
9e12cb1
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | patch | `25.6.0` → `25.6.1` |

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>

### [`v25.6.1`](https://github.com/nodejs/node/releases/tag/v25.6.1): 2026-02-10, Version 25.6.1 (Current), @&#8203;aduh95

[Compare Source](nodejs/node@v25.6.0...v25.6.1)

##### Notable Changes

- \[[`47df4328d7`](nodejs/node@47df4328d7)] - **build,deps**: replace `cjs-module-lexer` with `merve` (Yagiz Nizipli) [#&#8203;61456](nodejs/node#61456)

##### Commits

- \[[`47df4328d7`](nodejs/node@47df4328d7)] - **build,deps**: replace cjs-module-lexer with merve (Yagiz Nizipli) [#&#8203;61456](nodejs/node#61456)
- \[[`a727054503`](nodejs/node@a727054503)] - **deps**: upgrade npm to 11.9.0 (npm team) [#&#8203;61685](nodejs/node#61685)
- \[[`c78c49ed6b`](nodejs/node@c78c49ed6b)] - **deps**: update amaro to 1.1.7 (Node.js GitHub Bot) [#&#8203;61730](nodejs/node#61730)
- \[[`4790816d9b`](nodejs/node@4790816d9b)] - **deps**: update minimatch to 10.1.2 (Node.js GitHub Bot) [#&#8203;61732](nodejs/node#61732)
- \[[`8c71740e8a`](nodejs/node@8c71740e8a)] - **deps**: update undici to 7.21.0 (Node.js GitHub Bot) [#&#8203;61683](nodejs/node#61683)
- \[[`e559ef6ab1`](nodejs/node@e559ef6ab1)] - **deps**: update googletest to [`56efe39`](nodejs/node@56efe39) (Node.js GitHub Bot) [#&#8203;61605](nodejs/node#61605)
- \[[`300de2bb5a`](nodejs/node@300de2bb5a)] - **deps**: update amaro to 1.1.6 (Node.js GitHub Bot) [#&#8203;61603](nodejs/node#61603)
- \[[`e71e9505ef`](nodejs/node@e71e9505ef)] - **dns**: fix Windows SRV ECONNREFUSED by adjusting c-ares fallback detection (notvivek12) [#&#8203;61453](nodejs/node#61453)
- \[[`439b816bc7`](nodejs/node@439b816bc7)] - **doc**: clarify EventEmitter error handling in threat model (Matteo Collina) [#&#8203;61701](nodejs/node#61701)
- \[[`c1c6641f23`](nodejs/node@c1c6641f23)] - **doc**: mention default option for test runner env (Steven) [#&#8203;61659](nodejs/node#61659)
- \[[`41ec451f98`](nodejs/node@41ec451f98)] - **doc**: fix --inspect security warning section (Tim Perry) [#&#8203;61675](nodejs/node#61675)
- \[[`bb90ef2356`](nodejs/node@bb90ef2356)] - **doc**: document `url.format(urlString)` as deprecated under DEP0169 (René) [#&#8203;61644](nodejs/node#61644)
- \[[`513df82e6f`](nodejs/node@513df82e6f)] - **doc**: update to Visual Studio 2026 manual install (Mike McCready) [#&#8203;61655](nodejs/node#61655)
- \[[`9409d30736`](nodejs/node@9409d30736)] - **doc**: deprecation add more codemod (Augustin Mauroy) [#&#8203;61642](nodejs/node#61642)
- \[[`75a7a67151`](nodejs/node@75a7a67151)] - **doc**: fix grammatical error in README.md (ayj8201) [#&#8203;61653](nodejs/node#61653)
- \[[`821e59e884`](nodejs/node@821e59e884)] - **doc**: correct tools README Boxstarter link (Mike McCready) [#&#8203;61638](nodejs/node#61638)
- \[[`4998f539a0`](nodejs/node@4998f539a0)] - **doc**: update `server.dropMaxConnection` link (YuSheng Chen) [#&#8203;61584](nodejs/node#61584)
- \[[`9383ac4ab7`](nodejs/node@9383ac4ab7)] - **http**: implement slab allocation for HTTP header parsing (Mert Can Altin) [#&#8203;61375](nodejs/node#61375)
- \[[`e90eb1d561`](nodejs/node@e90eb1d561)] - **meta**: persist sccache daemon until end of build workflows (René) [#&#8203;61639](nodejs/node#61639)
- \[[`ade36ac367`](nodejs/node@ade36ac367)] - **meta**: bump github/codeql-action from 4.31.9 to 4.32.0 (dependabot\[bot]) [#&#8203;61622](nodejs/node#61622)
- \[[`26638bd67f`](nodejs/node@26638bd67f)] - **meta**: bump step-security/harden-runner from 2.14.0 to 2.14.1 (dependabot\[bot]) [#&#8203;61621](nodejs/node#61621)
- \[[`eaa9a96cb6`](nodejs/node@eaa9a96cb6)] - **meta**: bump actions/setup-python from 6.1.0 to 6.2.0 (dependabot\[bot]) [#&#8203;61627](nodejs/node#61627)
- \[[`fd98187828`](nodejs/node@fd98187828)] - **meta**: bump cachix/cachix-action (dependabot\[bot]) [#&#8203;61626](nodejs/node#61626)
- \[[`820c1d021c`](nodejs/node@820c1d021c)] - **meta**: bump actions/setup-node from 6.1.0 to 6.2.0 (dependabot\[bot]) [#&#8203;61625](nodejs/node#61625)
- \[[`72a4136bd5`](nodejs/node@72a4136bd5)] - **meta**: bump actions/cache from 5.0.1 to 5.0.3 (dependabot\[bot]) [#&#8203;61624](nodejs/node#61624)
- \[[`e3ef6cb3bc`](nodejs/node@e3ef6cb3bc)] - **meta**: bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (dependabot\[bot]) [#&#8203;61623](nodejs/node#61623)
- \[[`020a836202`](nodejs/node@020a836202)] - **meta**: bump actions/stale from 10.1.0 to 10.1.1 (dependabot\[bot]) [#&#8203;61620](nodejs/node#61620)
- \[[`0df72f07c8`](nodejs/node@0df72f07c8)] - **meta**: bump actions/checkout from 6.0.1 to 6.0.2 (dependabot\[bot]) [#&#8203;61619](nodejs/node#61619)
- \[[`d147c08b83`](nodejs/node@d147c08b83)] - **module**: do not invoke resolve hooks twice for imported cjs (Joyee Cheung) [#&#8203;61529](nodejs/node#61529)
- \[[`a2843f8556`](nodejs/node@a2843f8556)] - **net**: defer synchronous destroy calls in internalConnect (RajeshKumar11) [#&#8203;61658](nodejs/node#61658)
- \[[`7fb7030781`](nodejs/node@7fb7030781)] - **repl**: fix flaky test-repl-programmatic-history (Matteo Collina) [#&#8203;61614](nodejs/node#61614)
- \[[`d4c9b5cf5b`](nodejs/node@d4c9b5cf5b)] - **sqlite**: avoid extra copy for large text binds (Ali Hassan) [#&#8203;61580](nodejs/node#61580)
- \[[`aa1b3661d9`](nodejs/node@aa1b3661d9)] - **sqlite**: use DictionaryTemplate for run() result (Mert Can Altin) [#&#8203;61432](nodejs/node#61432)
- \[[`9c8ad7e881`](nodejs/node@9c8ad7e881)] - **src**: elide heap allocation in structured clone implementation (Anna Henningsen) [#&#8203;61703](nodejs/node#61703)
- \[[`c4ecfef93d`](nodejs/node@c4ecfef93d)] - **src**: use simdutf for one-byte string UTF-8 write in stringBytes (Mert Can Altin) [#&#8203;61696](nodejs/node#61696)
- \[[`28905b9734`](nodejs/node@28905b9734)] - **src**: consolidate C++ ReadFileSync/WriteFileSync utilities (Joyee Cheung) [#&#8203;61662](nodejs/node#61662)
- \[[`e90cec2f69`](nodejs/node@e90cec2f69)] - **test**: restraint version replacement pattern in snapshots (Chengzhong Wu) [#&#8203;61748](nodejs/node#61748)
- \[[`adce20c0a1`](nodejs/node@adce20c0a1)] - **test**: print stack immediately avoiding GC interleaving (Chengzhong Wu) [#&#8203;61699](nodejs/node#61699)
- \[[`7643bc8999`](nodejs/node@7643bc8999)] - **test**: fix case-insensitive path matching on Windows (Matteo Collina) [#&#8203;61682](nodejs/node#61682)
- \[[`23d1ecf66f`](nodejs/node@23d1ecf66f)] - **test**: fix flaky test-performance-eventloopdelay (Matteo Collina) [#&#8203;61629](nodejs/node#61629)
- \[[`99012a88ed`](nodejs/node@99012a88ed)] - **test**: remove duplicate wpt tests (Filip Skokan) [#&#8203;61617](nodejs/node#61617)
- \[[`a8b32b8ce1`](nodejs/node@a8b32b8ce1)] - **test**: fix race condition in watch mode tests (Matteo Collina) [#&#8203;61615](nodejs/node#61615)
- \[[`086a5a5a25`](nodejs/node@086a5a5a25)] - **test**: update WPT for url to [`e3c46fd`](nodejs/node@e3c46fdf55) (Node.js GitHub Bot) [#&#8203;61602](nodejs/node#61602)
- \[[`f0574fd419`](nodejs/node@f0574fd419)] - **test**: use the skipIfNoWatch() utility function (Luigi Pinca) [#&#8203;61531](nodejs/node#61531)
- \[[`b064ddc221`](nodejs/node@b064ddc221)] - **test**: unify assertSnapshot common patterns (Chengzhong Wu) [#&#8203;61590](nodejs/node#61590)
- \[[`17122e521b`](nodejs/node@17122e521b)] - **test\_runner**: fix test enqueue when test file has syntax error (Edy Silva) [#&#8203;61573](nodejs/node#61573)
- \[[`bad3f02dd9`](nodejs/node@bad3f02dd9)] - **tools**: enforce removal of `lts-watch-*` labels on release proposals (Antoine du Hamel) [#&#8203;61672](nodejs/node#61672)
- \[[`a8f33fd6bd`](nodejs/node@a8f33fd6bd)] - **tools**: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) [#&#8203;61663](nodejs/node#61663)
- \[[`c843e447ca`](nodejs/node@c843e447ca)] - **tools**: test `--shared-merve` in `test-shared` workflow (Antoine du Hamel) [#&#8203;61649](nodejs/node#61649)
- \[[`2fedc03f96`](nodejs/node@2fedc03f96)] - **tools**: update OpenSSL to 3.5.5 in `test-shared` (Antoine du Hamel) [#&#8203;61551](nodejs/node#61551)
- \[[`1c1db94670`](nodejs/node@1c1db94670)] - **tools,win**: upgrade install additional tools to Visual Studio 2026 (Mike McCready) [#&#8203;61562](nodejs/node#61562)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Ny4wIiwidXBkYXRlZEluVmVyIjoiNDIuOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6OnBhdGNoIl19-->
aduh95 pushed a commit that referenced this pull request Feb 14, 2026
@mertcanaltin @aduh95
src: use simdutf for one-byte string UTF-8 write in stringBytes
0958855
PR-URL: #61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
@github-actions github-actions Bot mentioned this pull request Feb 22, 2026
2026-02-24, Version 24.14.0 'Krypton' (LTS) #61924
Merged
aduh95 pushed a commit that referenced this pull request Feb 22, 2026
@mertcanaltin @aduh95
src: use simdutf for one-byte string UTF-8 write in stringBytes
db478c4
PR-URL: #61696
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Daniel Lemire <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: René <[email protected]>
@mertcanaltin mertcanaltin mentioned this pull request Mar 14, 2026
src: use simdutf for two-byte string utf8 conversion in utf8 value #62248
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@Qard Qard Qard approved these changes
@ChALkeR ChALkeR ChALkeR approved these changes
@lemire lemire lemire approved these changes
@addaleax addaleax addaleax approved these changes
@anonrig anonrig anonrig approved these changes
@Renegade334 Renegade334 Renegade334 approved these changes
@H4ad H4ad H4ad approved these changes
@gurgunday gurgunday gurgunday approved these changes
+1 more reviewer
@billywhizz billywhizz billywhizz left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. buffer Issues and PRs related to the buffer subsystem. c++ Issues and PRs that require attention from people who are familiar with C++. commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. needs-ci PRs that need a full CI run.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

11 participants

@mertcanaltin @anonrig @nodejs-github-bot @Renegade334 @gurgunday @billywhizz @Qard @ChALkeR @lemire @addaleax @H4ad
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.