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

v9.7.0 proposal #19040

Closed
wants to merge 68 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
a17d684
src: fix deprecation warning in node_perf.cc
danbev Feb 20, 2018
205a84c
doc: remove CII badge in README
silverwind Feb 21, 2018
4fa1f31
cluster: fix inspector port assignment
santigimeno Feb 10, 2018
38797b5
vm: consolidate validation
timotew Feb 12, 2018
fc6ee39
tools: fix custom eslint rule errors
BridgeAR Feb 18, 2018
16ef386
build, win: vcbuild improvements
bzoz Nov 13, 2017
c7f9608
http: allow _httpMessage to be GC'ed
lpinca Feb 19, 2018
edba129
test: http2 compat response.write() error checks
trivikr Feb 18, 2018
01398b2
repl: fix tab-complete warning
killagu Feb 20, 2018
6e7aa3d
src: fix abort when taking a heap snapshot
bnoordhuis Feb 21, 2018
112c9a3
http: remove default 'drain' listener on upgrade
lpinca Feb 19, 2018
e447580
doc: fix link in onboarding.md
justin0022 Feb 20, 2018
38cf3cf
doc: update description of 'clientError' event
lpinca Feb 20, 2018
8532251
doc: remove extraneous "for example" text
Trott Feb 20, 2018
def51ba
url: reduce deplicated codes in `autoEscapeStr`
starkwang Feb 7, 2018
ec55965
deps: upgrade libuv to 1.19.2
cjihrig Feb 21, 2018
d255db3
tools: ignore VS compiler output in deps/v8
targos Feb 23, 2018
2282dce
src: remove node namespace qualifiers
danbev Feb 23, 2018
6f177e7
doc: `readable.push(undefined)` in non-object mode
Jan 21, 2018
b456e31
doc: add process.debugPort to doc/api/process.md
flickz Feb 11, 2018
4bc5423
doc: update 2fa information in onboarding.md
Trott Feb 24, 2018
4f454bd
doc: mention git-node in the collaborator guide
joyeecheung Feb 23, 2018
287946d
doc: remove `Returns: {undefined}`
Feb 21, 2018
237a363
build: make gyp user defined variables lowercase
danbev Oct 16, 2017
f869139
tools, test: fix prof polyfill readline
killagu Feb 11, 2018
f7e1402
build: include the libuv and zlib into node
yhwang Jan 17, 2018
cf0b95c
process: use more direct sync I/O for stdio
addaleax Dec 30, 2017
f17987b
src: remove `HasWriteQueue()`
addaleax Dec 30, 2017
f607577
src: use `DoTryWrite()` for not-all-Buffer writev()s too
addaleax Jan 10, 2018
38fd790
tty: fix console printing on Windows
addaleax Jan 17, 2018
cb5ed45
src: refactor stream callbacks and ownership
addaleax Jan 8, 2018
684684e
src: simplify handles for libuv streams
addaleax Jan 24, 2018
743cf33
test: introduce SetUpTestCase/TearDownTestCase
danbev Feb 3, 2018
738b0a1
lib: add `process` to internal module wrapper
addaleax Nov 21, 2017
d348496
process: refactor nextTick for clarity
apapirovski Dec 18, 2017
4acea14
process: do not directly schedule _tickCallback in _fatalException
apapirovski Dec 23, 2017
8474f86
timers: make setImmediate() immune to tampering
bnoordhuis Dec 18, 2017
07c6fb9
src: use AliasedBuffer for TickInfo
apapirovski Dec 27, 2017
37f253e
timers: refactor setImmediate error handling
apapirovski Dec 26, 2017
f2dd17b
timers: allow Immediates to be unrefed
apapirovski Jan 13, 2018
46fc507
src, test: node internals' postmortem metadata
Dec 26, 2017
35cddae
test: fix cctest -Wunused-variable warning
bnoordhuis Feb 2, 2018
189e566
src: do not redefine private for GenDebugSymbols
joyeecheung Feb 8, 2018
8c93499
build: add node_lib_target_name to cctest deps
danbev Feb 5, 2018
4de4c54
src: expose uv.errmap to binding
joyeecheung Dec 25, 2017
28fa906
util: implement util.getSystemErrorName()
joyeecheung Jan 16, 2018
b3fe55a
errors: improve the description of ERR_INVALID_ARG_VALUE
joyeecheung Jan 24, 2018
8e31bf4
util: skip type checks in internal getSystemErrorName
joyeecheung Feb 3, 2018
1246902
errors: move error creation helpers to errors.js
joyeecheung Feb 3, 2018
df0d78a
test: stdio pipe behavior tests
bzoz Feb 7, 2018
1be5e33
test: replace assert.throws with expectsError
sreepurnajasti Jan 5, 2018
b4c933d
promises: refactor rejection handling
apapirovski Jan 17, 2018
5ddef29
async_wrap: schedule destroy hook as unref
apapirovski Jan 18, 2018
296523a
src: remove unnecessary async hooks check
apapirovski Jan 21, 2018
dd917eb
doc: add pending-deprecation to deprecations list
ChALkeR Jan 29, 2018
4012ae8
build: fix coverage build
yhwang Jan 27, 2018
cfb78bc
process: use linked reusable queue for ticks
mafintosh Feb 6, 2018
be9777c
benchmark: add stream.pipe benchmarks
mafintosh Feb 6, 2018
7dd3c8a
test: add url type check in Module options
Feb 8, 2018
7fb72a5
deps,src: align ssize_t ABI between Node & nghttp2
addaleax Feb 4, 2018
efb4646
tls_wrap: use DoTryWrite()
addaleax Jan 28, 2018
fa691f7
src: only set JSStreamWrap write req after `write()`
addaleax Feb 8, 2018
3543c55
test: make sure WriteWrap tests are actually async
addaleax Feb 8, 2018
9169449
src: refactor WriteWrap and ShutdownWraps
addaleax Feb 8, 2018
484e06d
tls: use after free in tls_wrap
kfarnung Feb 18, 2018
e33b9fa
src: fix GetCpuProfiler() deprecation warning
bnoordhuis Feb 2, 2018
7853a7f
test: add test for stream unpipe with 'data' listeners
addaleax Feb 2, 2018
85bbd43
2018-03-01, Version 9.7.0 (Current)
rvagg Feb 27, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -122,3 +122,8 @@ deps/uv/docs/src/guide/

# do not override V8's .gitignore
!deps/v8/**
# ignore VS compiler output unhandled by V8's .gitignore
deps/v8/src/Debug/
deps/v8/src/Release/
deps/v8/src/inspector/Debug/
deps/v8/src/inspector/Release/
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V9.md#9.6.1">9.6.1</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V9.md#9.7.0">9.7.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V9.md#9.6.1">9.6.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V9.md#9.6.0">9.6.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V9.md#9.5.0">9.5.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V9.md#9.4.0">9.4.0</a><br/>
Expand Down
28 changes: 27 additions & 1 deletion COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
- [Deprecations](#deprecations)
- [Involving the TSC](#involving-the-tsc)
* [Landing Pull Requests](#landing-pull-requests)
- [Using `git-node`](#using-git-node)
- [Technical HOWTO](#technical-howto)
- [Troubleshooting](#troubleshooting)
- [I Just Made a Mistake](#i-just-made-a-mistake)
Expand Down Expand Up @@ -454,6 +455,26 @@ Additionally:
- All commits should be self-contained (meaning every commit should pass all
tests). This makes it much easier when bisecting to find a breaking change.

### Using `git-node`

In most cases, using [the `git-node` command][git-node] of [`node-core-utils`][]
should be enough to help you land a Pull Request. If you discover a problem when
using this tool, please file an issue
[to the issue tracker][node-core-utils-issues].

Quick example:

```text
$ npm install -g node-core-utils
$ git node land $PRID
```

If it's the first time you ever use `node-core-utils`, you will be prompted
to type the password of your GitHub account in the console so the tool can
create the GitHub access token for you. If you do not want to do that, follow
[the guide of `node-core-utils`][node-core-utils-credentials]
to set up your credentials manually.

### Technical HOWTO

Clear any `am`/`rebase` that may already be underway:
Expand Down Expand Up @@ -569,7 +590,8 @@ commit logs, ensure that they are properly formatted, and add

<a name="metadata"></a>
* Modify the original commit message to include additional metadata regarding
the change process. ([`node-core-utils`][] fetches the metadata for you.)
the change process. (The [`git node metadata`][git-node-metadata] command
can generate the metadata for you.)

* Required: A `PR-URL:` line that references the *full* GitHub URL of the
original pull request being merged so it's easy to trace a commit back to
Expand Down Expand Up @@ -748,6 +770,10 @@ LTS working group and the Release team.
[Stability Index]: doc/api/documentation.md#stability-index
[Enhancement Proposal]: https://github.com/nodejs/node-eps
[`--pending-deprecation`]: doc/api/cli.md#--pending-deprecation
[git-node]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md
[git-node-metadata]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md#git-node-metadata
[git-username]: https://help.github.com/articles/setting-your-username-in-git/
[`node-core-utils`]: https://github.com/nodejs/node-core-utils
[TSC]: https://github.com/nodejs/TSC
[node-core-utils-issues]: https://github.com/nodejs/node-core-utils/issues
[node-core-utils-credentials]: https://github.com/nodejs/node-core-utils#setting-up-credentials
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,9 @@ coverage-test: coverage-build
$(RM) out/$(BUILDTYPE)/obj.target/node/gen/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node_lib/gen/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/tracing/*.gcda
-$(MAKE) $(COVTESTS)
mv lib lib__
mv lib_ lib
Expand All @@ -201,7 +204,7 @@ coverage-test: coverage-build
--temp-directory "$(CURDIR)/.cov_tmp" \
--report-dir "../coverage")
-(cd out && "../gcovr/scripts/gcovr" --gcov-exclude='.*deps' \
--gcov-exclude='.*usr' -v -r Release/obj.target/node \
--gcov-exclude='.*usr' -v -r Release/obj.target \
--html --html-detail -o ../coverage/cxxcoverage.html \
--gcov-executable="$(GCOV)")
mv lib lib_
Expand Down
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
<img alt="Node.js" src="https://nodejs.org/static/images/logo-light.svg" width="400"/>
</a>
</p>
<p align="center">
<a title="CII Best Practices" href="https://bestpractices.coreinfrastructure.org/projects/29"><img src="https://bestpractices.coreinfrastructure.org/projects/29/badge"></a>
</p>

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. For
more information on using Node.js, see the
Expand Down
2 changes: 1 addition & 1 deletion benchmark/net/tcp-raw-c2s.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ function client(type, len) {
fail(err, 'write');
}

function afterWrite(err, handle, req) {
function afterWrite(err, handle) {
if (err)
fail(err, 'write');

Expand Down
4 changes: 2 additions & 2 deletions benchmark/net/tcp-raw-pipe.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ function main({ dur, len, type }) {
if (err)
fail(err, 'write');

writeReq.oncomplete = function(status, handle, req, err) {
writeReq.oncomplete = function(status, handle, err) {
if (err)
fail(err, 'write');
};
Expand Down Expand Up @@ -130,7 +130,7 @@ function main({ dur, len, type }) {
fail(err, 'write');
}

function afterWrite(err, handle, req) {
function afterWrite(err, handle) {
if (err)
fail(err, 'write');

Expand Down
8 changes: 4 additions & 4 deletions benchmark/net/tcp-raw-s2c.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,14 @@ function main({ dur, len, type }) {
fail(err, 'write');
} else if (!writeReq.async) {
process.nextTick(function() {
afterWrite(null, clientHandle, writeReq);
afterWrite(0, clientHandle);
});
}
}

function afterWrite(status, handle, req, err) {
if (err)
fail(err, 'write');
function afterWrite(status, handle) {
if (status)
fail(status, 'write');

while (clientHandle.writeQueueSize === 0)
write();
Expand Down
24 changes: 24 additions & 0 deletions benchmark/streams/pipe-object-mode.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
'use strict';

const common = require('../common');
const { Readable, Writable } = require('stream');

const bench = common.createBenchmark(main, {
n: [5e6]
});

function main({ n }) {
const b = {};
const r = new Readable({ objectMode: true });
const w = new Writable({ objectMode: true });

var i = 0;

r._read = () => r.push(i++ === n ? null : b);
w._write = (data, enc, cb) => cb();

bench.start();

r.pipe(w);
w.on('finish', () => bench.end(n));
}
24 changes: 24 additions & 0 deletions benchmark/streams/pipe.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
'use strict';

const common = require('../common');
const { Readable, Writable } = require('stream');

const bench = common.createBenchmark(main, {
n: [5e6]
});

function main({ n }) {
const b = new Buffer(1024);
const r = new Readable();
const w = new Writable();

var i = 0;

r._read = () => r.push(i++ === n ? null : b);
w._write = (data, enc, cb) => cb();

bench.start();

r.pipe(w);
w.on('finish', () => bench.end(n));
}
22 changes: 22 additions & 0 deletions benchmark/url/url-parse.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';
const common = require('../common.js');
const url = require('url');

const inputs = {
normal: 'http://foo.com/bar',
escaped: 'https://foo.bar/{}^`/abcd'
};

const bench = common.createBenchmark(main, {
type: Object.keys(inputs),
n: [1e7]
});

function main({ type, n }) {
const input = inputs[type] || '';

bench.start();
for (var i = 0; i < n; i += 1)
url.parse(input);
bench.end(n);
}
20 changes: 10 additions & 10 deletions common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -44,29 +44,29 @@

'conditions': [
['GENERATOR=="ninja"', {
'OBJ_DIR': '<(PRODUCT_DIR)/obj',
'V8_BASE': '<(PRODUCT_DIR)/obj/deps/v8/src/libv8_base.a',
'obj_dir': '<(PRODUCT_DIR)/obj',
'v8_base': '<(PRODUCT_DIR)/obj/deps/v8/src/libv8_base.a',
}, {
'OBJ_DIR%': '<(PRODUCT_DIR)/obj.target',
'V8_BASE%': '<(PRODUCT_DIR)/obj.target/deps/v8/src/libv8_base.a',
'obj_dir%': '<(PRODUCT_DIR)/obj.target',
'v8_base%': '<(PRODUCT_DIR)/obj.target/deps/v8/src/libv8_base.a',
}],
['OS == "win"', {
'os_posix': 0,
'v8_postmortem_support%': 'false',
'OBJ_DIR': '<(PRODUCT_DIR)/obj',
'V8_BASE': '<(PRODUCT_DIR)/lib/v8_libbase.lib',
'obj_dir': '<(PRODUCT_DIR)/obj',
'v8_base': '<(PRODUCT_DIR)/lib/v8_libbase.lib',
}, {
'os_posix': 1,
'v8_postmortem_support%': 'true',
}],
['OS== "mac"', {
'OBJ_DIR%': '<(PRODUCT_DIR)/obj.target',
'V8_BASE': '<(PRODUCT_DIR)/libv8_base.a',
'obj_dir%': '<(PRODUCT_DIR)/obj.target',
'v8_base': '<(PRODUCT_DIR)/libv8_base.a',
}],
['openssl_fips != ""', {
'OPENSSL_PRODUCT': '<(STATIC_LIB_PREFIX)crypto<(STATIC_LIB_SUFFIX)',
'openssl_product': '<(STATIC_LIB_PREFIX)crypto<(STATIC_LIB_SUFFIX)',
}, {
'OPENSSL_PRODUCT': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)',
'openssl_product': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)',
}],
['OS=="mac"', {
'clang%': 1,
Expand Down
14 changes: 12 additions & 2 deletions deps/nghttp2/lib/includes/config.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
/* Hint to the compiler that a function never returns */
#define NGHTTP2_NORETURN

/* Define to `int' if <sys/types.h> does not define. */
#define ssize_t int
/* Edited to match src/node.h. */
#include <stdint.h>

#ifdef _WIN32
#if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED)
typedef intptr_t ssize_t;
# define _SSIZE_T_
# define _SSIZE_T_DEFINED
#endif
#else // !_WIN32
# include <sys/types.h> // size_t, ssize_t
#endif // _WIN32

/* Define to 1 if you have the `std::map::emplace`. */
#define HAVE_STD_MAP_EMPLACE 1
Expand Down
5 changes: 5 additions & 0 deletions deps/uv/AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -325,3 +325,8 @@ Anna Henningsen <anna@addaleax.net>
Jérémy Lal <kapouer@melix.org>
Ben Wijen <ben@wijen.net>
elephantp <elephantp@elephantp.blog>
Felix Yan <felixonmars@archlinux.org>
Mason X <me@masonx.ca>
Jesse Gorzinski <jgorzinski@gmail.com>
Ryuichi KAWAMATA <ryuichi.kawamata@dena.jp>
Joyee Cheung <joyeec9h3@gmail.com>
45 changes: 45 additions & 0 deletions deps/uv/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
2018.02.22, Version 1.19.2 (Stable), c5afc37e2a8a70d8ab0da8dac10b77ba78c0488c

Changes since version 1.19.1:

* test: fix incorrect asserts (cjihrig)

* test: fix a typo in test-fork.c (Felix Yan)

* build: remove long-obsolete gyp workarounds (Ben Noordhuis)

* build: split off tests into separate gyp file (Ben Noordhuis)

* test: check uv_cond_timedwait more carefully (Jamie Davis)

* include,src: introduce UV__ERR() macro (Mason X)

* build: add url field to libuv.pc (Ben Noordhuis)

* doc: mark IBM i as Tier 3 support (Jesse Gorzinski)

* win,build: correct C2059 errors (Michael Fero)

* zos: fix timeout for condition variable (jBarz)

* win: CREATE_NO_WINDOW when stdio is not inherited (Nick Logan)

* build: fix commmon.gypi comment (Ryuichi KAWAMATA)

* doc: document uv_timer_start() on an active timer (Vladimír Čunát)

* doc: add note about handle movability (Bartosz Sosnowski)

* doc: fix syntax error in loop documentation (Bartosz Sosnowski)

* osx,stream: retry sending handle on EMSGSIZE error (Santiago Gimeno)

* unix: delay fs req register until after validation (cjihrig)

* test: add tests for bad inputs (Joyee Cheung)

* unix,win: ensure req->bufs is freed (cjihrig)

* test: add additional fs memory management checks (cjihrig)


2018.01.20, Version 1.19.1 (Stable), 8202d1751196c2374ad370f7f3779daef89befae

Changes since version 1.19.0:
Expand Down
1 change: 1 addition & 0 deletions deps/uv/SUPPORTED_PLATFORMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
| Linux with musl | Tier 2 | musl >= 1.0 | |
| SmartOS | Tier 2 | >= 14.4 | Maintainers: @libuv/smartos |
| Android | Tier 3 | NDK >= r15b | |
| IBM i | Tier 3 | >= IBM i 7.2 | Maintainers: @libuv/ibmi |
| MinGW | Tier 3 | MinGW32 and MinGW-w64 | |
| SunOS | Tier 3 | Solaris 121 and later | |
| Other | Tier 3 | N/A | |
Expand Down
8 changes: 4 additions & 4 deletions deps/uv/common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
'VCCLCompilerTool': {
'target_conditions': [
['uv_library=="static_library"', {
'RuntimeLibrary': 1, # static debug
'RuntimeLibrary': 1, # /MTd static debug
}, {
'RuntimeLibrary': 3, # DLL debug
'RuntimeLibrary': 3, # /MDd DLL debug
}],
],
'Optimization': 0, # /Od, no optimization
Expand Down Expand Up @@ -52,9 +52,9 @@
'VCCLCompilerTool': {
'target_conditions': [
['uv_library=="static_library"', {
'RuntimeLibrary': 0, # static release
'RuntimeLibrary': 0, # /MT static release
}, {
'RuntimeLibrary': 2, # debug release
'RuntimeLibrary': 2, # /MD DLL release
}],
],
'Optimization': 3, # /Ox, full optimization
Expand Down
2 changes: 1 addition & 1 deletion deps/uv/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

AC_PREREQ(2.57)
AC_INIT([libuv], [1.19.1], [https://github.com/libuv/libuv/issues])
AC_INIT([libuv], [1.19.2], [https://github.com/libuv/libuv/issues])
AC_CONFIG_MACRO_DIR([m4])
m4_include([m4/libuv-extra-automake-flags.m4])
m4_include([m4/as_case.m4])
Expand Down
3 changes: 3 additions & 0 deletions deps/uv/docs/src/handle.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
Structures are aligned so that any libuv handle can be cast to `uv_handle_t`.
All API functions defined here work with any handle type.

Libuv handles are not movable. Pointers to handle structures passed to
functions must remain valid for the duration of the requested operation. Take
care when using stack allocated handles.

Data types
----------
Expand Down
Loading