Node v18.8.0 (Current)

Ruy Adorno

Notable changes

bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob

This patch introduces --build-snapshot and --snapshot-blob options for creating and using user land snapshots.

To generate a snapshot using snapshot.js as an entry point and write the snapshot blob to snapshot.blob:

echo "globalThis.foo = 'I am from the snapshot'" > snapshot.js
node --snapshot-blob snapshot.blob --build-snapshot snapshot.js

To restore application state from snapshot.blob, with index.js as the entry point script for the deserialized application:

echo "console.log(globalThis.foo)" > index.js
node --snapshot-blob snapshot.blob index.js
# => I am from the snapshot

Users can also use the v8.startupSnapshot API to specify an entry point at snapshot building time, thus avoiding the need of an additional entry script at deserialization time:

echo "require('v8').startupSnapshot.setDeserializeMainFunction(() => console.log('I am from the snapshot'))" > snapshot.js
node --snapshot-blob snapshot.blob --build-snapshot snapshot.js
node --snapshot-blob snapshot.blob
# => I am from the snapshot

Contributed by Joyee Cheung in #38905

Other notable changes

  • crypto:
    • (SEMVER-MINOR) allow zero-length IKM in HKDF and in webcrypto PBKDF2 (Filip Skokan) #44201
    • (SEMVER-MINOR) allow zero-length secret KeyObject (Filip Skokan) #44201
  • deps:
    • upgrade npm to 8.18.0 (npm team) #44263 - Adds a new npm query command
  • doc:
    • add Erick Wendel to collaborators (Erick Wendel) #44088
    • add theanarkh to collaborators (theanarkh) #44131
    • add MoLow to collaborators (Moshe Atlow) #44214
    • add cola119 to collaborators (cola119) #44248
    • deprecate --trace-atomics-wait (Keyhan Vakil) #44093
  • http:
    • (SEMVER-MINOR) make idle http parser count configurable (theanarkh) #43974
  • net:
    • (SEMVER-MINOR) add local family (theanarkh) #43975
  • src:
    • (SEMVER-MINOR) print source map error source on demand (Chengzhong Wu) #43875
  • tls:
    • (SEMVER-MINOR) pass a valid socket on tlsClientError (Daeyeon Jeong) #44021

Commits

Windows 32-bit Installer: https://nodejs.org/dist/v18.8.0/node-v18.8.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v18.8.0/node-v18.8.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v18.8.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v18.8.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v18.8.0/node-v18.8.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v18.8.0/node-v18.8.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v18.8.0/node-v18.8.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v18.8.0/node-v18.8.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v18.8.0/node-v18.8.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v18.8.0/node-v18.8.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v18.8.0/node-v18.8.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v18.8.0/node-v18.8.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v18.8.0/node-v18.8.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v18.8.0/node-v18.8.0.tar.gz
Other release files: https://nodejs.org/dist/v18.8.0/
Documentation: https://nodejs.org/docs/v18.8.0/api/

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

30c6f976deae4cd35f8c24abf3b89b0787bf57c86622a006edcea8aaa5e67e6b  node-v18.8.0-aix-ppc64.tar.gz
4952a8ec7ca07328571ba0b06d228c2a8220041a6f07df4f46765c341a80ccd4  node-v18.8.0-darwin-arm64.tar.gz
a03cb97533447a5005accef871b899df0e9da33d8a805675ac53715a534b3dcb  node-v18.8.0-darwin-arm64.tar.xz
57457aeb1b3bfa2295235a134ebcdb58a72144b88049b72d9f7739f6591f850f  node-v18.8.0-darwin-x64.tar.gz
f8527a1820f50a5f4c835d933e5c5318c4f93f7382294db5875791e2cb0cc4fa  node-v18.8.0-darwin-x64.tar.xz
c8042d08d3bc8a1f9529a093a6db97d851528660d5b8e0577e7ee42755644632  node-v18.8.0-headers.tar.gz
b15d251e843344d66a201853cbb121cf7f2d59256bb56c3ca5cbb56af9f8ef5b  node-v18.8.0-headers.tar.xz
94cbe9128f1319b18fe33255f753da16ae7eca2f652afdfb1aabe75c3aa75631  node-v18.8.0-linux-arm64.tar.gz
b0d86c8e3da7d88ecc32112b3e41775583d4c7125fcb775af34d103b29e11bea  node-v18.8.0-linux-arm64.tar.xz
da30d0db3fd66dfd4c5ffb24851db683123777e280e225b9aa8717c3af61916e  node-v18.8.0-linux-armv7l.tar.gz
25453fa230f5e374d978306ffe1a9222c1eeebc76d0c9ff6102cf49691aeddf8  node-v18.8.0-linux-armv7l.tar.xz
c2a1ec6628a7d32530896ac2e1ce6be4a858f878303e3d6fe9c221b714f53b9d  node-v18.8.0-linux-ppc64le.tar.gz
51a668d9d89bf8e91fe249dd8d56e72a1f33d4b92a78d4b93b7026ab655d161f  node-v18.8.0-linux-ppc64le.tar.xz
57b3413dbf694418340e61d9957fca717b02ee67c1c56330ee58e02f035aa188  node-v18.8.0-linux-s390x.tar.gz
5b64ad16d05cbd771552ac7bb08f1349005f7303c9fa663fbb5ae5db88eb325a  node-v18.8.0-linux-s390x.tar.xz
01c2060503bb42caa1c6cc2ee4b432f80c0b38ad46b4eed956774fb36302f46e  node-v18.8.0-linux-x64.tar.gz
c4add613391e51406caad37fafe12ef67eb53eeff11f233f63cc65e643bf6700  node-v18.8.0-linux-x64.tar.xz
0b899a314c6b8bcdbbf1292839535dd048ce0d1a5260e4147d7fde2483451b35  node-v18.8.0.pkg
676a3ca9bdbe7381e49652f2f78705f83175f3844a7450893d562faa35537ba2  node-v18.8.0.tar.gz
2b5d9825d05ede6614f1668a8d97d774fe92ebc81088ec5fdf58184dce3c86b9  node-v18.8.0.tar.xz
931cafa3e839b31e62cabb38132c4662e4212f15b4f7bf0fee67abe2c8820f40  node-v18.8.0-win-x64.7z
b53996eac3eccd229b647ec042f338e4b4ba00352ece05b2e3162e25cb19ab19  node-v18.8.0-win-x64.zip
80c33de8105a3b2a81319c21a7de6af11ba4c1d576ed2f2fc09f0791c5de36d9  node-v18.8.0-win-x86.7z
ce5addf3d94540e7047fe562acb0b63e9a160d22b12946f544c1909fb4dbc0d9  node-v18.8.0-win-x86.zip
94f700c0ea9b45a3d3997f47143378fc000d5bb6c8cbfbceef13a8fef9a1dd06  node-v18.8.0-x64.msi
f458ac2827dd576899663fc5e2161142731e456aca69ed9e716b2f367fde1c72  node-v18.8.0-x86.msi
3577185e3117cf4d9ac81045d975de659bbf855949f009c9227aa0a79a7ac802  win-x64/node.exe
1dd6f33e5388a357da5c9887754251152f204beea779432ce1136f0d04a194b1  win-x64/node.lib
5654d5d639308cfea740cbf2f701538c652533c3be83e4fe2258b05279ecee3a  win-x64/node_pdb.7z
942f8c8fb4f01c60b6fde1fa2196bc2feb9f37d1592e2e76294b3cff96e8f8a3  win-x64/node_pdb.zip
fe7996cd15b6a9e50c1a52ae97f91bb4effd1ab96d98336d0c91f9ac6c772228  win-x86/node.exe
c17d8bd29099e0f3a1cfc833051693be9a42dab2eb3ac2a8c81c62504fb0b9f9  win-x86/node.lib
9d1e8ad7638febc9b7a72d34b0000e7092a53e83c4cfeace112eac1957a58cbd  win-x86/node_pdb.7z
2280c282e178f99e95ce1f3f62bf2b3bf75348ff1440541873a96aff7c9f2f1b  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEEI9StI21e7DMQ5spl7AUGb2S+AoFAmMGSvAACgkQl7AUGb2S
+ArJCBAAjKrQFySWoUqDk0pHNHm/q4tvKzShZ3FrHhfXoFI44IpuJ9C6KDT+64Vx
VTpIjmMFUHtaAESUYf6D4zyBFOoKmAHvvACdOWusiA4kkUfcVNxn1uy7jclwQ9ih
R7I6YhJns5eMFv1WH/dAfTUNRXPV8patL202qJR5Nj01qpKhzX6y04iktB2BXKrJ
F93zA06rZMIU1fKX8s8tjwsfZm5fSg5PCEhBaWaRraZ3HqZwHneSXYjFIHWbhGud
RSUZtOqfvFIe+RigREKdzVy6W3zvusfdPH8nYVz4Ujw9wckcivqm+bJT1vfcfb4e
zFblzN7vXQEVOJ+c1Mj+74nZkM1hAHZNwkxssg3LSWlVL2NGFMvJUBP9PJXCuSDt
RM+uzS0JPXlsa1E1Pa50CuXq8R1rSmDoepzYD+tDenAYbwGTDse9wrWgDflEIgsl
Y4aqhlsxJpYWgWZXwEeuF/FlW6qDBMZbmK63Mmc99srUwoFcxNlCCZS4N7Ioo7Dx
HUSFlRRoEg3DrjlLysBqJVkifYz0wq/W1u9UJyjPKbY3bo1c2w1lJtjCtiCEKMOp
CQvz28lpHrnEnHIGbp1WvRKmWetYciguMTgbiVSPzXngDyWnLeIz49goU3HCveoZ
sO3JGtkS+bKpQTdLUShuiRu4+CVMT99fsMfUiJiCgpDLuE6D3t4=
=rfCR
-----END PGP SIGNATURE-----