Notable changes

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

This patch introduces

1
--build-snapshot

and

1
--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:


1
2
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:


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

Users can also use the

1
v8.startupSnapshot

API to specify an entry point at snapshot building time, thus avoiding the need of an additional entry script at deserialization time:


1
2
3
4
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
      1
      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
      1
      --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
      1
      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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
-----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-----
Categories: NewsReleases

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *