Skip to content
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

v18.16.0 release proposal #47502

Merged
merged 254 commits into from
Apr 13, 2023
Merged

v18.16.0 release proposal #47502

merged 254 commits into from
Apr 13, 2023

Conversation

danielleadams
Copy link
Contributor

@danielleadams danielleadams commented Apr 11, 2023

2023-04-12, Version 18.16.0 'Hydrogen' (LTS), @danielleadams

Notable changes

Add initial support for single executable applications

Compile a JavaScript file into a single executable application:

$ echo 'console.log(`Hello, ${process.argv[2]}!`);' > hello.js

$ cp $(command -v node) hello

# On systems other than macOS:
$ npx postject hello NODE_JS_CODE hello.js \
    --sentinel-fuse NODE_JS_FUSE_fce680ab2cc467b6e072b8b5df1996b2

# On macOS:
$ npx postject hello NODE_JS_CODE hello.js \
    --sentinel-fuse NODE_JS_FUSE_fce680ab2cc467b6e072b8b5df1996b2 \
    --macho-segment-name NODE_JS

$ ./hello world
Hello, world!

Contributed by Darshan Sen in #45038

Replace url parser with Ada

Node.js gets a new URL parser called Ada that is compliant with the WHATWG URL Specification and provides more than 100% performance improvement to the existing implementation.

Contributed by Yagiz Nizipli in #46410

Other notable changes

  • buffer:
    • (SEMVER-MINOR) add Buffer.copyBytesFrom(...) (James M Snell) #46500
  • doc:
    • add marco-ippolito to collaborators (Marco Ippolito) #46816
    • add debadree25 to collaborators (Debadree Chatterjee) #46716
    • add deokjinkim to collaborators (Deokjin Kim) #46444
  • events:
    • (SEMVER-MINOR) add listener argument to listenerCount (Paolo Insogna) #46523
  • lib:
    • (SEMVER-MINOR) add AsyncLocalStorage.bind() and .snapshot() (flakey5) #46387
    • (SEMVER-MINOR) add aborted() utility function (Debadree Chatterjee) #46494
  • src:
    • (SEMVER-MINOR) allow optional Isolate termination in node::Stop() (Shelley Vohr) #46583
    • (SEMVER-MINOR) allow embedder control of code generation policy (Shelley Vohr) #46368
  • stream:
    • (SEMVER-MINOR) add abort signal for ReadableStream and WritableStream (Debadree Chatterjee) #46273
  • tls:
    • (SEMVER-MINOR) support automatic DHE (Tobias Nießen) #46978
  • url:
    • (SEMVER-MINOR) implement URLSearchParams size getter (James M Snell) #46308
  • worker:
    • (SEMVER-MINOR) add support for worker name in inspector and trace_events (Debadree Chatterjee) #46832

Commits

  • [c742493b61] - assert: fix exception message for assert(0) on try catch block (hidecology) #46760
  • [0ddf73ae7c] - assert: remove deprecated getFunction() usage (Ruben Bridgewater) #46661
  • [97ad72f19f] - async_hooks: add async local storage propagation benchmarks (Chengzhong Wu) #46414
  • [b1bde69574] - async_hooks: remove experimental onPropagate option (James M Snell) #46386
  • [b5db3b579a] - benchmark: add a benchmark for URLSearchParams creation and toString() (Debadree Chatterjee) #46810
  • [ff94f9ffbe] - benchmark: replace table in docs with description of file tree structure (Theodor Steiner) #46991
  • [d4af671f09] - benchmark: split Buffer.byteLength benchmark (Joyee Cheung) #46616
  • [5f647fb7b4] - benchmark: add benchmark for EventTarget add and remove (Debadree Chatterjee) #46779
  • [d7d634bd67] - benchmark: fix worker startup benchmark (Joyee Cheung) #46680
  • [f7c4796c56] - benchmark: add trailing commas in benchmark/path (Antoine du Hamel) #46628
  • [9b0d5030a5] - benchmark: add trailing commas in benchmark/http (Antoine du Hamel) #46609
  • [e0f436041e] - benchmark: add trailing commas in benchmark/crypto (Antoine du Hamel) #46553
  • [a383aee386] - benchmark: add trailing commas in benchmark/url (Antoine du Hamel) #46551
  • [a10c3558c6] - benchmark: add trailing commas in benchmark/http2 (Antoine du Hamel) #46552
  • [8036583f1f] - benchmark: add trailing commas in benchmark/process (Antoine du Hamel) #46481
  • [1497244078] - benchmark: add trailing commas in benchmark/misc (Antoine du Hamel) #46474
  • [057e3f5309] - benchmark: add trailing commas in benchmark/buffers (Antoine du Hamel) #46473
  • [26e1a81243] - benchmark: add trailing commas in benchmark/module (Antoine du Hamel) #46461
  • [bd6c828cf3] - benchmark: add trailing commas in benchmark/net (Antoine du Hamel) #46439
  • [01cf87aca7] - benchmark: add trailing commas in benchmark/util (Antoine du Hamel) #46438
  • [f006b2f9dc] - benchmark: add trailing commas in benchmark/async_hooks (Antoine du Hamel) #46424
  • [f969cc30ab] - benchmark: add trailing commas in benchmark/fs (Antoine du Hamel) #46426
  • [5202b84382] - bootstrap: print stack trace during environment creation failure (Joyee Cheung) #46533
  • [c6e722aca4] - (SEMVER-MINOR) buffer: add Buffer.copyBytesFrom(...) (James M Snell) #46500
  • [886504fdf8] - build: fix Visual Studio installation detection for Arm64 (Radek Bartoň) #46420
  • [2b72a453cf] - build: add GitHub Action for coverage with --without-intl (Rich Trott) #37954
  • [ff07aa7fe3] - build: do not disable inspector when intl is disabled (Rich Trott) #37954
  • [4b25b98bd8] - build,test: add proper support for IBM i (Xu Meng) #46739
  • [535311097c] - child_process: add trailing commas in source files (Antoine du Hamel) #46758
  • [d2692c65df] - cluster: add trailing commas in source files (Antoine du Hamel) #46695
  • [effdca8b10] - crypto: don't assume FIPS is disabled by default (Michael Dawson) #46532
  • [bce37c60ce] - debugger: improve validations and documents for watch and unwatch (Eungyu Lee) #46947
  • [51253bae83] - debugger: add a command to set which lines to check for context (Eungyu Lee) #46812
  • [44375c6a3c] - debugger: add trailing commas in source files (Antoine du Hamel) #46714
  • [e5c4d69681] - deps: update ada to 1.0.4 (Node.js GitHub Bot) #46853
  • [94f83536d7] - deps: update ada to 1.0.3 (Node.js GitHub Bot) #46784
  • [484c4f6674] - deps: update ada to v1.0.1 (Yagiz Nizipli) #46550
  • [0bc4c17e57] - deps: add ada as a dependency (Yagiz Nizipli) #46410
  • [956f786499] - deps: update undici to 5.21.0 (Node.js GitHub Bot) #47063
  • [73be4f8ef5] - deps: update simdutf to 3.2.2 (Node.js GitHub Bot) #46841
  • [0e78fd5883] - deps: update corepack to 0.17.0 (Node.js GitHub Bot) #46842
  • [61c9433d8a] - deps: update simdutf to 3.2.1 (Node.js GitHub Bot) #46800
  • [63a62ed532] - deps: upgrade npm to 9.5.1 (npm team) #46783
  • [c8974d678a] - deps: update nghttp2 to 1.52.0 (Michaël Zasso) #46636
  • [2b439a2cdf] - deps: fix libuv for android (Julian Dropmann) #46746
  • [d5eb1df869] - deps: update simdutf to 3.2.0 (Node.js GitHub Bot) #46621
  • [dd97b05aeb] - deps: update corepack to 0.16.0 (Node.js GitHub Bot) #46710
  • [65b877de45] - deps: copy postject-api.h and LICENSE to the deps folder (Darshan Sen) #46582
  • [a918ac886e] - deps: update c-ares to 1.19.0 (Michaël Zasso) #46415
  • [1ac639a240] - deps: V8: cherry-pick 9ec4e9095a25 (Kleis Auke Wolthuizen) #47092
  • [f8d4bf8540] - deps,test: update postject to 1.0.0-alpha.5 (Node.js GitHub Bot) #46934
  • [8646b06c1b] - dgram: fix unhandled exception aborting a closed udp socket (Ramana Venkata) #46770
  • [e435199ccc] - doc: remove remaining SSL_OP_NETSCAPE_*_BUG (Tobias Nießen) #47066
  • [01d82670c7] - doc: fix typo in test.md (Victor Hiairrassary) #47053
  • [0e3077dc48] - doc: amend support tier qualifier (Gireesh Punathil) #42805
  • [a5bf6693b9] - doc: fix typo on esm loaders example (Ruy Adorno) #47015
  • [6a0c1d053e] - doc: add missing test runner flags to man page (Colin Ihrig) #46982
  • [43b94b0f13] - doc: fix history information for node:diagnostics_channel (Thomas Hunter II) #46984
  • [b37d53a1ba] - doc: fix myUrl is not defined in url (Youngmin Yoo) #46968
  • [257c5ac1fa] - doc: remove useless SSL_OP_* options (Tobias Nießen) #46954
  • [09c5e6a9f3] - doc: fix description of TLS dhparam option (Tobias Nießen) #46949
  • [8907732fcf] - doc: improve fs code example quality (jakecastelli) #46948
  • [17a25f1153] - doc: fix port of destination server is not defined in http2 (Deokjin Kim) #46940
  • [ad06168a5c] - doc: use number which is bigger than 1024 as port in http2 (Deokjin Kim) #46938
  • [4e6dda5be4] - doc: add release key for Juan Arboleda (Juan José) #46922
  • [f49c6e64ba] - doc: fix links to SSL_CTX_set_options (Tobias Nießen) #46953
  • [ea7fb16e5c] - doc: fix fs missing import (jakecastelli) #46907
  • [11885a7351] - doc: add request to hold off publicising sec releases (Michael Dawson) #46702
  • [0254fd1da6] - doc: fix stream iterator helpers examples (Benjamin Gruenbaum) #46897
  • [0a983f7125] - doc: add history info for node:test (Antoine du Hamel) #46851
  • [810d393ded] - doc: sort import order (jakecastelli) #46847
  • [6e03499437] - doc: use destructing import (jakecastelli) #46847
  • [8b636c3cd6] - doc: add marco-ippolito to collaborators (Marco Ippolito) #46816
  • [7e08ca125a] - doc: document how to use the tls.DEFAULT_CIPHERS (Andreas Martens) #46482
  • [3dae6f2f81] - doc: add document for profiling and heap snapshot (cola119) #46787
  • [eef30513b9] - doc: add test:coverage event to custom reporter examples (Richie McColl) #46752
  • [e6db6bedf7] - doc: include context on .toWeb() parameters (Debadree Chatterjee) #46617
  • [a24350e49f] - doc: add in security steward for recent release (Michael Dawson) #46701
  • [55360e9386] - doc: clarify semver-minor notable changes approach (Beth Griggs) #46592
  • [a384dd42ff] - doc: maintaining nghttp2 (Marco Ippolito) #46539
  • [45fccc9737] - doc: add emit to NodeEventTarget (Deokjin Kim) #46356
  • [760616890c] - doc: add debadree25 to collaborators (Debadree Chatterjee) #46716
  • [b9dd876e7c] - doc: move bcoe to emeriti (Benjamin Coe) #46703
  • [3afbb92bb4] - doc: add response.strictContentLength to documentation (Marco Ippolito) #46627
  • [2c0e1aa095] - doc: remove unused functions from example of streamConsumers.text (Deokjin Kim) #46581
  • [61268303fc] - doc: fix test runner examples (Richie McColl) #46565
  • [2b702c98c2] - doc: update test concurrency description / default values (richiemccoll) #46457
  • [f1de3f7a31] - doc: enrich test command with executable (Tony Gorez) #44347
  • [68b5cf8e38] - doc: fix wrong location of requestTimeout's default value (Deokjin Kim) #46423
  • [4d5d6d2193] - doc: add deokjinkim to collaborators (Deokjin Kim) #46444
  • [de7f6182be] - doc: fix -C flag usage (三咲智子 Kevin Deng) #46388
  • [4165cf34ba] - doc: add note about major release rotation (Rafael Gonzaga) #46436
  • [f088ce2dc7] - doc: update threat model based on discussions (Michael Dawson) #46373
  • [5b94e2bcdb] - esm: fix import assertion warning (Antoine du Hamel) #46971
  • [96a39d1a99] - esm: add a runtime warning when using import assertions (Antoine du Hamel) #46901
  • [320a8adb45] - esm: misc test refactors (Geoffrey Booth) #46631
  • [b08687f739] - events: add trailing commas in source files (Antoine du Hamel) #46759
  • [cc6deeaf7a] - (SEMVER-MINOR) events: add listener argument to listenerCount (Paolo Insogna) #46523
  • [efc24097a6] - fs: add trailing commas in source files (Antoine du Hamel) #46696
  • [80b4e6da53] - http: use listenerCount when adding noop event (Paolo Insogna) #46769
  • [3538521bf6] - http: correctly calculate strict content length (Robert Nagy) #46601
  • [9582c8ef3a] - http: fix validation of "Link" header (Steve Herzog) #46466
  • [23c1e2fa52] - http: unify header treatment (Marco Ippolito) #46528
  • [abeee994c4] - http: add note about clientError event (Paolo Insogna) #46584
  • [3d0602c96c] - http: use v8::Array::New() with a prebuilt vector (Joyee Cheung) #46447
  • [62cbddd86f] - lib: fix trailing commas and leftover function from rebasing (Danielle Adams) #47503
  • [c463f133bd] - lib: enforce use of trailing commas (Antoine du Hamel) #46881
  • [0f33bb0961] - lib: add trailing commas to all public core modules (Antoine du Hamel) #46848
  • [06e0dd3e15] - lib: rename internal module declaration as internal bindings (okmttdhr, okp) #46663
  • [31578ab1b4] - lib: add trailing commas to more internal files (Antoine du Hamel) #46811
  • [ad510d9029] - lib: update punycode to 2.3.0 (Yagiz Nizipli) #46719
  • [4cf3de8b02] - lib: add trailing commas in internal/perf (Antoine du Hamel) #46697
  • [f1b79828bc] - (SEMVER-MINOR) lib: add AsyncLocalStorage.bind() and .snapshot() (flakey5) #46387
  • [48cd712c0d] - lib: add trailing commas in internal/process (Antoine du Hamel) #46687
  • [46a22ab601] - lib: do not crash using workers with disabled shared array buffers (Ruben Bridgewater) #41023
  • [1395e36e64] - lib: delete module findPath unused params (sinkhaha) #45371
  • [c410572620] - lib: enforce use of trailing commas in more files (Antoine du Hamel) #46655
  • [36e080cd13] - lib: enforce use of trailing commas for functions (Antoine du Hamel) #46629
  • [71249a6c00] - lib: predeclare Event.isTrusted prop descriptor (Santiago Gimeno) #46527
  • [2b80d19c06] - lib: tighten AbortSignal.prototype.throwIfAborted implementation (Antoine du Hamel) #46521
  • [2f79f3fa38] - (SEMVER-MINOR) lib: add aborted() utility function (Debadree Chatterjee) #46494
  • [7f9e60aa1a] - lib,src: fix a few typos in comments (Tobias Nießen) #46835
  • [c4f192b592] - meta: add single-executable labels and code owners (Joyee Cheung) #47004
  • [abe1488f86] - meta: remove AUTHORS file (Rich Trott) #46845
  • [e53774c7bf] - meta: remove unnecessary onboarding step (Rich Trott) #46793
  • [55f1cfd7e4] - meta: update CODEOWNERS of url implementations (Yagiz Nizipli) #46775
  • [ccaa7cabdd] - meta: update AUTHORS (Node.js GitHub Bot) #46726
  • [260ddd5b0f] - meta: update AUTHORS (Node.js GitHub Bot) #46624
  • [5ef78e50a0] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #46513
  • [5efb829156] - meta: update AUTHORS (Node.js GitHub Bot) #46504
  • [f0705f7de1] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #46411
  • [331073a7aa] - node-api: add __wasm32__ guards on async works (Chengzhong Wu) #46633
  • [594bb9d558] - os: improve network interface performance (Ruben Bridgewater) #46598
  • [c231aae6c5] - process: print versions by sort (Himself65) #46428
  • [fe318dd095] - punycode: add pending deprecation (Antoine du Hamel) #46719
  • [34ba230d9b] - repl: remove lastInputPreview conditional check (Duy Mac Van) #46857
  • [09739a20b1] - repl: fix .load infinite loop caused by shared use of lineEnding RegExp (Theodor Steiner) #46742
  • [91fbad617d] - repl: add trailing commas in source files (Antoine du Hamel) #46757
  • [e4cd81b526] - src: use string_view for report and related code (Anna Henningsen) #46723
  • [8ea835419e] - (SEMVER-MINOR) src: add initial support for single executable applications (Darshan Sen) #45038
  • [4652dfdc88] - src: remove TLSEXT_TYPE_alpn guard (Tobias Nießen) #46956
  • [a4a433fc0b] - src: remove use of SSL_OP_SINGLE_DH_USE (Tobias Nießen) #46955
  • [339b52f3bc] - src: make util.h self-containted (Joyee Cheung) #46817
  • [b25ee523ea] - src: remove shadowed variable in OptionsParser (Shelley Vohr) #46672
  • [88baf98fa3] - src: do not track BaseObjects directly in Realm (Joyee Cheung) #46470
  • [03e8d824db] - src: fix cb scope bugs involved in termination (ywave620) #45596
  • [7fb32b43dc] - src: add SetFastMethodNoSideEffect() (Joyee Cheung) #46619
  • [ea411d6422] - (SEMVER-MINOR) src: allow optional Isolate termination in node::Stop() (Shelley Vohr) #46583
  • [f8d029183a] - src: remove icu usage from node_string.cc (Yagiz Nizipli) #46548
  • [95674360b2] - src: add fflush() to SnapshotData::ToFile() (Anna Henningsen) #46531
  • [9445a0a5f6] - src: make edge names in BaseObjects more descriptive in heap snapshots (Joyee Cheung) #46492
  • [483cd1922f] - src: avoid leaking snapshot fp on error (Tobias Nießen) #46497
  • [bc9a577625] - src: check return value of ftell() (Tobias Nießen) #46495
  • [b3b3b33799] - src: remove unused includes from main thread (Yagiz Nizipli) #46471
  • [b9ca302558] - src: use string_view instead of std::string& (Yagiz Nizipli) #46471
  • [f1c770065a] - src: use simdutf utf8 to utf16 instead of icu (Yagiz Nizipli) #46471
  • [aaf04f498a] - src: replace icu with simdutf for char counts (Yagiz Nizipli) #46472
  • [3aef68d079] - src: add additional utilities to crypto::SecureContext (James M Snell) #45912
  • [92fdb24fac] - src: add KeyObjectHandle::HasInstance (James M Snell) #45912
  • [a639e2a557] - src: add GetCurrentCipherName/Version to crypto_common (James M Snell) #45912
  • [8dfa748373] - src: back snapshot I/O with a std::vector sink (Joyee Cheung) #46463
  • [17eea1812e] - (SEMVER-MINOR) src: allow embedder control of code generation policy (Shelley Vohr) #46368
  • [dffe7d814e] - stream: enable usage of webstreams on compose() (Debadree Chatterjee) #46675
  • [654b7474e3] - stream: always delay construct callback by a nextTick (Matteo Collina) #46818
  • [ed2faa7c7c] - stream: fix respondWithNewView() errors when view.byteOffset != 0 (Debadree Chatterjee) #46465
  • [247caacc7a] - stream: fix pipeline callback not called on ended stream (Debadree Chatterjee) #46600
  • [c40eec3f3b] - stream: add trailing commas in webstream source files (Antoine du Hamel) #46685
  • [d669f22567] - stream: add trailing commas in stream source files (Antoine du Hamel) #46686
  • [c60816a68d] - (SEMVER-MINOR) stream: add abort signal for ReadableStream and WritableStream (Debadree Chatterjee) #46273
  • [17b4e9bc5f] - stream: refactor to use validateAbortSignal (Antoine du Hamel) #46520
  • [4d81124397] - stream: allow transfer of readable byte streams (MrBBot) #45955
  • [6c454af5ea] - stream: add pipeline() for webstreams (Debadree Chatterjee) #46307
  • [91a550e5a1] - stream: add suport for abort signal in finished() for webstreams (Debadree Chatterjee) #46403
  • [406ff320bf] - stream: dont access Object.prototype.type during TransformStream init (Debadree Chatterjee) #46389
  • [972bdee8c4] - test: update web-platform tests for url (Yagiz Nizipli) #46547
  • [ba340a0ddb] - test: move test-tls-autoselectfamily-servername to test/internet (Antoine du Hamel) #47029
  • [0edaf016cc] - test: fallback to IPv4 if IPv6 is unavailable (Abdirahim Musse) #47017
  • [ef6c86c59f] - test: simplify test-tls-ecdh-multiple (Tobias Nießen) #46963
  • [b8cdd1502f] - test: improve test coverage of lib/dns (Anderson Paiva) #46910
  • [33991954b6] - test: simplify test-tls-ecdh-auto (Tobias Nießen) #46911
  • [512f28fa8b] - test: move testPath from CWD to temporary directory (Livia Medeiros) #46890
  • [3fdcf7bef4] - test: assume priv ports start at 1024 if it can't be changed (KrayzeeKev) #46536
  • [966d0d8b16] - test: fix os-release check for Ubuntu in SEA test (Anna Henningsen) #46838
  • [b344e74bc1] - test: move socket from CWD to temporary directory (Livia Medeiros) #46863
  • [dfb566aec2] - test: fix test-net-connect-reset-until-connected (Vita Batrla) #46781
  • [364479644c] - test: simplify test-tls-alert (Tobias Nießen) #46805
  • [df149448b5] - test: update encoding WPTs (Filip Skokan) #46802
  • [928998dd2d] - test: remove useless WPT init scripts (Filip Skokan) #46801
  • [bb182461a3] - test: remove unreachable return (jakecastelli) #46807
  • [ea71a2ae1b] - test: fix test-v8-collect-gc-profile-in-worker.js (theanarkh) #46735
  • [25cab7eab5] - test: improve control flow in test-tls-dhe (Tobias Nießen) #46751
  • [3b70e7a34e] - test: include strace openat test (Rafael Gonzaga) #46150
  • [533170d456] - test: remove OpenSSL 1.0.2 error message compat (Tobias Nießen) #46709
  • [b8948996b4] - test: fix flaky test-watch-mode-files_watcher (Moshe Atlow) #46738
  • [931111609e] - test: use newish OpenSSL feature in test-tls-dhe (Tobias Nießen) #46708
  • [847d74005c] - test: fix assertions in test-snapshot-dns-lookup* (Tobias Nießen) #46618
  • [d7b995cd38] - test: cover publicExponent validation in OpenSSL (Tobias Nießen) #46632
  • [a2b103a761] - test: add trailing commas in test/pummel (Antoine du Hamel) #46610
  • [4fb2fc7536] - test: enable api-invalid-label.any.js in encoding WPTs (Filip Skokan) #46506
  • [b0f2415312] - test: add trailing commas in test/js-native-api (Antoine du Hamel) #46385
  • [534562f51d] - test: make more crypto tests work with BoringSSL (Shelley Vohr) #46429
  • [9bb08527f0] - test: add trailing commas in test/known_issues (Antoine du Hamel) #46408
  • [231f0ee9b2] - test: add trailing commas in test/internet (Antoine du Hamel) #46407
  • [5e008e7d38] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #47010
  • [99bfbed78a] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #46575
  • [8398f9fcb6] - test_runner: default to spec reporter when on TTY environment (Moshe Atlow) #46969
  • [16db3ad1f8] - test_runner: handle errors not bound to tests (Colin Ihrig) #46962
  • [d60eef25a1] - test_runner: throw if harness is not bootstrapped (Colin Ihrig) #46962
  • [ab5b3185f1] - test_runner: track bootstrapping process (Colin Ihrig) #46962
  • [413493cab9] - test_runner: avoid running twice tests in describe (Moshe Atlow) #46888
  • [524eaf5488] - test_runner: fix reconstruction of errors extracted from YAML (Moshe Atlow) #46872
  • [17fbfb23bd] - test_runner: reset count on watch mode (Moshe Atlow) #46577
  • [3b077a6885] - test_runner: remove root tracking set (Colin Ihrig) #46961
  • [15503ffd12] - test_runner: give the root test a harness reference (Colin Ihrig) #46962
  • [e52b169ef4] - test_runner: align behavior of it and test (Moshe Atlow) #46889
  • [9b58857630] - timers: cleanup no-longer relevant TODOs in timers/promises (James M Snell) #46499
  • [32c527d80f] - (SEMVER-MINOR) tls: support automatic DHE (Tobias Nießen) #46978
  • [6ff90270ca] - tls: add trailing commas in source files (Antoine du Hamel) #46715
  • [958da453dd] - tools: fix update-ada script (Yagiz Nizipli) #46550
  • [a3f272e667] - tools: automate cares update (Marco Ippolito) #46993
  • [77f5b69840] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #46935
  • [36ea9e7f65] - tools: refactor dep_updaters (Tony Gorez) #46488
  • [c0b6794f82] - tools: update eslint to 8.35.0 (Node.js GitHub Bot) #46854
  • [307d096e21] - tools: create llhttp update action (Marco Ippolito) #46766
  • [fff31862ac] - tools: fix linter message when using global DOMException (Antoine du Hamel) #46822
  • [89c2e8ac97] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #46843
  • [3bf54ff624] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #46771
  • [4065e5cda6] - tools: run format-cpp on node-api test c files (Chengzhong Wu) #46694
  • [7349708527] - tools: use actions pinned by commit hash in coverage-linux (Gabriela Gutierrez) #46294
  • [f80e93d71f] - tools: fix regex strings in Python tools (Jan Osusky) #46671
  • [8fd176055f] - tools: fixed path (Marco Ippolito) #46700
  • [15b0e8b1aa] - tools: update nghttp2 action (Marco Ippolito) #46700
  • [4da3eecbd7] - tools: update-nghttp2 preserve config.h (Marco Ippolito) #46698
  • [3714d8f236] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #46712
  • [474084e063] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #46712
  • [665b7424eb] - tools: fix bug in prefer-primordials lint rule (Antoine du Hamel) #46659
  • [7eb1456892] - tools: update eslint to 8.34.0 (Node.js GitHub Bot) #46625
  • [678b8f53c1] - tools: update lint-md-dependencies to [email protected] [email protected] (Node.js GitHub Bot) #46623
  • [ee81da5883] - tools: update doc to [email protected] [email protected] (Node.js GitHub Bot) #46622
  • [92e3e0e4e4] - tools: update lint-md-dependencies to [email protected] [email protected] (Node.js GitHub Bot) #46503
  • [728f96861e] - tools: update ESLint custom rules to not use the deprecated format (Antoine du Hamel) #46460
  • [78b79c0220] - typings: improve primordials typings (Antoine du Hamel) #46970
  • [a39dd37653] - url: simplify and improve url formatting (Yagiz Nizipli) #46736
  • [01b6525706] - url: improve performance by removing host (Yagiz Nizipli) #46547
  • [0c67a7ad57] - url: fix url spec compliance issues (Yagiz Nizipli) #46547
  • [e9263541a7] - url: replace url-parser with ada (Yagiz Nizipli) #46410
  • [4d0faf4ddc] - url: improve isURLThis detection (Yagiz Nizipli) #46866
  • [1ece4a72b7] - (SEMVER-MINOR) url: implement URLSearchParams size getter (James M Snell) #46308
  • [8f14002459] - url: remove unused URL::ToFilePath() (Yagiz Nizipli) #46487
  • [f57e7bcc11] - url: remove unused URL::toObject (Yagiz Nizipli) #46486
  • [04930562f8] - url: remove unused setURLConstructor function (Yagiz Nizipli) #46485
  • [b801873a8a] - vm: properly support symbols on globals (Nicolas DUBIEN) #46458
  • [f7423bdbaa] - (SEMVER-MINOR) worker: add support for worker name in inspector and trace_events (Debadree Chatterjee) #46832

aduh95 and others added 30 commits April 2, 2023 21:36
PR-URL: #46408
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Signed-off-by: Michael Dawson <[email protected]>

PR-URL: #46373
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
The `onPropagate` option for `AsyncLocalStorage` is problematic for a
couple of reasons:

1. It is not expected to be forwards compatible in any way with the
   upcoming TC-39 `AsyncContext` proposal.
2. It introduces a non-trivial O(n) cost invoking a JavaScript callback
   for *every* AsyncResource that is created, including every Promise.

While it is still experimental, I recommend removing it while we can
revisit the fundamental use cases in light of the coming `AsyncContext`
proposal.

Refs: #46374
PR-URL: #46386
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Vladimir de Turckheim <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #46426
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
PR-URL: #46429
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #46424
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Signed-off-by: RafaelGSS <[email protected]>
PR-URL: #46436
Fixes: nodejs/Release#765
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Ruy Adorno <[email protected]>
ref
40eb3b79f1

PR-URL: #46388
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Harshitha K P <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Refs: #46205
PR-URL: #46403
Refs: #37354
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Refs: #39316
PR-URL: #46307
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #46438
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #46439
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #46461
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Fixes: #46329
PR-URL: #46444
Reviewed-By: Qingyu Deng <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Zeyu "Alex" Yang <[email protected]>
Reviewed-By: Vladimir de Turckheim <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: theanarkh <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Refs: https://nodejs.org/dist/latest-v19.x/docs/api/http.html#serverrequesttimeout
PR-URL: #46423
Reviewed-By: Paolo Insogna <[email protected]>
Reviewed-By: theanarkh <[email protected]>
Reviewed-By: Zeyu "Alex" Yang <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Harshitha K P <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #46368
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
PR-URL: #46463
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #46385
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
In preparation for use by the QUIC implementation.

PR-URL: #45912
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
In preparation for use by the QUIC implementation.

PR-URL: #45912
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
In preparation for use by the QUIC implementation.

PR-URL: #45912
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Add micro-benchmarks to verify the performance degradation related to
the number of active `AsyncLocalStorage`s.

With these benchmarks, trying to improve the async context propagation
to be an O(1) operation, which is an operation more frequent compared
to `asyncLocalStorage.run` and `asyncLocalStorage.getStore`.

PR-URL: #46414
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
A regression has been introduced in node 18.2.0,
it makes the following snippet fails while it used to work in the past:

```
const assert = require('assert');
const vm = require('vm');
const global = vm.runInContext('this', vm.createContext());
const totoSymbol = Symbol.for('toto');
Object.defineProperty(global, totoSymbol, {
  enumerable: true,
  writable: true,
  value: 4,
  configurable: true,
});
assert(Object.getOwnPropertySymbols(global).includes(totoSymbol));
```

Regression introduced by: #42963.
So I basically attempted to start understanding what it changed to make
it fix the initial issue while not breaking the symbol related one.

Fixes: #45983
PR-URL: #46458
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
PR-URL: #46473
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
PR-URL: #46474
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Updates the `ReadableStream` constructor to mark byte streams as
transferable. When transferred, byte streams become regular streams.

Refs: #39062
Refs: https://streams.spec.whatwg.org/#rs-transfer
PR-URL: #45955
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #46499
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #46481
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
PR-URL: #47503
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
danielleadams added a commit that referenced this pull request Apr 11, 2023
Notable changes:

* buffer:
  * (SEMVER-MINOR) add Buffer.copyBytesFrom(...) (James M Snell) #46500
* doc:
  * add marco-ippolito to collaborators (Marco Ippolito) #46816
  * add debadree25 to collaborators (Debadree Chatterjee) #46716
  * add deokjinkim to collaborators (Deokjin Kim) #46444
* events:
  * (SEMVER-MINOR) add listener argument to listenerCount (Paolo Insogna) #46523
* lib:
  * (SEMVER-MINOR) add AsyncLocalStorage.bind() and .snapshot() (flakey5) #46387
  * (SEMVER-MINOR) add aborted() utility function (Debadree Chatterjee) #46494
* src:
  * (SEMVER-MINOR) allow optional Isolate termination in node::Stop() (Shelley Vohr) #46583
  * (SEMVER-MINOR) allow embedder control of code generation policy (Shelley Vohr) #46368
  * (SEMVER-MINOR) add initial support for single executable applications (Darshan Sen) #45038
* stream:
  * (SEMVER-MINOR) add abort signal for ReadableStream and WritableStream (Debadree Chatterjee) #46273
* tls:
  * (SEMVER-MINOR) support automatic DHE (Tobias Nießen) #46978
* url:
  * (SEMVER-MINOR) implement URLSearchParams size getter (James M Snell) #46308
* worker:
  * (SEMVER-MINOR) add support for worker name in inspector and trace_events (Debadree Chatterjee) #46832

PR-URL: #47502
anonrig and others added 12 commits April 11, 2023 22:54
PR-URL: #46410
Backport-PR-URL: #47435
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
PR-URL: #46410
Backport-PR-URL: #47435
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
PR-URL: #46550
Backport-PR-URL: #47435
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Co-authored-by: Daniel Lemire <[email protected]>
PR-URL: #46550
Backport-PR-URL: #47435
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
PR-URL: #46547
Backport-PR-URL: #47435
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Co-authored-by: Daniel Lemire <[email protected]>
PR-URL: #46547
Backport-PR-URL: #47435
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
PR-URL: #46547
Backport-PR-URL: #47435
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
PR-URL: #46784
Backport-PR-URL: #47435
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Tierney Cyren <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #46853
Backport-PR-URL: #47435
Fixes: #46850
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Xuguang Mei <[email protected]>
Use `std::string_view` for process.report code and related
code, drop a few unnecessary `std::to_string` calls,
and use `MaybeStackBuffer` instead of `MallocedBuffer`,
all in order to avoid unnecessary heap allocations.

PR-URL: #46723
Backport-PR-URL: #47435
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #46736
Backport-PR-URL: #47435
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Notable changes:

Add initial support for single executable applications

Compile a JavaScript file into a single executable application:

```console
$ echo 'console.log(`Hello, ${process.argv[2]}!`);' > hello.js

$ cp $(command -v node) hello

$ npx postject hello NODE_JS_CODE hello.js \
    --sentinel-fuse NODE_JS_FUSE_fce680ab2cc467b6e072b8b5df1996b2

$ npx postject hello NODE_JS_CODE hello.js \
    --sentinel-fuse NODE_JS_FUSE_fce680ab2cc467b6e072b8b5df1996b2 \
    --macho-segment-name NODE_JS

$ ./hello world
Hello, world!
```

Contributed by Darshan Sen in #45038

Replace url parser with Ada

Node.js gets a new URL parser called Ada that is compliant with the WHATWG
URL Specification and provides more than 100% performance improvement to
the existing implementation.

Contributed by Yagiz Nizipli in #46410

Other notable changes:

* buffer:
  * (SEMVER-MINOR) add Buffer.copyBytesFrom(...) (James M Snell) #46500
* doc:
  * add marco-ippolito to collaborators (Marco Ippolito) #46816
  * add debadree25 to collaborators (Debadree Chatterjee) #46716
  * add deokjinkim to collaborators (Deokjin Kim) #46444
* events:
  * (SEMVER-MINOR) add listener argument to listenerCount (Paolo Insogna) #46523
* lib:
  * (SEMVER-MINOR) add AsyncLocalStorage.bind() and .snapshot() (flakey5) #46387
  * (SEMVER-MINOR) add aborted() utility function (Debadree Chatterjee) #46494
* src:
  * (SEMVER-MINOR) allow optional Isolate termination in node::Stop() (Shelley Vohr) #46583
  * (SEMVER-MINOR) allow embedder control of code generation policy (Shelley Vohr) #46368
* stream:
  * (SEMVER-MINOR) add abort signal for ReadableStream and WritableStream (Debadree Chatterjee) #46273
* tls:
  * (SEMVER-MINOR) support automatic DHE (Tobias Nießen) #46978
* url:
  * (SEMVER-MINOR) implement URLSearchParams size getter (James M Snell) #46308
* worker:
  * (SEMVER-MINOR) add support for worker name in inspector and trace_events (Debadree Chatterjee) #46832

PR-URL: #47502
@panva
Copy link
Member

panva commented Apr 12, 2023

@danielleadams the backport of #47506 you requested is rebased.

@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Apr 12, 2023

@nodejs-github-bot
Copy link
Collaborator

@danielleadams danielleadams merged commit 43d167a into v18.x Apr 13, 2023
@danielleadams danielleadams deleted the v18.16.0-proposal branch April 13, 2023 00:15
danielleadams added a commit that referenced this pull request Apr 13, 2023
danielleadams added a commit that referenced this pull request Apr 13, 2023
Notable changes:

Add initial support for single executable applications

Compile a JavaScript file into a single executable application:

```console
$ echo 'console.log(`Hello, ${process.argv[2]}!`);' > hello.js

$ cp $(command -v node) hello

$ npx postject hello NODE_JS_CODE hello.js \
    --sentinel-fuse NODE_JS_FUSE_fce680ab2cc467b6e072b8b5df1996b2

$ npx postject hello NODE_JS_CODE hello.js \
    --sentinel-fuse NODE_JS_FUSE_fce680ab2cc467b6e072b8b5df1996b2 \
    --macho-segment-name NODE_JS

$ ./hello world
Hello, world!
```

Contributed by Darshan Sen in #45038

Replace url parser with Ada

Node.js gets a new URL parser called Ada that is compliant with the WHATWG
URL Specification and provides more than 100% performance improvement to
the existing implementation.

Contributed by Yagiz Nizipli in #46410

Other notable changes:

* buffer:
  * (SEMVER-MINOR) add Buffer.copyBytesFrom(...) (James M Snell) #46500
* doc:
  * add marco-ippolito to collaborators (Marco Ippolito) #46816
  * add debadree25 to collaborators (Debadree Chatterjee) #46716
  * add deokjinkim to collaborators (Deokjin Kim) #46444
* events:
  * (SEMVER-MINOR) add listener argument to listenerCount (Paolo Insogna) #46523
* lib:
  * (SEMVER-MINOR) add AsyncLocalStorage.bind() and .snapshot() (flakey5) #46387
  * (SEMVER-MINOR) add aborted() utility function (Debadree Chatterjee) #46494
* src:
  * (SEMVER-MINOR) allow optional Isolate termination in node::Stop() (Shelley Vohr) #46583
  * (SEMVER-MINOR) allow embedder control of code generation policy (Shelley Vohr) #46368
* stream:
  * (SEMVER-MINOR) add abort signal for ReadableStream and WritableStream (Debadree Chatterjee) #46273
* tls:
  * (SEMVER-MINOR) support automatic DHE (Tobias Nießen) #46978
* url:
  * (SEMVER-MINOR) implement URLSearchParams size getter (James M Snell) #46308
* worker:
  * (SEMVER-MINOR) add support for worker name in inspector and trace_events (Debadree Chatterjee) #46832

PR-URL: #47502
danielleadams added a commit to nodejs/nodejs.org that referenced this pull request Apr 13, 2023
danielleadams added a commit to nodejs/nodejs.org that referenced this pull request Apr 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-ci PRs that need a full CI run. release Issues and PRs related to Node.js releases. v18.x Issues that can be reproduced on v18.x or PRs targeting the v18.x-staging branch.
Projects
None yet
Development

Successfully merging this pull request may close these issues.