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

v12.1.0 proposal #27440

Merged
merged 49 commits into from
Apr 29, 2019
Merged

v12.1.0 proposal #27440

merged 49 commits into from
Apr 29, 2019

Conversation

targos
Copy link
Member

@targos targos commented Apr 27, 2019

2019-04-29, Version 12.1.0 (Current), @targos

Notable changes

  • intl:
    • Update ICU to 64.2. This adds support for Japanese Era (Reiwa) (Ujjwal Sharma) #27361.
    • Fixes a bug in ICU that affected Node.js 12.0.0 in the case where new Date().toLocaleString() was called with a non-default locale (Steven R. Loomis) #27415.
  • C++ API:
    • Added an Environment overload of EmitAsyncDestroy (Anna Henningsen) #27255.

Commits

  • [8ca110cc6f] - benchmark: fix http bench-parser.js (Rich Trott) #27359
  • [2f9bafba08] - bootstrap: delay the instantiation of maps in per-context scripts (Joyee Cheung) #27371
  • [e7026f1428] - build: allow icu download to use other hashes besides md5 (Steven R. Loomis) #27370
  • [50234460f9] - build: disable custom v8 snapshot by default (Joyee Cheung) #27365
  • [b21b28f653] - crypto: update root certificates (Sam Roberts) #27374
  • [3282ccb845] - deps: backport ICU-20575 to fix err/crasher (Steven R. Loomis) #27435
  • [e922a22725] - deps: backport ICU-20558 to fix Intl crasher (Steven R. Loomis) #27415
  • [d852d9e904] - deps: update ICU to 64.2 (Ujjwal Sharma) #27361
  • [ee80a210ff] - dgram: change 'this' to 'self' for 'isConnected' (MaleDong) #27338
  • [8302148c83] - doc: add Node 12 to the first list of versions (Rivaldo Junior) #27414
  • [f6ceefa4bd] - doc: update comment in bootstrap for primordials (Myles Borins) #27398
  • [9c30806fb5] - doc: simplify GOVERNANCE.md text (Rich Trott) #27354
  • [453510c7ef] - doc: fix pull request number (Ruben Bridgewater) #27336
  • [36762883a0] - doc: clarify behaviour of writeFile(fd) (Sam Roberts) #27282
  • [f70588fb67] - doc: fix v12.0.0 changelog id (Beth Griggs) #27368
  • [a6d1fa5954] - doc: simplify Collaborator pre-nomination text (Rich Trott) #27348
  • [dd709fc84a] - lib: throw a special error in internal/assert (Joyee Cheung) #26635
  • [4dfe54a89a] - module: initialize module_wrap.callbackMap during pre-execution (Joyee Cheung) #27323
  • [8b5d73867f] - (SEMVER-MINOR) n-api: do not require JS Context for napi\_async\_destroy() (Anna Henningsen) #27255
  • [dc510fb435] - report: print common items first for readability (gengjiawen) #27367
  • [3614a00276] - src: refactor deprecated UVException in node_file.cc (gengjiawen) #27280
  • [071300b39d] - src: move OnMessage to node_errors.cc (Joyee Cheung) #27304
  • [81e7b49c8f] - src: use predefined AliasedBuffer types in the code base (Joyee Cheung) #27334
  • [8089d29567] - src: apply clang-tidy modernize-deprecated-headers found by Jenkins CI (gengjiawen) #27279
  • [619c5b6eb3] - (SEMVER-MINOR) src: do not require JS Context for \~AsyncResoure() (Anna Henningsen) #27255
  • [809cf595eb] - (SEMVER-MINOR) src: add Environment overload of EmitAsyncDestroy (Anna Henningsen) #27255
  • [7bc47cba2e] - src: apply clang-tidy rule modernize-use-equals-default (gengjiawen) #27264
  • [ad42cd69cf] - src: use std::vector<size_t> instead of IndexArray (Joyee Cheung) #27321
  • [228127fc67] - src: enable context snapshot after running per-context scripts (Joyee Cheung) #27321
  • [45d6106129] - src: enable snapshot with per-isolate data (Joyee Cheung) #27321
  • [631bea8fd2] - src: implement IsolateData serialization and deserialization (Joyee Cheung) #27321
  • [a636338945] - src: allow creating NodeMainInstance that does not own the isolate (Joyee Cheung) #27321
  • [50732c1b3f] - test: refactor net-connect-handle-econnrefused (Luigi Pinca) #27014
  • [e9021cc498] - test: move test-net-connect-handle-econnrefused (Luigi Pinca) #27014
  • [ebbed6047d] - test: rework to remove flakiness, and be parallel (Sam Roberts) #27300
  • [f0b2992f5c] - test: fix ineffective error tests (Masashi Hirano) #27333
  • [d84a6d05a1] - test: make test-worker-esm-missing-main more robust (Rich Trott) #27340
  • [8486917b9a] - test: increase coverage in lib/internal/dns/promises.js (Rich Trott) #27330
  • [6ca0270320] - tls: include invalid method name in thrown error (Sam Roberts) #27390
  • [dcbe5b9dff] - tools: update certdata.txt (Sam Roberts) #27374
  • [53f0ef36c0] - tools: update LICENSE and tools/icu/current_ver.dep (Ujjwal Sharma) #27361
  • [481789c235] - tools: fix use-after-free mkcodecache warning (Ben Noordhuis) #27332
  • [d62a3243b1] - tools: update tools/license-builder.sh (Ujjwal Sharma) #27362
  • [b44323f3de] - tools: implement node_mksnapshot (Joyee Cheung) #27321
  • [ae2333db65] - util: add prototype support for boxed primitives (Ruben Bridgewater) #27351
  • [8f3442809a] - util: rename setIteratorBraces to getIteratorBraces (Ruben Bridgewater) #27342
  • [973d705aa9] - util: improve Symbol.toStringTag handling (Ruben Bridgewater) #27342

joyeecheung and others added 30 commits April 27, 2019 11:35
Allows instantiating a NodeMainInstance with an isolate
whose initialization and disposal are controlled by the caller.

PR-URL: #27321
Refs: #17058
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This patch allows serializing per-isolate data into an isolate
snapshot and deserializing them from an isolate snapthot.

PR-URL: #27321
Refs: #17058
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Implements a node_mksnapshot target that generates a snapshot blob
from a Node.js main instance's isolate, and serializes the data blob
with other additional data into a C++ file that can be embedded into
the Node.js binary.

PR-URL: #27321
Refs: #17058
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Enable serializing the isolate from an isolate snapshot generated
by node_mksnapshot with per-isolate data.

PR-URL: #27321
Refs: #17058
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
At build time, snapshot the context after running per-context scripts
in the main instance, and in the final build, deserialize the
context in the main instance.

This provides a ~5% in the misc/startup benchmark when the instance
is launched within a process that runs test/fixtures/semicolon.js.

PR-URL: #27321
Refs: #17058
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #27321
Refs: #17058
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Split one very long sentence into three shorter sentences.

PR-URL: #27348
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Update tools/license-builder.sh in order to work normally after jinja2
and markupsafe were moved from tools/ to tools/inspector_protocol/ in
an earlier commit.

Refs: #25614

PR-URL: #27362
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
This currently breaks `test/pummel/test-hash-seed.js`

PR-URL: #27365
Refs: #27321
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
PR-URL: #27368
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
The internal HTTParser `reinitialize()` function was removed in
ece5073 and replaced with an `initialize()` function. This broke
benchmark/http/bench-parser.js. This change updates the benchmark so
that it runs again.

PR-URL: #27359
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Add a test for the only uncovered code in lib/internal/dns/promises.js.

PR-URL: #27330
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
The function 'isConnected' is directly called by many 'Socket' instance,
so we shouldn't directly use 'this' because 'this' will be the self of
function itself, and we should use 'self' as the instance of 'Socket'
function.

PR-URL: #27338
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
test-worker-esm-missing-main failed in CI recently in a way that
suggests that maybe the `does-not-exist.js` file did in fact exist.
Maybe that isn't what happened at all, but let's rule it out by changing
the use of `does-not-exist.js` from a file expected to be missing from
the current working directory to a file in the temp directory, which the
test will remove and recreate at the outset.

PR-URL: #27340
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Fix tests whether errors are thrown correctly
because they are successful when error doesn't get thrown.

PR-URL: #27333
Fixes: #26385
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Call `v8::Platform::ShutdownPlatform()` to fix a Coverity warning about
the `v8::Platform` instance being deleted when it's still in use.

PR-URL: #27332
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This is a continuing source of confusion, attempt to make it even more
clear.

Fixes: #24923

PR-URL: #27282
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
PR-URL: #27264
Reviewed-By: Refael Ackermann <refack@gmail.com>
This can be necessary for being able to call the function when no
JS Context is on the stack, e.g. during GC.

Refs: #27218

PR-URL: #27255
Fixes: #27218
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Allow the function to be called during GC, which is a common use case.

Fixes: #27218

PR-URL: #27255
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Allow the destructor to be called during GC,
which is a common use case.

PR-URL: #27255
Fixes: #27218
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
This fixes a pull request number in `repl.md`.

PR-URL: #27336
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Instead of using the public AssertionError, use a simplified
error that describes potential causes of these assertions
and suggests the user to open an issue.

PR-URL: #26635
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Since the bootstrap does not actually use ESM at all, there
is no need to create this map so early. This patch moves
the initialization of the map to pre-execution,
so that the only binding loaded in loaders is native_module.
In addition, switch to SafeWeakMap.

PR-URL: #27323
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Only special handle `Symbol.toStringTag` if the property is not
enumerable or not the own property of the inspected object.

PR-URL: #27342
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
The function is actually a getter, not a setter.

PR-URL: #27342
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Let .end() propogate from client, to server, and back, before
considering the test complete. Also, remove the test vector and exit
handling in favour of running all the tests in parallel and using
common.must/mustNotCall().

PR-URL: #27300
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Update the version of the bundled ICU (deps/icu-small) to ICU version
64.2 (Unicode 12, CLDR 35)

Fixes: #26388

PR-URL: #27361
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Update the LICENSE file and tools/icu/current_ver.dep file in order to
finalize the upgrade to ICU 64.2

PR-URL: #27361
Fixes: #26388
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
This is the certdata.txt[0] from NSS 3.43, released on 2019-03-15.

This is the version of NSS that will ship in Firefox 67 on
2019-03-19.

[0] https://hg.mozilla.org/projects/nss/raw-file/NSS_3_43_RTM/lib/ckfw/builtins/certdata.txt

PR-URL: #27374
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
@refack
Copy link
Contributor

refack commented Apr 27, 2019

RE: 50234460f9 & b44323f3de I see them already there, and they should stay together (Either both in or both out).
https://ci.nodejs.org/job/node-release-candidate/3/ to make sure the pummel test suite passes.

@targos
Copy link
Member Author

targos commented Apr 27, 2019

@srl295 It's a crasher but IIUC it affects only ICU 64, which never was in a Node.js release, so I think we can keep it out of the notable changes.

@targos
Copy link
Member Author

targos commented Apr 27, 2019

@refack is https://ci.nodejs.org/job/node-release-candidate ready for production? We should update the release guide if that's the case.

@refack
Copy link
Contributor

refack commented Apr 27, 2019

@refack is https://ci.nodejs.org/job/node-release-candidate ready for production? We should update the release guide if that's the case.

You tell me... I did the best I could, now it just needs some QA.

@targos
Copy link
Member Author

targos commented Apr 27, 2019

@mcollina is readable-stream expected to fail?

The error is:

 /home/iojs/build/workspace/citgm-smoker/nodes/debian9-64/citgm_tmp/9700a236-12e4-47f2-9bee-da4d38355a1d/readable-stream/node_modules/assert/assert.js:195
   throw new assert.AssertionError({
   ^
 AssertionError: 'Unexpected global(s) found: queueMicrotask' === 'kaboom'
     at process.<anonymous> (/home/iojs/build/workspace/citgm-smoker/nodes/debian9-64/citgm_tmp/9700a236-12e4-47f2-9bee-da4d38355a1d/readable-stream/test/parallel/test-stream-pipeline.js:458:12)
     at process.<anonymous> (/home/iojs/build/workspace/citgm-smoker/nodes/debian9-64/citgm_tmp/9700a236-12e4-47f2-9bee-da4d38355a1d/readable-stream/test/common/index.js:371:15)
     at process.emit (events.js:201:15)
     at process.emit (/home/iojs/build/workspace/citgm-smoker/nodes/debian9-64/citgm_tmp/9700a236-12e4-47f2-9bee-da4d38355a1d/readable-stream/node_modules/source-map-support/source-map-support.js:465:21)
     at processEmit [as emit] (/home/iojs/build/workspace/citgm-smoker/nodes/debian9-64/citgm_tmp/9700a236-12e4-47f2-9bee-da4d38355a1d/readable-stream/node_modules/signal-exit/index.js:155:32)
     at process._fatalException (internal/process/execution.js:146:25)

@BridgeAR
Copy link
Member

@targos readable-streams pulls in the Node.js tests and we verify in common/index.js that we always have a whitelist of globals at the end of the test. Since this whitelist is not updated to the newest version, it's expected to fail (and does so since queueMicrotask is not experimental anymore).

@srl295
Copy link
Member

srl295 commented Apr 28, 2019

@targos i wasn't sure both crashers made it into the proposal, but i see they are there. So all LGTM

@targos
Copy link
Member Author

targos commented Apr 29, 2019

@gireeshpunathil If it doesn't land by noon UTC today, it'll have to wait for the next release.

@gireeshpunathil
Copy link
Member

sure, I posted a comment in #27373 , let us see if it receives any response.

joyeecheung and others added 2 commits April 29, 2019 14:32
Previously, we call the JS land `runNextTicks` implementation
immediately from JS land after evaluating the main module or the
input, so these synchronous JS call frames would show up in the stack
trace of the async errors, which can be confusing. This patch moves
those calls into C++ so that more of these internal scheduler
implementation details can be hidden and the users can see a cleaner
a cleaner async JS stack trace.

PR-URL: #27392
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Notable changes:

* intl:
  * Update ICU to 64.2. This adds support for Japanese Era (Reiwa).
    #27361
  * Fixes a bug in ICU that affected Node.js 12.0.0 in the case where
    `new Date().toLocaleString()` was called with a non-default locale.
    #27415
* C++ API:
  * Added an overload of `EmitAsyncDestroy` that can be used during
    garbage collection.
    #27255

PR-URL: #27440
@nodejs-github-bot
Copy link
Collaborator

@targos
Copy link
Member Author

targos commented Apr 29, 2019

@targos
Copy link
Member Author

targos commented Apr 29, 2019

node-test-linux-linked-withoutintl failed:

14:42:15 not ok 2077 parallel/test-util-inspect
14:42:15   ---
14:42:15   duration_ms: 0.213
14:42:15   severity: fail
14:42:15   exitcode: 1
14:42:15   stack: |-
14:42:15     assert.js:89
14:42:15       throw new AssertionError(obj);
14:42:15       ^
14:42:15     
14:42:15     AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
14:42:15     + actual - expected
14:42:15     
14:42:15     + 'WeakSet {  }'
14:42:15     - 'WeakSet { ... 2 more items }'
14:42:15                  ^
14:42:15         at Object.<anonymous> (/home/iojs/build/workspace/node-test-commit-linux-containered/test/parallel/test-util-inspect.js:1655:10)
14:42:15         at Module._compile (internal/modules/cjs/loader.js:759:30)
14:42:15         at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
14:42:15         at Module.load (internal/modules/cjs/loader.js:628:32)
14:42:15         at Function.Module._load (internal/modules/cjs/loader.js:555:12)
14:42:15         at Function.Module.runMain (internal/modules/cjs/loader.js:824:10)
14:42:15         at internal/main/run_main_module.js:17:11

@BridgeAR any idea how that could happen? It did not fail two days ago and I only added d00014e today.

@nodejs-github-bot
Copy link
Collaborator

@targos
Copy link
Member Author

targos commented Apr 29, 2019

It passed on rebuild, weird...

@gireeshpunathil
Copy link
Member

@targos - sorry if this is delayed; but here is the commit from #27373 : cc7b3fb thanks!

@targos targos merged commit bf12414 into v12.x Apr 29, 2019
targos added a commit that referenced this pull request Apr 29, 2019
targos added a commit that referenced this pull request Apr 29, 2019
Notable changes:

* intl:
  * Update ICU to 64.2. This adds support for Japanese Era (Reiwa).
    #27361
  * Fixes a bug in ICU that affected Node.js 12.0.0 in the case where
    `new Date().toLocaleString()` was called with a non-default locale.
    #27415
* C++ API:
  * Added an overload of `EmitAsyncDestroy` that can be used during
    garbage collection.
    #27255

PR-URL: #27440
targos added a commit to nodejs/nodejs.org that referenced this pull request Apr 29, 2019
targos added a commit to nodejs/nodejs.org that referenced this pull request Apr 29, 2019
@targos targos deleted the v12.1.0-proposal branch April 29, 2019 14:45
@targos targos added release Issues and PRs related to Node.js releases. and removed build Issues and PRs related to build files or the CI. meta Issues and PRs related to the general management of the project. labels Jun 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Issues and PRs related to Node.js releases.
Projects
None yet
Development

Successfully merging this pull request may close these issues.