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

v10.5.0 proposal #21400

Merged
merged 150 commits into from
Jun 20, 2018
Merged

v10.5.0 proposal #21400

merged 150 commits into from
Jun 20, 2018

Conversation

targos
Copy link
Member

@targos targos commented Jun 19, 2018

2018-06-20, Version 10.5.0 (Current), @targos

Notable Changes

  • crypto:
    • Support for crypto.scrypt() has been added. #20816
  • fs:
    • BigInt support has been added to fs.stat and fs.watchFile. #20220
    • APIs that take mode as arguments no longer throw on values larger than
      0o777. #20636 #20975 (Fixes: #20498)
    • Fix crashes in closed event watchers. #20985 (Fixes: #20297)
  • Worker Threads:
    • Support for multi-threading has been added behind the
      --experimental-worker flag in the worker_threads module. This feature
      is experimental and may receive breaking changes at any time. #20876

Commits

  • [a6986fe8b6] - async_hooks: remove deprecated example (Mathias Buus) #20998
  • [4b9817bf1e] - benchmark: disable only the ESLint rule needing it (Rich Trott) #21133
  • [ecba1c57b1] - (SEMVER-MINOR) benchmark: port cluster/echo to worker (Timothy Gu) #20876
  • [02adb2d62c] - (SEMVER-MINOR) build: expose openssl scrypt functions to addons (Ben Noordhuis) #20816
  • [c3fbac432f] - build: install markdown linter for travis (Richard Lau) #21215
  • [896017b134] - build: build addon tests in parallel (Anna Henningsen) #21155
  • [76927fc734] - build: stop distclean from deleting v8 files (Ujjwal Sharma) #21164
  • [b044256f2a] - build: use LC_ALL of C for maximum compatibility (Rich Trott) #21222
  • [78c7d666fb] - build: don't change locale on smartos (Refael Ackermann) #21220
  • [c688a00a6d] - build: fix 'gas_version' check on localized environments (Evandro Oliveira) #20394
  • [79b3423fb5] - build: initial .travis.yml implementation (Anna Henningsen) #21059
  • [ea4be72f22] - child_process: swallow errors in internal communication (Anatoli Papirovski) #21108
  • [9981220e2a] - crypto: fix behavior of createCipher in wrap mode (Tobias Nießen) #21287
  • [d0cb9cbb35] - (SEMVER-MINOR) crypto: drop Math.pow(), use static exponentation (Ben Noordhuis) #20816
  • [2d9c3cc89d] - (SEMVER-MINOR) crypto: refactor randomBytes() (Ben Noordhuis) #20816
  • [6262fa44d6] - (SEMVER-MINOR) crypto: refactor pbkdf2() and pbkdf2Sync() methods (Ben Noordhuis) #20816
  • [c9b4592dbf] - (SEMVER-MINOR) crypto: add scrypt() and scryptSync() methods (Ben Noordhuis) #20816
  • [495756264a] - (SEMVER-MINOR) crypto: DRY type checking (Ben Noordhuis) #20816
  • [e4a7e0d28b] - deps: float ea7abee from openssl / CVE-2018-0732 (Rod Vagg) #21282
  • [0b90b071c4] - deps: Upgrade node-inspect to 1.11.5 (Jan Krems) #21055
  • [ffc29c12da] - deps: patch V8 to 6.7.288.46 (Myles Borins) #21260
  • [14bb905d18] - deps: V8: cherry-pick a440efb27f from upstream (Yang Guo) #21022
  • [65b9c427ac] - dns: improve setServers() errors and performance (Jamie Davis) #20445
  • [bc20ec0c0f] - doc: eliminate _you_ from N-API doc (Rich Trott) #21382
  • [318d6831bf] - doc: use imperative in COLLABORATOR_GUIDE (Rich Trott) #21340
  • [177a7c06a8] - doc: remove obsolete wiki references from BUILDING (Rich Trott) #21369
  • [15023df050] - doc: add davisjam to collaborators (Jamie Davis) #21273
  • [17c21b67ac] - doc: fix indentation in console.md (Vse Mozhet Byt) #21367
  • [ef74368416] - doc: fix heading of optional console method args (Michaël Zasso) #21311
  • [4f17841c20] - doc: use Class Method label consistently (Rich Trott) #21357
  • [4566ebacf4] - doc: wrap style guide at 80 characters (Rich Trott) #21361
  • [6c41f33571] - doc: wrap pull-requests.md at 80 characters (Rich Trott) #21361
  • [b8213f17cc] - doc: remove linking of url text to url (Rich Trott) #21361
  • [3f78220c2b] - doc: correct styling of _GitHub_ in onboarding doc (Rich Trott) #21361
  • [9e994cb119] - doc: wrap releases.md at 80 chars (Rich Trott) #21361
  • [e00e5e6d5d] - doc: switch the order of Writable and Readable (Joseph Gordon) #21333
  • [e1b571d6b7] - doc: make Deprecation cycle explanation more brief (Rich Trott) #21303
  • [df0f7a3b4d] - doc: clarify async execute callback usage (Michael Dawson) #21217
  • [c5a65594ef] - doc: move 5 collaborators to emeritus status (Rich Trott) #21272
  • [c1d53f86f8] - doc: update NODE_OPTIONS section in cli.md (Vse Mozhet Byt) #21229
  • [13fd09bfa7] - doc: add build wg info to releases.md (Jon Moss) #21275
  • [0da910f9a5] - doc: move Italo A. Casas to Release Emeritus (Myles Borins) #21315
  • [6f7de0b8d9] - doc: trim deprecation level definition text (Rich Trott) #21241
  • [dd2fc90dcf] - doc: fix reference to workerData in worker_threads (Jeremiah Senkpiel) #21180
  • [5e46c16371] - doc: fix type in stream doc (Aliaksei Tuzik) #21178
  • [85dc9ac418] - doc: add Michaël Zasso to Release team (Michaël Zasso) #21114
  • [5fa5ab6c48] - doc: naming function as suggested in addon docs (Tommaso Allevi) #21067
  • [fe5d35123b] - (SEMVER-MINOR) doc: document BigInt support in fs.Stats (Joyee Cheung) #20220
  • [2c4f80ffba] - doc: remove spaces around slashes (Rich Trott) #21140
  • [72e7e1da2d] - doc: alphabetize tls options (Rich Trott) #21139
  • [06ac81e786] - doc: streamline errors.md introductory material (Rich Trott) #21138
  • [73b8975b41] - doc: simplify deprecation language (Rich Trott) #21136
  • [6caa354377] - (SEMVER-MINOR) doc: explain Worker semantics in async_hooks.md (Anna Henningsen) #20876
  • [9f9355d6d2] - doc: fix inconsistent documentation (host vs hostname) (Davis Okoth) #20933
  • [a5c571424a] - doc: document file mode caveats on Windows (Joyee Cheung) #20636
  • [a75e44d135] - esm: ensure require.main for CJS top-level loads (Guy Bedford) #21150
  • [04e8f0749e] - (SEMVER-MINOR) fs: support BigInt in fs.*stat and fs.watchFile (Joyee Cheung) #20220
  • [c09bfd81b7] - fs: do not crash when using a closed fs event watcher (Joyee Cheung) #20985
  • [bacb2cb550] - fs: refactor fs module (James M Snell) #20764
  • [db0bb5214a] - fs: improve fchmod{Sync} validation (cjihrig) #20588
  • [2ffb9d6b5c] - fs: drop duplicate API in promises mode (Сковорода Никита Андреевич) #20559
  • [fc0b3610e2] - fs: don't limit ftruncate() length to 32 bits (cjihrig) #20851
  • [469baa062e] - fs: add length validation to fs.truncate() (cjihrig) #20851
  • [6aade4a765] - http: remove a pair of outdated comments (Mark S. Everitt) #21214
  • [bcaf59c739] - http2: fix memory leak for uncommon headers (Anna Henningsen) #21336
  • [dee250fd77] - http2: safer Http2Session destructor (Anatoli Papirovski) #21194
  • [296fd57324] - inspector: stop dragging platform pointer (Eugene Ostroukhov)
  • [fb71337bdf] - (SEMVER-MINOR) lib: rename checkIsArrayBufferView() (Ben Noordhuis) #20816
  • [f3570f201b] - (SEMVER-MINOR) lib: replace checkUint() with validateInt32() (Ben Noordhuis) #20816
  • [b4b7d368be] - lib: unmask mode_t values with 0o777 (Joyee Cheung) #20975
  • [36e5100a39] - lib: support ranges in validateInt32() (cjihrig) #20588
  • [2fe88d2218] - lib: mask mode_t type of arguments with 0o777 (Joyee Cheung) #20636
  • [a0cfb0c9d4] - lib: add validateInteger() validator (cjihrig) #20851
  • [740d9f1a0e] - lib,src: make StatWatcher a HandleWrap (Anna Henningsen) #21244
  • [a657984109] - lib,src: remove openssl feature conditionals (Ben Noordhuis) #21094
  • [653b20b26d] - loader: remove unused error code in module_job (Gus Caplan) #21354
  • [5d3dfedca2] - meta: remove CODEOWNERS (Rich Trott) #21161
  • [169bff3e9e] - n-api: name CallbackBundle function fields (Anna Henningsen) #21240
  • [1dc9330b3a] - n-api: improve runtime perf of n-api func call (Kenny Yuan) #21072
  • [9047c8182c] - n-api: remove unused napi_env member (Gabriel Schulhof) #21127
  • [18c057ab26] - net: emit 'close' when socket ends before connect (Brett Kiefer) #21290
  • [a3fd1cd8ea] - perf_hooks: remove less useful bootstrap marks (James M Snell) #21247
  • [8fddf591c5] - perf_hooks: set bootstrap complete in only one place (James M Snell) #21247
  • [fc2956d37a] - process: backport process/methods file (Michaël Zasso) #21172
  • [78ad4e9dde] - src: remove unused argc var in node_stat_watcher (Daniel Bevenius) #21337
  • [7fa1344143] - src: use %zx in printf for size_t (Anna Henningsen) #21323
  • [671346ee8f] - src: do proper error checking in AsyncWrap::MakeCallback (Anna Henningsen) #21189
  • [aa468abc4c] - src: unify native symbol inspection code (Anna Henningsen) #21238
  • [e92b89a75d] - src: fix http2 typos (Anatoli Papirovski) #21194
  • [4f01168414] - src: do not persist fs_poll handle in stat_watcher (Anatoli Papirovski) #21093
  • [685b9b2a6a] - src: do not persist timer handle in cares_wrap (Anatoli Papirovski) #21093
  • [4757771db3] - src: add consistency check to node_platform.cc (Anna Henningsen) #21156
  • [8e2e16721b] - src: add node_encoding.cc (James M Snell) #21112
  • [39b38754eb] - src: cleanup beforeExit for consistency (James M Snell) #21113
  • [314b47d1cf] - (SEMVER-MINOR) src: add Env::profiler_idle_notifier_started() (Timothy Gu) #20876
  • [5209ff9562] - (SEMVER-MINOR) src: remove unused fields msg_ and env_ (Daniel Bevenius) #20876
  • [9a734132f9] - (SEMVER-MINOR) src: make handle onclose property a Symbol (Anna Henningsen) #20876
  • [e6f06807b1] - (SEMVER-MINOR) src: simplify handle closing (Anna Henningsen) #20876
  • [65924c70e8] - (SEMVER-MINOR) src: remove unused fields isolate_ (Daniel Bevenius) #20876
  • [de7403f813] - (SEMVER-MINOR) src: cleanup per-isolate state on platform on isolate unregister (Anna Henningsen) #20876
  • [ba17c9e46b] - src: refactor bootstrap to use bootstrap object (James M Snell) #20917
  • [cbdc1fdf44] - src, tools: add check for left leaning pointers (Daniel Bevenius) #21010
  • [935309325b] - test: fix deprecation warning due to util.print (Tobias Nießen) #21265
  • [d7ba75f8aa] - test: add test to check colorMode type of Console (Masashi Hirano) #21248
  • [0b00172df8] - test: removing unnecessary parameter from assert call (djmgit) #21307
  • [dea3ac7bff] - test: improve statwatcher async_hooks test (Anna Henningsen) #21244
  • [792335f712] - test: add workerdata-sharedarraybuffer test (Jeremiah Senkpiel) #21180
  • [e8d15cb149] - test: mark test-inspector-port-zero-cluster flaky (Rich Trott) #21251
  • [688bdfef7f] - test: add crypto check to test-http2-debug (Daniel Bevenius) #21205
  • [2270ab2a12] - test: remove string literals from assert.strictEqual() calls (James Kylstra) #21211
  • [187951c0fc] - test: move inspector-stress-http to sequential (Rich Trott) #21227
  • [bda34ea203] - test: check gc does not resurrect the loop (Anatoli Papirovski) #21093
  • [4d782c4720] - test: improve assert error messages (Hristijan Gjorgjievski) #21160
  • [2655c7b194] - test: mark fs-readfile-tostring-fail flaky for all (Rich Trott) #21177
  • [17954c2b01] - test: improve internal/buffer.js test coverage (Masashi Hirano) #21061
  • [2ff4704447] - test: move test-readuint to test-buffer-readuint (Michaël Zasso) #21170
  • [9c3a7bf076] - test: make url-util-format engine agnostic (Rich Trott) #21141
  • [3d8ec8f85c] - test: make url-parse-invalid-input engine agnostic (Rich Trott) #21132
  • [0b0370f884] - test: remove unref in http2 test (Anatoli Papirovski) #21145
  • [14a017cf8d] - test: apply promises API to fourth appendFile test (Rich Trott) #21131
  • [aa9dbf666b] - test: apply promises API to fourth appendFile test (Rich Trott) #21131
  • [185b9e45d3] - test: apply promises API to third appendFile test (Rich Trott) #21131
  • [c400448e85] - test: improve debug output in trace-events test (Rich Trott) #21120
  • [a4ad9891e3] - test: add test for Linux perf (Matheus Marchini) #20783
  • [e16036c462] - test: create new directory v8-updates (Matheus Marchini) #20783
  • [93ce63c89f] - (SEMVER-MINOR) test: add test against unsupported worker features (Timothy Gu) #20876
  • [94dcdfb898] - test: increase coverage for fs.promises.truncate (Masashi Hirano) #20638
  • [c9cee63179] - test,tools: refactor custom ESLint for readability (Rich Trott) #21134
  • [ed05d9a821] - (SEMVER-MINOR) test,tools: enable running tests under workers (Anna Henningsen) #20876
  • [6285fe94f6] - tools: do not disable quotes rule in .eslintrc.js (Rich Trott) #21338
  • [98346de08c] - tools: lint doc/*.md files (Rich Trott) #21361
  • [521f8f1d95] - tools: add BigInt64Array and BigUint64Array to globals (Joyee Cheung) #21255
  • [a5c386d1ba] - tools: add option to use custom template with js2c.py (Shelley Vohr) #21187
  • [7f70fe83ef] - tools: add BigInt to globals (Nikolai Vavilov) #21237
  • [4e742e379b] - tools: update tooling to work with new macOS CLI … (Rich Trott) #21173
  • [ed2b57bcd5] - tools: remove unused global types from type-parser (Rich Trott) #21135
  • [d46446afc5] - v8: replace Buffer with FastBuffer in deserialize (Ujjwal Sharma) #21196
  • [917960e0a1] - win, build: add documentation support to vcbuild (Bartosz Sosnowski) #19663
  • [03fbc9e749] - (SEMVER-MINOR) worker: rename to worker_threads (Anna Henningsen) #20876
  • [9ad42b766e] - (SEMVER-MINOR) worker: improve error (de)serialization (Anna Henningsen) #20876
  • [6b1a887aa2] - (SEMVER-MINOR) worker: enable stdio (Anna Henningsen) #20876
  • [c97fb91e55] - (SEMVER-MINOR) worker: restrict supported extensions (Timothy Gu) #20876
  • [109c92e8fa] - (SEMVER-MINOR) worker: initial implementation (Anna Henningsen) #20876
  • [d1f372f052] - (SEMVER-MINOR) worker: add SharedArrayBuffer sharing (Anna Henningsen) #20876
  • [f447acd87b] - (SEMVER-MINOR) worker: support MessagePort passing in messages (Anna Henningsen) #20876
  • [337be58ee6] - (SEMVER-MINOR) worker: implement MessagePort and MessageChannel (Anna Henningsen) #20876
  • [4a54ebc3bd] - worker,src: display remaining handles if uv\_loop\_close fails (Anna Henningsen) #21238
  • [529d24e3e8] - Revert "workers,trace_events: set thread name for workers" (James M Snell) #21363
  • [dfb5cf6963] - workers,trace_events: set thread name for workers (James M Snell) #21246

cjihrig and others added 30 commits June 13, 2018 08:39
This allows validation of integers that are not int32 or uint32.

PR-URL: #20851
Fixes: #20844
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>

Backport-PR-URL: #21171
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit adds validation to the length parameter of
fs.truncate(). Prior to this commit, passing a non-number would
trigger a CHECK() in the binding layer.

Backport-PR-URL: #21171
PR-URL: #20851
Fixes: #20844
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>

Backport-PR-URL: #21171
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
The length used by ftruncate() is 64 bits in the binding layer.
This commit removes the 32 bit restriction in the JS layer.

Backport-PR-URL: #21171
PR-URL: #20851
Fixes: #20844
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>

Backport-PR-URL: #21171
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
To ease future backports, create the process/methods file introduced in
#19973. This commit just adds
the JS functions that forward calls to C++ and does not change type
checking.

PR-URL: #21172
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.

PR-URL: #20636
Fixes: #20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

Backport-PR-URL: #21172
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.

PR-URL: #20636
Fixes: #20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

Backport-PR-URL: #21172
This drops exporting duplicate methods that accept FileHandle as the
first argument (to mirror callback-based methods accepting 'fd').

Those methods were not adding actual value to the API because all of
those are already present as FileHandle methods, and they would
probably be confusing to the new users and making docs harder to read.

Also, the API was a bit inconsistent and lacked .close(handle).

Fixes: #20548
PR-URL: #20559
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

Backport-PR-URL: #21172
This commit adds minimum and maximum value checks to the
validateInt32() validator.

PR-URL: #20588
Fixes: #20498
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Weijia Wang <starkwang@126.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>

Backport-PR-URL: #21172
This commit validates the fd parameters to fs.fchmod{Sync} as
int32s instead of uint32s because they are ints in the binding
layer.

PR-URL: #20588
Fixes: #20498
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Weijia Wang <starkwang@126.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>

Backport-PR-URL: #21172
PR-URL: #20764
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>

Backport-PR-URL: #21172
To increase test coverage, added tests for fs.promises.truncate
and FileHandle.truncate.

PR-URL: #20638
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

Backport-PR-URL: #21172
PR-URL: #20917
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>

Backport-PR-URL: #21172
Update reference to read `hostname` instead of `host` for consistency.

Also update function signature to use `hostname` rather than `host`

PR-URL: #20933
Refs: #20892
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

Backport-PR-URL: #21172
This commit allows permission bits higher than 0o777 to go through
the API (e.g. `S_ISVTX`=`0o1000`, `S_ISGID`=`0o2000`,
`S_ISUID`=`0o4000`).

Also documents that these bits are not exposed through `fs.constants`
and their behaviors are platform-specific, so the users need to
use them on their own risk.

PR-URL: #20975
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>

Backport-PR-URL: #21172
Before this commit, when the user calls methods on a closed or
errored fs event watcher, they could hit a crash since the
FSEventWrap in C++ land may have already been destroyed with
the internal pointer set to nullptr. This commit makes sure
that the user cannot hit crashes like that, instead the
methods calling on a closed watcher will be noops.

Also explicitly documents that the watchers should not be used
in `close` and `error` event handlers.

PR-URL: #20985
Fixes: #20738
Fixes: #20297
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Ron Korving <ron@ronkorving.nl>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>

Backport-PR-URL: #21172
PR-URL: #20998
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>

Backport-PR-URL: #21172
`wrap_template` is no longer used since we've switched to v8::Private.

PR-URL: #21127
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Clean up once all references to an `Isolate*` are gone from the
`NodePlatform`, rather than waiting for the `PerIsolatePlatformData`
struct to be deleted since there may be cyclic references between
that struct and the individual tasks.

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Currently the following compiler warnings are generated:

In file included from ../src/node_platform.cc:1:
../src/node_platform.h:83:16:
warning: private field 'isolate_' is not used [-Wunused-private-field]
  v8::Isolate* isolate_;
               ^
1 warning generated.

This commit removes these unused private member.

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Remove one extra closing state and use a smart pointer for
deleting `HandleWrap`s.

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
This makes the property “more” hidden when exposing a `HandleWrap`
as public API, e.g. for upcoming `MessagePort`s.

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Implement `MessagePort` and `MessageChannel` along the lines of
the DOM classes of the same names. `MessagePort`s initially
support transferring only `ArrayBuffer`s.

Thanks to Stephen Belanger for reviewing this change in its
original form, to Benjamin Gruenbaum for reviewing the
added tests in their original form, and to Olivia Hugger
for reviewing the documentation in its original form.

Refs: ayojs/ayo#98

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Support passing `MessagePort` instances through other `MessagePort`s,
as expected by the `MessagePort` spec.

Thanks to Stephen Belanger for reviewing this change in its original PR.

Refs: ayojs/ayo#106

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Logic is added to the `MessagePort` mechanism that
attaches hidden objects to those instances when they are transferred
that track their lifetime and maintain a reference count, to make
sure that memory is freed at the appropriate times.

Thanks to Stephen Belanger for reviewing this change in its original PR.

Refs: ayojs/ayo#106

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Currently the following compiler warnings are generated:

../src/node_messaging.cc:74:16:
warning: private field 'env_' is not used [-Wunused-private-field]
  Environment* env_;
               ^
../src/node_messaging.cc:75:12:
warning: private field 'msg_' is not used [-Wunused-private-field]
  Message* msg_;
           ^
2 warnings generated.

This commit removes these unused private members.

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Refs: ayojs/ayo#93
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Implement multi-threading support for most of the API.

Thanks to Stephen Belanger for reviewing this change in its
original form, to Olivia Hugger for reviewing the
documentation and some of the tests coming along with it,
and to Alexey Orlenko and Timothy Gu for reviewing other
parts of the tests.

Refs: ayojs/ayo#110
Refs: ayojs/ayo#114
Refs: ayojs/ayo#117

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Refs: ayojs/ayo#113
Reviewed-By: Anna Henningsen <anna@addaleax.net>

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Only allow `.js` and `.mjs` extensions to provide future-proofing
for file type detection.

Refs: ayojs/ayo#117
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Olivia Hugger <olivia@fastmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Provide `stdin`, `stdout` and `stderr` options for the `Worker`
constructor, and make these available to the worker thread
under their usual names.

The default for `stdin` is an empty stream, the default for
`stdout` and `stderr` is redirecting to the parent thread’s
corresponding stdio streams.

PR-URL: #20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. doc Issues and PRs related to the documentations. meta Issues and PRs related to the general management of the project. openssl Issues and PRs related to the OpenSSL dependency. tools Issues and PRs related to the tools directory. v10.x v8 engine Issues and PRs related to the V8 dependency. labels Jun 19, 2018
@targos
Copy link
Member Author

targos commented Jun 19, 2018

I'm going to do the release tomorrow with @MylesBorins's help.

@addaleax Can you help me to write the notable changes for workers?

@targos targos force-pushed the v10.5.0-proposal branch from de03175 to 5d8ab1a Compare June 19, 2018 07:48
targos added a commit that referenced this pull request Jun 19, 2018
Notable changes:

TODO

PR-URL: #21400
Copy link
Member

@jdalton jdalton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@addaleax
Copy link
Member

Suggestion for notable changes:

  • crypto:
    • Support for crypto.scrypt() has been added. #20816
  • fs:
    • BigInt support has been added to fs.stat and fs.watchFile #20220
  • Worker Threads:
    • Support for multi-threading has been added behind the --experimental-worker flag in the worker_threads module.
      This feature is experimental and may receive breaking changes at any time.
      #20876

@joyeecheung
Copy link
Member

joyeecheung commented Jun 20, 2018

Can you add

@joyeecheung
Copy link
Member

@targos
Copy link
Member Author

targos commented Jun 20, 2018

Sure, thank you to both of you. Updating now.

@targos targos force-pushed the v10.5.0-proposal branch from 5d8ab1a to 84a55f4 Compare June 20, 2018 16:57
Notable changes:

* **crypto**:
  * Support for `crypto.scrypt()` has been added.
    [#20816](#20816)
* **fs**:
  * BigInt support has been added to `fs.stat` and `fs.watchFile`.
    [#20220](#20220)
  * APIs that take `mode` as arguments no longer throw on values larger
    than `0o777`. [#20636](#20636)
    [#20975](#20975)
    (Fixes: [#20498](#20498))
  * Fix crashes in closed event watchers.
    [#20985](#20985)
    (Fixes: [#20297](#20297))
* **Worker Threads**:
  * Support for multi-threading has been added behind the
    `--experimental-worker` flag in the `worker_threads` module.
    This feature is *experimental* and may receive breaking changes at
    any time. [#20876](#20876)

PR-URL: #21400
@targos targos force-pushed the v10.5.0-proposal branch from 84a55f4 to e1c28f4 Compare June 20, 2018 17:03
@targos targos merged commit e1c28f4 into v10.x Jun 20, 2018
targos added a commit that referenced this pull request Jun 20, 2018
targos added a commit that referenced this pull request Jun 20, 2018
Notable changes:

* **crypto**:
  * Support for `crypto.scrypt()` has been added.
    [#20816](#20816)
* **fs**:
  * BigInt support has been added to `fs.stat` and `fs.watchFile`.
    [#20220](#20220)
  * APIs that take `mode` as arguments no longer throw on values larger
    than `0o777`. [#20636](#20636)
    [#20975](#20975)
    (Fixes: [#20498](#20498))
  * Fix crashes in closed event watchers.
    [#20985](#20985)
    (Fixes: [#20297](#20297))
* **Worker Threads**:
  * Support for multi-threading has been added behind the
    `--experimental-worker` flag in the `worker_threads` module.
    This feature is *experimental* and may receive breaking changes at
    any time. [#20876](#20876)

PR-URL: #21400
targos added a commit to nodejs/nodejs.org that referenced this pull request Jun 20, 2018
targos added a commit to nodejs/nodejs.org that referenced this pull request Jun 20, 2018
@targos targos deleted the v10.5.0-proposal branch June 20, 2018 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. doc Issues and PRs related to the documentations. meta Issues and PRs related to the general management of the project. openssl Issues and PRs related to the OpenSSL dependency. tools Issues and PRs related to the tools directory. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.