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 — bootstrap: support configure-time user-land snapshot by joyeecheung · Pull Request #42466 · nodejs/node

Conversation

@joyeecheung

@joyeecheung joyeecheung commented Mar 25, 2022 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Member

This is a less-ambitious version of #38905 which only supports user-land snapshot at configure time. I've made the last two commits separate in case they cause any regressions and it would be easier to revert them to test things out.

A quick example of the feature:

typescript.js: A modified version of https://github.com/microsoft/TypeScript/blob/main/lib/typescript.js which stores the initialized ts namespace in globalThis, see #38905

// typescript.js
// Initializes the TypeScript compiler into ts...
globalThis.ts = ts;
// check-typescript.js
// Reads a file specified by the command line and compiles it
// as TypeScript, prints the compiled result to stdout.
// Use the snapshotted ts by grabbing it from globalThis if
// NODE_TEST_USE_SNAPSHOT is true.
'use strict';

let ts;
if (process.env.NODE_TEST_USE_SNAPSHOT === 'true') {
  console.error('NODE_TEST_USE_SNAPSHOT true');
  ts = globalThis.ts;
} else {
  console.error('NODE_TEST_USE_SNAPSHOT false');
  ts = require('./typescript');
}

const source = require('fs').readFileSync(process.argv[2], 'utf-8');

let result = ts.transpileModule(
  source,
  {
    compilerOptions: {
      module: ts.ModuleKind.CommonJS
    }
  });

console.log(result.outputText);
// file.ts
class VirtualPoint {
  x: number;
  y: number;

  constructor(x: number, y: number) {
    this.x = x;
    this.y = y;
  }
}

const newVPoint = new VirtualPoint(13, 56);
$ cd /path/to/node/source
$ ./configure --node-snapshot-main=typescript.js
$ make node
$ NODE_TEST_USE_SNAPSHOT=true out/Release/node check-typescript.js file.ts

NODE_TEST_USE_SNAPSHOT true
var VirtualPoint = /** @class */ (function () {
    function VirtualPoint(x, y) {
        this.x = x;
        this.y = y;
    }
    return VirtualPoint;
}());
var newVPoint = new VirtualPoint(13, 56);

For now the user can initialize the data/apps to be snapshotted in the entry point specified by --node-snapshot-main and hang this somewhere they can retrieve back after the snapshot is deserialized e.g. globalThis, we can invent better APIs in subsequent PRs (e.g. allowing the user to add a module into the module graph at build time that can be requireed back at runtime). Similar to #38905 the user has to bundle their app into one script to be built into the binary, as user-land modules are not yet supported (we'll need to do more refactoring like #42191 to support user modules in the snapshot).

bootstrap: refresh options in pre-execution

Refresh the options map during pre-execution to pave the way for
user land snapshots which may need to access run-time options at
snapshot-building time. The default embedded bootstrap snapshot
is still prevented from accessing them at snapshot building time
since it serves a wider audience and is ignorant of application
states, while the user-land snapshots are meant to be
application-specific and so it makes sense for them to access
runtime states as long as the snapshotted-code
works with re-initialized runtime states.

build: add --node-snapshot-main configure option

This adds a --build-snapshot runtime option which is currently only
supported by the node_mksnapshot binary, and a --node-snapshot-main
configure option that makes use it to run a custom script when
building the embedded snapshot. The idea is to have this experimental
feature in core as a configure-time feature for now, and investigate
the renaming V8 bugs before we make it available to more users via
making it a runtime option.

bootstrap: make I/O streams work with user-land snapshot

Use the mksnapshot cleanup hooks to release the references
to the native streams so that they can be destroyed right
before the snapshot is taken, and move the initialization
of the global console to pre-execution so that they can be
re-initialized during snapshot dehydration. This makes
it possible for user-land snapshots to use the I/O during
snapshot building.

bootstrap: run inspector and event loop in snapshot builder

This makes --inspect and stdin/out functional in the embedded snapshot,
currently it's not guaranteed that these work perfectly, the
plan is to investigate any out-of-sync states that might appear
in user land snapshots with this while the it is a configure-time
feature.

Refs: #35711

Sorry, something went wrong.

Uh oh!

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

luckyyyyy and OutdatedVersion reacted with hooray emoji dnalborczyk and CyriacBr reacted with rocket emoji
All reactions
  • 🎉 2 reactions
  • 🚀 2 reactions
joyeecheung added 4 commits March 25, 2022 22:28
@joyeecheung
bootstrap: refresh options in pre-execution
208d047
Refresh the options map during pre-execution to pave the way for
user land snapshots which may need to access run-time options at
snapshot-building time. The default embedded bootstrap snapshot
is still prevented from accessing them at snapshot building time
since it serves a wider audience and is ignorant of application
states, while the user-land snapshots are meant to be
application-specific and so it makes sense for them to access
runtime states as long as the snapshotted-code
works with re-initialized runtime states.
@joyeecheung
build: add --node-snapshot-main configure option
4d59a74
This adds a --build-snapshot runtime option which is currently only
supported by the node_mksnapshot binary, and a --node-snapshot-main
configure option that makes use it to run a custom script when
building the embedded snapshot. The idea is to have this experimental
feature in core as a configure-time feature for now, and investigate
the renaming V8 bugs before we make it available to more users via
making it a runtime option.
@joyeecheung
bootstrap: make I/O streams work with user-land snapshot
c812b98
Use the mksnapshot cleanup hooks to release the references
to the native streams so that they can be destroyed right
before the snapshot is taken, and move the initialization
of the global console to pre-execution so that they can be
re-initialized during snapshot dehydration. This makes
it possible for user-land snapshots to use the I/O during
snapshot building.
@joyeecheung
bootstrap: run inspector and event loop in snapshot builder
39cd563
This makes --inspect and stdin/out functional in the embedded snapshot,
currently it's not guaranteed that these work perfectly, the
plan is to investigate any out-of-sync states that might appear
in user land snapshots with this while the it is a configure-time
feature.
@nodejs-github-bot

nodejs-github-bot commented Mar 25, 2022

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/gyp
  • @nodejs/startup
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 lib / src Issues and PRs involving general changes in the lib/ or src/ directories. needs-ci PRs that need a full CI run. labels Mar 25, 2022
@joyeecheung joyeecheung mentioned this pull request Mar 25, 2022
bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob #38905
Closed
@nodejs-github-bot

nodejs-github-bot commented Mar 25, 2022

Copy link
Copy Markdown
Collaborator

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

All reactions

Sorry, something went wrong.

Uh oh!

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

VoltrexKeyva
VoltrexKeyva reviewed Mar 25, 2022
View reviewed changes
Comment thread lib/internal/main/mksnapshot.js Resolved

Uh oh!

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

Comment thread src/node_snapshotable.cc Resolved

Uh oh!

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

Comment thread src/node_snapshotable.cc Resolved

Uh oh!

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

Comment thread src/node_snapshotable.cc Resolved

Uh oh!

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

@github-actions github-actions Bot mentioned this pull request Mar 26, 2022
CI Reliability 2022-03-26 nodejs/reliability#232
Open
26 tasks
@joyeecheung
fixup! build: add --node-snapshot-main configure option
da8c19f
@nodejs-github-bot

This comment was marked as outdated.

Sign in to view
@joyeecheung
bootsrap: reset process._exit and process.exitCode in pre-execution
b1f934f
@github-actions github-actions Bot mentioned this pull request Mar 27, 2022
CI Reliability 2022-03-27 nodejs/reliability#233
Open
26 tasks
RaisinTen
RaisinTen reviewed Mar 27, 2022
View reviewed changes
Comment thread src/node_snapshotable.cc Resolved

Uh oh!

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

Comment thread src/node_snapshotable.cc Resolved

Uh oh!

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

Comment thread tools/snapshot/node_mksnapshot.cc Resolved

Uh oh!

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

Comment thread tools/snapshot/node_mksnapshot.cc Resolved

Uh oh!

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

Comment thread tools/snapshot/node_mksnapshot.cc Resolved

Uh oh!

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

Comment thread tools/snapshot/node_mksnapshot.cc Resolved

Uh oh!

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

Comment thread tools/snapshot/node_mksnapshot.cc Resolved

Uh oh!

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

Comment thread src/node_snapshotable.cc Resolved

Uh oh!

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

@github-actions github-actions Bot mentioned this pull request Mar 28, 2022
CI Reliability 2022-03-28 nodejs/reliability#234
Open
24 tasks
@joyeecheung joyeecheung mentioned this pull request Mar 28, 2022
snapshot cause EXC_BAD_ACCESS #40832
Closed
joyeecheung added 2 commits March 28, 2022 23:29
@joyeecheung
fixup! build: add --node-snapshot-main configure option
4d0500d
@joyeecheung
fixup! bootstrap: run inspector and event loop in snapshot builder
25f4c8d
@nodejs-github-bot

This comment was marked as outdated.

Sign in to view
@github-actions github-actions Bot mentioned this pull request Mar 29, 2022
CI Reliability 2022-03-29 nodejs/reliability#235
Open
12 tasks
@nodejs-github-bot

This comment was marked as outdated.

Sign in to view
RaisinTen
RaisinTen reviewed Mar 29, 2022
View reviewed changes
Comment thread src/node_snapshotable.cc Resolved

Uh oh!

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

Comment thread src/node_snapshotable.cc Resolved

Uh oh!

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

RaisinTen
RaisinTen approved these changes Mar 29, 2022
View reviewed changes

@RaisinTen RaisinTen 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
@github-actions github-actions Bot mentioned this pull request Mar 30, 2022
CI Reliability 2022-03-30 nodejs/reliability#236
Open
11 tasks
@VoltrexKeyva VoltrexKeyva removed the needs-ci PRs that need a full CI run. label Mar 30, 2022
VoltrexKeyva
VoltrexKeyva approved these changes Mar 30, 2022
View reviewed changes
@VoltrexKeyva VoltrexKeyva added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Mar 30, 2022
XadillaX
XadillaX approved these changes Mar 30, 2022
View reviewed changes

@XadillaX XadillaX left a comment

Copy link
Copy Markdown
Contributor

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.

👏🏻×1024

Sorry, something went wrong.

Uh oh!

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

All reactions
danielleadams pushed a commit that referenced this pull request Jun 27, 2022
@joyeecheung @danielleadams
bootstrap: reset process._exit and process.exitCode in pre-execution
b307282
PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
bootstrap: refresh options in pre-execution
741980f
Refresh the options map during pre-execution to pave the way for
user land snapshots which may need to access run-time options at
snapshot-building time. The default embedded bootstrap snapshot
is still prevented from accessing them at snapshot building time
since it serves a wider audience and is ignorant of application
states, while the user-land snapshots are meant to be
application-specific and so it makes sense for them to access
runtime states as long as the snapshotted-code
works with re-initialized runtime states.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
build: add --node-snapshot-main configure option
8a7892a
This adds a --build-snapshot runtime option which is currently only
supported by the node_mksnapshot binary, and a --node-snapshot-main
configure option that makes use it to run a custom script when
building the embedded snapshot. The idea is to have this experimental
feature in core as a configure-time feature for now, and investigate
the renaming V8 bugs before we make it available to more users via
making it a runtime option.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
bootstrap: make I/O streams work with user-land snapshot
2bcc85e
Use the mksnapshot cleanup hooks to release the references
to the native streams so that they can be destroyed right
before the snapshot is taken, and move the initialization
of the global console to pre-execution so that they can be
re-initialized during snapshot dehydration. This makes
it possible for user-land snapshots to use the I/O during
snapshot building.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
bootstrap: run inspector and event loop in snapshot builder
2cdeade
This makes --inspect and stdin/out functional in the embedded snapshot,
currently it's not guaranteed that these work perfectly, the
plan is to investigate any out-of-sync states that might appear
in user land snapshots with this while the it is a configure-time
feature.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
bootstrap: reset process._exit and process.exitCode in pre-execution
9b47f07
PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
bootstrap: refresh options in pre-execution
26fae87
Refresh the options map during pre-execution to pave the way for
user land snapshots which may need to access run-time options at
snapshot-building time. The default embedded bootstrap snapshot
is still prevented from accessing them at snapshot building time
since it serves a wider audience and is ignorant of application
states, while the user-land snapshots are meant to be
application-specific and so it makes sense for them to access
runtime states as long as the snapshotted-code
works with re-initialized runtime states.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
build: add --node-snapshot-main configure option
20dc492
This adds a --build-snapshot runtime option which is currently only
supported by the node_mksnapshot binary, and a --node-snapshot-main
configure option that makes use it to run a custom script when
building the embedded snapshot. The idea is to have this experimental
feature in core as a configure-time feature for now, and investigate
the renaming V8 bugs before we make it available to more users via
making it a runtime option.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
bootstrap: make I/O streams work with user-land snapshot
7a723ed
Use the mksnapshot cleanup hooks to release the references
to the native streams so that they can be destroyed right
before the snapshot is taken, and move the initialization
of the global console to pre-execution so that they can be
re-initialized during snapshot dehydration. This makes
it possible for user-land snapshots to use the I/O during
snapshot building.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
bootstrap: run inspector and event loop in snapshot builder
fc6153a
This makes --inspect and stdin/out functional in the embedded snapshot,
currently it's not guaranteed that these work perfectly, the
plan is to investigate any out-of-sync states that might appear
in user land snapshots with this while the it is a configure-time
feature.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 11, 2022
@joyeecheung @targos
bootstrap: reset process._exit and process.exitCode in pre-execution
ce3bfd3
PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
@joyeecheung @targos
bootstrap: refresh options in pre-execution
1b2946b
Refresh the options map during pre-execution to pave the way for
user land snapshots which may need to access run-time options at
snapshot-building time. The default embedded bootstrap snapshot
is still prevented from accessing them at snapshot building time
since it serves a wider audience and is ignorant of application
states, while the user-land snapshots are meant to be
application-specific and so it makes sense for them to access
runtime states as long as the snapshotted-code
works with re-initialized runtime states.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
@joyeecheung @targos
build: add --node-snapshot-main configure option
fe661fa
This adds a --build-snapshot runtime option which is currently only
supported by the node_mksnapshot binary, and a --node-snapshot-main
configure option that makes use it to run a custom script when
building the embedded snapshot. The idea is to have this experimental
feature in core as a configure-time feature for now, and investigate
the renaming V8 bugs before we make it available to more users via
making it a runtime option.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
@joyeecheung @targos
bootstrap: make I/O streams work with user-land snapshot
2d79480
Use the mksnapshot cleanup hooks to release the references
to the native streams so that they can be destroyed right
before the snapshot is taken, and move the initialization
of the global console to pre-execution so that they can be
re-initialized during snapshot dehydration. This makes
it possible for user-land snapshots to use the I/O during
snapshot building.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
@joyeecheung @targos
bootstrap: run inspector and event loop in snapshot builder
f8f7c1e
This makes --inspect and stdin/out functional in the embedded snapshot,
currently it's not guaranteed that these work perfectly, the
plan is to investigate any out-of-sync states that might appear
in user land snapshots with this while the it is a configure-time
feature.

PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
@joyeecheung @targos
bootstrap: reset process._exit and process.exitCode in pre-execution
b4201ac
PR-URL: #42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
@targos targos mentioned this pull request Aug 3, 2022
v16.17.0 release proposal #44098
Merged
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
@joyeecheung @guangwong
bootstrap: refresh options in pre-execution
4d012b2
Refresh the options map during pre-execution to pave the way for
user land snapshots which may need to access run-time options at
snapshot-building time. The default embedded bootstrap snapshot
is still prevented from accessing them at snapshot building time
since it serves a wider audience and is ignorant of application
states, while the user-land snapshots are meant to be
application-specific and so it makes sense for them to access
runtime states as long as the snapshotted-code
works with re-initialized runtime states.

PR-URL: nodejs/node#42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
@joyeecheung @guangwong
build: add --node-snapshot-main configure option
ce52a4b
This adds a --build-snapshot runtime option which is currently only
supported by the node_mksnapshot binary, and a --node-snapshot-main
configure option that makes use it to run a custom script when
building the embedded snapshot. The idea is to have this experimental
feature in core as a configure-time feature for now, and investigate
the renaming V8 bugs before we make it available to more users via
making it a runtime option.

PR-URL: nodejs/node#42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
@joyeecheung @guangwong
bootstrap: make I/O streams work with user-land snapshot
498b1a6
Use the mksnapshot cleanup hooks to release the references
to the native streams so that they can be destroyed right
before the snapshot is taken, and move the initialization
of the global console to pre-execution so that they can be
re-initialized during snapshot dehydration. This makes
it possible for user-land snapshots to use the I/O during
snapshot building.

PR-URL: nodejs/node#42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
@joyeecheung @guangwong
bootstrap: run inspector and event loop in snapshot builder
8170d39
This makes --inspect and stdin/out functional in the embedded snapshot,
currently it's not guaranteed that these work perfectly, the
plan is to investigate any out-of-sync states that might appear
in user land snapshots with this while the it is a configure-time
feature.

PR-URL: nodejs/node#42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
@joyeecheung @guangwong
bootstrap: reset process._exit and process.exitCode in pre-execution
2d038a2
PR-URL: nodejs/node#42466
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Reviewed-By: Khaidi Chu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
codebytere added a commit to electron/electron that referenced this pull request Oct 12, 2022
@codebytere
bootstrap: support configure-time user-land snapshot
3563840
nodejs/node#42466
codebytere added a commit to electron/electron that referenced this pull request Oct 17, 2022
@codebytere
bootstrap: support configure-time user-land snapshot
2b0eb99
nodejs/node#42466
codebytere added a commit to electron/electron that referenced this pull request Oct 19, 2022
@codebytere
bootstrap: support configure-time user-land snapshot
039d272
nodejs/node#42466
codebytere added a commit to electron/electron that referenced this pull request Oct 24, 2022
@codebytere
bootstrap: support configure-time user-land snapshot
48a1fdc
nodejs/node#42466
codebytere added a commit to electron/electron that referenced this pull request Nov 8, 2022
@codebytere
bootstrap: support configure-time user-land snapshot
6f4b0dd
nodejs/node#42466
codebytere added a commit to electron/electron that referenced this pull request Nov 8, 2022
@codebytere
bootstrap: support configure-time user-land snapshot
274439e
nodejs/node#42466
codebytere added a commit to electron/electron that referenced this pull request Nov 10, 2022
@codebytere @patchup
chore: upgrade to Node.js v18 (#35999)
75d2caf
* chore: update to Node.js v18

* child_process: improve argument validation

nodejs/node#41305

* bootstrap: support configure-time user-land snapshot

nodejs/node#42466

* chore: update GN patch

* src: disambiguate terms used to refer to builtins and addons

nodejs/node#44135

* src: use a typed array internally for process._exiting

nodejs/node#43883

* chore: lib/internal/bootstrap -> lib/internal/process

* src: disambiguate terms used to refer to builtins and addons

nodejs/node#44135

* chore: remove redudant browserGlobals patch

* chore: update BoringSSL patch

* src: allow embedder-provided PageAllocator in NodePlatform

nodejs/node#38362

* chore: fixup Node.js crypto tests

- nodejs/node#44171
- nodejs/node#41600

* lib: add Promise methods to avoid-prototype-pollution lint rule

nodejs/node#43849

* deps: update V8 to 10.1

nodejs/node#42657

* src: add kNoBrowserGlobals flag for Environment

nodejs/node#40532

* chore: consolidate asar initialization patches

* deps: update V8 to 10.1

nodejs/node#42657

* deps: update V8 to 9.8

nodejs/node#41610

* src,crypto: remove AllocatedBuffers from crypto_spkac

nodejs/node#40752

* build: enable V8's shared read-only heap

nodejs/node#42809

* src: fix ssize_t error from nghttp2.h

nodejs/node#44393

* chore: fixup ESM patch

* chore: fixup patch indices

* src: merge NativeModuleEnv into NativeModuleLoader

nodejs/node#43824

* [API] Pass OOMDetails to OOMErrorCallback

https://chromium-review.googlesource.com/c/v8/v8/+/3647827

* src: iwyu in cleanup_queue.cc

* src: return Maybe from a couple of functions

nodejs/node#39603

* src: clean up embedder API

nodejs/node#35897

* src: refactor DH groups to delete crypto_groups.h

nodejs/node#43896

* deps,src: use SIMD for normal base64 encoding

nodejs/node#39775

* chore: remove deleted source file

* chore: update patches

* chore: remove deleted source file

* lib: add fetch

nodejs/node#41749

* chore: remove nonexistent node specs

* test: split report OOM tests

nodejs/node#44389

* src: trace fs async api

nodejs/node#44057

* http: trace http request / response

nodejs/node#44102

* test: split test-crypto-dh.js

nodejs/node#40451

* crypto: introduce X509Certificate API

nodejs/node#36804

* src: split property helpers from node::Environment

nodejs/node#44056

* nodejs/node#38905

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

* lib,src: implement WebAssembly Web API

nodejs/node#42701

* fixup! deps,src: use SIMD for normal base64 encoding

* fixup! src: refactor DH groups to delete crypto_groups.h

* chore: fixup base64 GN file

* fix: check that node::InitializeContext() returns true

* chore: delete _noBrowserGlobals usage

* chore: disable fetch in renderer procceses

* dns: default to verbatim=true in dns.lookup()

nodejs/node#39987

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
khalwa pushed a commit to solarwindscloud/electron that referenced this pull request Feb 22, 2023
@codebytere @patchup @khalwa
chore: upgrade to Node.js v18 (electron#35999)
b19d67a
* chore: update to Node.js v18

* child_process: improve argument validation

nodejs/node#41305

* bootstrap: support configure-time user-land snapshot

nodejs/node#42466

* chore: update GN patch

* src: disambiguate terms used to refer to builtins and addons

nodejs/node#44135

* src: use a typed array internally for process._exiting

nodejs/node#43883

* chore: lib/internal/bootstrap -> lib/internal/process

* src: disambiguate terms used to refer to builtins and addons

nodejs/node#44135

* chore: remove redudant browserGlobals patch

* chore: update BoringSSL patch

* src: allow embedder-provided PageAllocator in NodePlatform

nodejs/node#38362

* chore: fixup Node.js crypto tests

- nodejs/node#44171
- nodejs/node#41600

* lib: add Promise methods to avoid-prototype-pollution lint rule

nodejs/node#43849

* deps: update V8 to 10.1

nodejs/node#42657

* src: add kNoBrowserGlobals flag for Environment

nodejs/node#40532

* chore: consolidate asar initialization patches

* deps: update V8 to 10.1

nodejs/node#42657

* deps: update V8 to 9.8

nodejs/node#41610

* src,crypto: remove AllocatedBuffers from crypto_spkac

nodejs/node#40752

* build: enable V8's shared read-only heap

nodejs/node#42809

* src: fix ssize_t error from nghttp2.h

nodejs/node#44393

* chore: fixup ESM patch

* chore: fixup patch indices

* src: merge NativeModuleEnv into NativeModuleLoader

nodejs/node#43824

* [API] Pass OOMDetails to OOMErrorCallback

https://chromium-review.googlesource.com/c/v8/v8/+/3647827

* src: iwyu in cleanup_queue.cc

* src: return Maybe from a couple of functions

nodejs/node#39603

* src: clean up embedder API

nodejs/node#35897

* src: refactor DH groups to delete crypto_groups.h

nodejs/node#43896

* deps,src: use SIMD for normal base64 encoding

nodejs/node#39775

* chore: remove deleted source file

* chore: update patches

* chore: remove deleted source file

* lib: add fetch

nodejs/node#41749

* chore: remove nonexistent node specs

* test: split report OOM tests

nodejs/node#44389

* src: trace fs async api

nodejs/node#44057

* http: trace http request / response

nodejs/node#44102

* test: split test-crypto-dh.js

nodejs/node#40451

* crypto: introduce X509Certificate API

nodejs/node#36804

* src: split property helpers from node::Environment

nodejs/node#44056

* nodejs/node#38905

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

* lib,src: implement WebAssembly Web API

nodejs/node#42701

* fixup! deps,src: use SIMD for normal base64 encoding

* fixup! src: refactor DH groups to delete crypto_groups.h

* chore: fixup base64 GN file

* fix: check that node::InitializeContext() returns true

* chore: delete _noBrowserGlobals usage

* chore: disable fetch in renderer procceses

* dns: default to verbatim=true in dns.lookup()

nodejs/node#39987

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@XadillaX XadillaX XadillaX approved these changes
@legendecas legendecas legendecas approved these changes
@RaisinTen RaisinTen RaisinTen approved these changes
+1 more reviewer
@VoltrexKeyva VoltrexKeyva VoltrexKeyva approved these changes
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. lib / src Issues and PRs involving general changes in the lib/ or src/ directories.

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.

6 participants

@joyeecheung @nodejs-github-bot @XadillaX @legendecas @RaisinTen @VoltrexKeyva
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 01402503 — 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.