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.
This PR contains the following updates:
20.7.0
->20.8.0
Release Notes
nodejs/node (node)
v20.8.0
: 2023-09-28, Version 20.8.0 (Current), @ruyadornoCompare Source
Notable Changes
Stream performance improvements
Performance improvements to writable and readable streams, improving the creation and destruction by ±15% and reducing the memory overhead each stream takes in Node.js
Contributed by Benjamin Gruenbaum in #49745 and Raz Luvaton in #49834.
Performance improvements for readable webstream, improving readable stream async iterator consumption by ±140% and improving readable stream
pipeTo
consumption by ±60%Contributed by Raz Luvaton in #49662 and #49690.
Rework of memory management in
vm
APIs with theimportModuleDynamically
optionThis rework addressed a series of long-standing memory leaks and use-after-free issues in the following APIs that support
importModuleDynamically
:vm.Script
vm.compileFunction
vm.SyntheticModule
vm.SourceTextModule
This should enable affected users (in particular Jest users) to upgrade from older versions of Node.js.
Contributed by Joyee Cheung in #48510.
Other notable changes
32d4d29d02
] - deps: add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung) #498740e686d096b
] - doc: deprecatefs.F_OK
,fs.R_OK
,fs.W_OK
,fs.X_OK
(Livia Medeiros) #49683a5dd057540
] - doc: deprecateutil.toUSVString
(Yagiz Nizipli) #497257b6a73172f
] - doc: deprecate callingpromisify
on a function that returns a promise (Antoine du Hamel) #496471beefd5f16
] - esm: set all hooks as release candidate (Geoffrey Booth) #49597b0ce78a75b
] - module: fix the leak in SourceTextModule and ContextifySript (Joyee Cheung) #485104e578f8ab1
] - module: fix leak of vm.SyntheticModule (Joyee Cheung) #4851069e4218772
] - module: use symbol in WeakMap to manage host defined options (Joyee Cheung) #4851014ece0aa76
] - (SEMVER-MINOR) src: allow embedders to override NODE_MODULE_VERSION (Cheng Zhao) #492799fd67fbff0
] - stream: use bitmap in writable state (Raz Luvaton) #498340ccd4638ac
] - stream: use bitmap in readable state (Benjamin Gruenbaum) #497457c5e322346
] - stream: improve webstream readable async iterator performance (Raz Luvaton) #4966280b342cc38
] - (SEMVER-MINOR) test_runner: accepttestOnly
inrun
(Moshe Atlow) #4975317a05b141d
] - (SEMVER-MINOR) test_runner: add junit reporter (Moshe Atlow) #49614Commits
4879e3fbbe
] - benchmark: add a benchmark for read() of ReadableStreams (Debadree Chatterjee) #4962278a6c73157
] - benchmark: shorten pipe-to by reducing number of chunks (Raz Luvaton) #495774126a6e4c9
] - benchmark: fix webstream pipe-to (Raz Luvaton) #495526010a91825
] - bootstrap: do not expand argv1 for snapshots (Joyee Cheung) #495068480280c4b
] - bootstrap: only use the isolate snapshot when compiling code cache (Joyee Cheung) #49288b30754aa87
] - build: run embedtest using node executable (Joyee Cheung) #4950631db0b8e2b
] - build: add --write-snapshot-as-array-literals to configure.py (Joyee Cheung) #493126fcb51d3ba
] - debugger: useinternal/url.URL
instead ofurl.parse
(LiviaMedeiros) #4959032d4d29d02
] - deps: add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung) #49874ad37cadc3f
] - deps: V8: backportde9a5de
(Joyee Cheung) #49703cdd1c66222
] - deps: V8: cherry-pickb33bf2d
(Joyee Cheung) #4970361d18d6473
] - deps: update undici to 5.24.0 (Node.js GitHub Bot) #49559b8a4fef393
] - deps: remove pthread-fixes.c from uv.gyp (Ben Noordhuis) #497446c86c0683c
] - deps: update googletest tod1467f5
(Node.js GitHub Bot) #496761424404742
] - deps: update nghttp2 to 1.56.0 (Node.js GitHub Bot) #4958215b54ff95d
] - deps: update googletest to8a6feab
(Node.js GitHub Bot) #494632ceab877c2
] - deps: update corepack to 0.20.0 (Node.js GitHub Bot) #494644814872ddc
] - doc: fixDEP0176
number (LiviaMedeiros) #498580e686d096b
] - doc: deprecatefs.F_OK
,fs.R_OK
,fs.W_OK
,fs.X_OK
(Livia Medeiros) #496835877c403a2
] - doc: add mertcanaltin as a triager (mert.altin) #49826864fe56432
] - doc: addgit node backport
way to the backporting guide (Raz Luvaton) #49760e0f93492d5
] - doc: improve documentation about ICU data fallback (Joyee Cheung) #49666a5dd057540
] - doc: deprecateutil.toUSVString
(Yagiz Nizipli) #49725774c1cfd52
] - doc: add missing function call to example forutil.promisify
(Jungku Lee) #49719fe78a34845
] - doc: update output of example inmimeParams.set()
(Deokjin Kim) #497184175ea33bd
] - doc: add missedinspect
with numericSeparator to example (Deokjin Kim) #497173a88571972
] - doc: fix history comments (Antoine du Hamel) #49701db4ab1ccbb
] - doc: add missing history info forimport.meta.resolve
(Antoine du Hamel) #49700a304d1ee19
] - doc: link maintaining deps to pull-request.md (Marco Ippolito) #4971635294486ad
] - doc: fix print results inevents
(Jungku Lee) #495489f0b0e15c9
] - doc: alphabetize cli.md sections (Geoffrey Booth) #496687b6a73172f
] - doc: deprecate callingpromisify
on a function that returns a promise (Antoine du Hamel) #49647d316b32fff
] - doc: updatecorepack.md
to account for 0.20.0 changes (Antoine du Hamel) #49486c2eac7dc7c
] - doc: remove@anonrig
from performance initiative (Yagiz Nizipli) #496413d839fbf87
] - doc: mark Node.js 16 as End-of-Life (Richard Lau) #4965153fb5aead8
] - doc: save user preference for JS flavor (Vidar Eldøy) #49526e3594d5658
] - doc: update documentation for node:process warning (Shubham Pandey) #495178e033c3963
] - doc: rename possibly confusing variable and CSS class (Antoine du Hamel) #49536d0e0eb4bb3
] - doc: update outdated history info (Antoine du Hamel) #49530b4724e2e3a
] - doc: close a parenthesis (Sébastien Règne) #495250471c5798e
] - doc: cast GetInternalField() return type to v8::Value in addons.md (Joyee Cheung) #494399f8bea3dda
] - doc: fix documentation for input option in child_process (Ariel Weiss) #49481f3fea92f8a
] - doc: fix missing imports intest.run
code examples (Oshri Asulin) #49489e426b77b67
] - doc: fix documentation for fs.createWriteStream highWaterMark option (Mert Can Altın) #494562b119108ff
] - doc: updated releasers instructions for node.js website (Claudio W) #49427b9d4a80183
] - doc: editimport.meta.resolve
documentation (Antoine du Hamel) #49247f67433f666
] - doc,tools: switch to@node-core/utils
(Michaël Zasso) #49851142e256fc5
] - errors: improve classRegExp in errors.js (Uzlopak) #496436377f1bce2
] - errors: usedetermineSpecificType
in more error messages (Antoine du Hamel) #4958005f0fcb4c4
] - esm: identify parent importing a url with invalid host (Jacob Smith) #497368a6f5fb8f3
] - esm: fix return type ofimport.meta.resolve
(Antoine du Hamel) #49698a6140f1b8c
] - esm: update loaders warning (Geoffrey Booth) #49633521a9327e0
] - esm: fix support forURL
instances inregister
(Antoine du Hamel) #496553a9ea0925a
] - esm: clarify ERR_REQUIRE_ESM errors (Daniel Compton) #495211beefd5f16
] - esm: set all hooks as release candidate (Geoffrey Booth) #49597be48267888
] - esm: remove return value forModule.register
(Antoine du Hamel) #49529e74a075124
] - esm: refactor test-esm-loader-resolve-type (Geoffrey Booth) #4949317823b3533
] - esm: refactor test-esm-named-exports (Geoffrey Booth) #49493f34bd15ac1
] - esm: refactor mocking test (Geoffrey Booth) #49465ec323bbd99
] - fs: replaceSetMethodNoSideEffect
in node_file (CanadaHonk) #498576acf800123
] - fs: improve error performance forunlinkSync
(CanadaHonk) #4985631702c9403
] - fs: improvereadFileSync
with file descriptors (Yagiz Nizipli) #49691835f9fe7b9
] - fs: fix file descriptor validator (Yagiz Nizipli) #49752b618fe262f
] - fs: improve error performance ofopendirSync
(Yagiz Nizipli) #49705938471ef55
] - fs: improve error performance of sync methods (Yagiz Nizipli) #49593db3fc6d087
] - fs: fix readdir and opendir recursive with unknown file types (William Marlow) #496030f020ed22d
] - gyp: put cctest filenames in variables (Cheng Zhao) #491780ce1e94d12
] - lib: update encoding sets inWHATWG API
(Jungku Lee) #49610efd6815a7a
] - lib: fixinternalBinding
typings (Yagiz Nizipli) #497421287d5b74e
] - lib: allow byob reader for 'blob.stream()' (Debadree Chatterjee) #49713bbc710522d
] - lib: reset the cwd cache before execution (Maël Nison) #49684f62d649e4d
] - lib: use internalfileURLToPath
(Deokjin Kim) #49558e515046941
] - lib: use internalpathToFileURL
(Livia Medeiros) #4955300608e8070
] - lib: check SharedArrayBuffer availability in freeze_intrinsics.js (Milan Burda) #494828bfbe7079c
] - meta: fix linter error (Antoine du Hamel) #4975558f7a9e096
] - meta: add primordials strategic initiative (Benjamin Gruenbaum) #497065366027756
] - meta: bump github/codeql-action from 2.21.2 to 2.21.5 (dependabot[bot]) #49438fe26b74082
] - meta: bump rtCamp/action-slack-notify from 2.2.0 to 2.2.1 (dependabot[bot]) #49437b0ce78a75b
] - module: fix the leak in SourceTextModule and ContextifySript (Joyee Cheung) #485104e578f8ab1
] - module: fix leak of vm.SyntheticModule (Joyee Cheung) #4851069e4218772
] - module: use symbol in WeakMap to manage host defined options (Joyee Cheung) #4851096874e8fbc
] - node-api: enable uncaught exceptions policy by default (Chengzhong Wu) #49313b931aeadfd
] - perf_hooks: reduce overhead of new performance_entries (Vinicius Lourenço) #49803ad043bac31
] - process: add custom dir support for heapsnapshot-signal (Jithil P Ponnan) #478548a7c10194c
] - repl: don't accumulate excess indentation in .load (Daniel X Moore) #4946110a2adeed5
] - src: improve error message when ICU data cannot be initialized (Joyee Cheung) #49666ce37688bac
] - src: remove unnecessary todo (Rafael Gonzaga) #49227f611583b71
] - src: use SNAPSHOT_SERDES to log snapshot ser/deserialization (Joyee Cheung) #49637a597cb8457
] - src: port Pipe to uv_pipe_bind2, uv_pipe_connect2 (Geoff Goodman) #49667fb21062338
] - src: set --rehash-snapshot explicitly (Joyee Cheung) #4955614ece0aa76
] - (SEMVER-MINOR) src: allow embedders to override NODE_MODULE_VERSION (Cheng Zhao) #492794b5e23c71b
] - src: set ModuleWrap internal fields only once (Joyee Cheung) #493912d3f5c7cab
] - src: fix fs_type_to_name default value (Mustafa Ateş Uzun) #49239cfbcb1059c
] - src: fix comment on StreamResource (rogertyang) #4919339fb83ad16
] - src: do not rely on the internal field being default to undefined (Joyee Cheung) #494139fd67fbff0
] - stream: use bitmap in writable state (Raz Luvaton) #498340ccd4638ac
] - stream: use bitmap in readable state (Benjamin Gruenbaum) #49745b29d927010
] - stream: improve readable webstreampipeTo
(Raz Luvaton) #496907c5e322346
] - stream: improve webstream readable async iterator performance (Raz Luvaton) #49662be211ef818
] - test: deflake test-vm-contextified-script-leak (Joyee Cheung) #49710355f10dab2
] - test: use checkIfCollectable in vm leak tests (Joyee Cheung) #4967117cfc531aa
] - test: add checkIfCollectable to test/common/gc.js (Joyee Cheung) #49671e49a573752
] - test: add os setPriority, getPriority test coverage (Wael) #387715f02711522
] - test: deflake test-runner-output (Moshe Atlow) #49878cd9754d6a7
] - test: mark test-runner-output as flaky (Joyee Cheung) #498545ad00424dd
] - test: use mustSucceed instead of mustCall (SiddharthDevulapalli) #497883db9b40081
] - test: refactor test-readline-async-iterators into a benchmark (Shubham Pandey) #492372cc5ad7859
] - Revert "test: mark test-http-regr-gh-2928 as flaky" (Luigi Pinca) #49708e5185b053c
] - test: usefs.constants
forfs.access
constants (Livia Medeiros) #49685b9e5b43462
] - test: deflake test-http-regr-gh-2928 (Luigi Pinca) #495741fffda504e
] - test: fix argument computation in embedtest (Joyee Cheung) #495066e56f2db52
] - test: skip test-child-process-stdio-reuse-readable-stdio on Windows (Joyee Cheung) #49621ab3afb330d
] - test: mark test-runner-watch-mode as flaky (Joyee Cheung) #49627185d9b50db
] - test: deflake test-tls-socket-close (Luigi Pinca) #49575c70c74a9e6
] - test: show more info on failure in test-cli-syntax-require.js (Joyee Cheung) #49561ed7c6d1114
] - test: mark test-http-regr-gh-2928 as flaky (Joyee Cheung) #495653599eebab9
] - test: use spawnSyncAndExitWithoutError in sea tests (Joyee Cheung) #49543f79b153e89
] - test: use spawnSyncAndExitWithoutError in test/common/sea.js (Joyee Cheung) #49543c079c73769
] - test: use setImmediate() in test-heapdump-shadowrealm.js (Joyee Cheung) #49573667a92493c
] - test: skip test-child-process-pipe-dataflow.js on Windows (Joyee Cheung) #4956391af0a9a3c
] - Revert "test: ignore the copied entry_point.c" (Chengzhong Wu) #49515567afc71b8
] - test: avoid copying test source files (Chengzhong Wu) #49515ced25a976d
] - test: increase coverage ofModule.register
andinitialize
hook (Antoine du Hamel) #49532be02fbdb8a
] - test: isolateglobalPreload
tests (Geoffrey Booth) #49545f214428845
] - test: split test-crypto-dh to avoid timeout on slow machines in the CI (Joyee Cheung) #494923987094569
] - test: maketest-dotenv-node-options
locale-independent (Livia Medeiros) #4947034c1741792
] - test: add test for urlstrings usage innode:fs
(Livia Medeiros) #49471c3c6c4f007
] - test: make test-worker-prof more robust (Joyee Cheung) #49274843df1a4da
] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #4971480b342cc38
] - (SEMVER-MINOR) test_runner: accepttestOnly
inrun
(Moshe Atlow) #4975376865515b9
] - test_runner: fix test runner watch mode when no positional arguments (Moshe Atlow) #4957817a05b141d
] - (SEMVER-MINOR) test_runner: add junit reporter (Moshe Atlow) #496145672e38457
] - test_runner: add jsdocs to mock.js (Caio Borghi) #49555b4d42a8f2b
] - test_runner: fix invalid timer call (Erick Wendel) #49477f755e6786b
] - test_runner: add jsdocs to MockTimers (Erick Wendel) #49476e7285d4bf0
] - test_runner: fix typescript coverage (Moshe Atlow) #4940607a2e29bf3
] - tools: support updating @reporters/github manually (Moshe Atlow) #498715ac6722031
] - tools: skip ruff on tools/node_modules (Moshe Atlow) #49838462228bd24
] - tools: fix uvwasi updater (Michael Dawson) #49682ff81bfb958
] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #4967908ffc6344c
] - tools: restrict internal code from using publicurl
module (LiviaMedeiros) #49590728ebf6c97
] - tools: update eslint to 8.49.0 (Node.js GitHub Bot) #4958620d038ffb1
] - tools: update lint-md-dependencies to [email protected] [email protected] (Node.js GitHub Bot) #49584210c15bd12
] - tools: allow passing absolute path of config.gypi in js2c (Cheng Zhao) #49162e341efe173
] - tools: configure never-stale label correctly (Michaël Zasso) #49498a8a8a498ce
] - tools: update doc dependencies (Node.js GitHub Bot) #49467ac06607f9e
] - typings: fix missing property inExportedHooks
(Antoine du Hamel) #49567097b59807a
] - url: improve invalid url performance (Yagiz Nizipli) #496927c2060cfac
] - util: addgetCwdSafe
internal util fn (João Lenon) #48434c23c60f545
] - zlib: disable CRC32 SIMD optimization (Luigi Pinca) #49511Configuration
📅 Schedule: Branch creation - "every weekend" in timezone Asia/Tokyo, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.