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

v8.1.1 proposal #13598

Merged
merged 52 commits into from
Jun 13, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
5e7c8da
Working on 8.1.1
jasnell Jun 7, 2017
2778256
doc: remove note highlighting in GOVERNANCE doc
Trott Jun 2, 2017
a9be8ff
doc: minimal documentation for Emeritus status
Trott Jun 2, 2017
3d12e1b
doc: emphasize Collaborators in GOVERNANCE.md
Trott Jun 2, 2017
216cb3f
test,benchmark: stabilize child-process
refack Jun 4, 2017
fe5ea3f
test: check callback not invoked on lookup error
Trott Jun 4, 2017
ad07c46
test: refactor domain tests
Trott Jun 5, 2017
dd158b0
src: make IsConstructCall checks consistent
danbev Jun 5, 2017
8c5407d
doc: corrects reference to tlsClientError
tarunbatra Jun 7, 2017
85cac4e
doc: update new CTC members
refack Jun 7, 2017
bf61d97
async_hooks: make sure `.{en|dis}able() === this`
addaleax Jun 2, 2017
c8db047
test: refactor test-fs-read-*
Trott Jun 6, 2017
61c7308
async_hooks: minor refactor to callback invocation
addaleax Jun 2, 2017
f134c9d
src: correct indentation for X509ToObject
danbev Jun 8, 2017
d1fa59f
child_process: simplify send() result handling
mscdex Jun 5, 2017
0ca4bd1
child_process: reduce nextTick() usage
mscdex Jun 5, 2017
6a696d1
inspector: fix crash on exception
seishun Jun 4, 2017
98d7f25
doc: fix out of date sections in n-api doc
mhdawson Jun 6, 2017
1c7f917
test: add coverage for napi_property_descriptor
mhdawson Jun 6, 2017
4a96ed4
src: check whether inspector is doing io
sam-github Jun 6, 2017
bdbeb33
test: add hijackStdout and hijackStderr
XadillaX Jun 3, 2017
1f88cbd
test: refactor test-http-server-keep-alive-timeout
realwakka Jun 4, 2017
12036a1
test: exercise once() with varying arguments
cjihrig Jun 7, 2017
bf06534
stream: ensure that instanceof fast-path is hit.
bmeurer Jun 2, 2017
d66d4fc
child_process: promisify includes stdio in error
giltayar Jun 2, 2017
f686f73
test: add coverage for AsyncResource constructor
gergelyke May 31, 2017
3da56ac
test: harden test-dgram-bind-shared-ports
refack May 18, 2017
4d27930
test: fix flaky test-tls-socket-close
Trott Jun 7, 2017
c4cbd99
https: support rejectUnauthorized for unix sockets
cjihrig Jun 6, 2017
d51b1c2
cluster, dns, repl, tls, util: fix RegExp nits
vsemozhetbyt Jun 7, 2017
53ec50d
doc: fix napi_create_*_error signatures in n-api
jamen Jun 8, 2017
0df6c0b
Revert "readline: clean up event listener in onNewListener"
addaleax Jun 8, 2017
2ea529b
test: add regression test for 13557
addaleax Jun 8, 2017
a5f415f
src: merge `fn_name` in NODE_SET_PROTOTYPE_METHOD
XadillaX Jun 8, 2017
2c1133d
doc: add readline.emitKeypressEvents note
STRML Nov 3, 2016
b967b4c
build: merge test suite groups
refack Jun 1, 2017
52f5e3f
doc: use HTTPS URL for suggested upstream remote
seishun Jun 10, 2017
00d2f7c
build,windows: check for VS version and arch
refack Jun 5, 2017
812e0b0
test: refactor async-hooks test-callback-error
Trott Jun 8, 2017
4c5457f
test: fix flaky test-http-client-get-url
Jun 7, 2017
26d7630
doc: fs constants for Node < v6.3.0 in fs.md
anshulguleria Jun 11, 2017
70432f2
doc: fix incorrect fs.utimes() link
JustinBeckwith Jun 11, 2017
32c87ac
benchmark: fix some RegExp nits
vsemozhetbyt Jun 8, 2017
e713482
test: fix typo in test-cli-node-options.js
vsemozhetbyt Jun 8, 2017
68c0518
doc: fix links and typos in fs.md
vsemozhetbyt Jun 9, 2017
38a1cfb
v8: add a js class for Serializer/Dserializer
zimbabao Jun 8, 2017
fff8a56
http: handle cases where socket.server is null
lpinca Jun 9, 2017
50e1f93
profiler: declare missing `printErr`
indutny Jun 9, 2017
a0f8faa
v8: fix debug builds on Windows
bzoz Jun 12, 2017
2cb6f2b
http: fix timeout reset after keep-alive timeout
aqrln Jun 8, 2017
3e1492a
2017-06-13, Version 8.1.1 (Current)
addaleax Jun 10, 2017
a1b27db
Working on v8.1.2
jasnell Jun 13, 2017
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
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V8.md#8.1.0">8.1.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V8.md#8.1.1">8.1.1</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.1.0">8.1.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V8.md#8.0.0">8.0.0</a><br/>
</td>
<td valign="top">
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ locally.
```text
$ git clone git@github.com:username/node.git
$ cd node
$ git remote add upstream git://github.com/nodejs/node.git
$ git remote add upstream https://github.com/nodejs/node.git
```

#### Which branch?
Expand Down
66 changes: 31 additions & 35 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,17 @@
# Node.js Project Governance

## Core Technical Committee

The Node.js project is governed by a Core Technical Committee (CTC) which is
responsible for high-level guidance of the project.

The CTC has final authority over this project including:

* Technical direction
* Project governance and process (including this policy)
* Contribution policy
* GitHub repository hosting
* Conduct guidelines
* Maintaining the list of additional Collaborators

For the current list of CTC members, see the project
[README.md](./README.md#current-project-team-members).
The Node.js project is governed by its Collaborators, including a Core Technical
Committee (CTC) which is responsible for high-level guidance of the project.

## Collaborators

The [nodejs/node](https://github.com/nodejs/node) GitHub repository is
maintained by the CTC and additional Collaborators who are added by the
CTC on an ongoing basis.
maintained by Collaborators who are added by the CTC on an ongoing basis.

Individuals identified by the CTC as making significant and valuable
contributions are made Collaborators and given commit access to the project.

_Note:_ If you make a significant contribution and are not considered
for commit access, log an issue or contact a CTC member directly.
contributions are made Collaborators and given commit access to the project. If
you make a significant contribution and are not considered for commit access,
log an issue or contact a CTC member directly.

Modifications of the contents of the nodejs/node repository are made on
a collaborative basis. Anybody with a GitHub account may propose a
Expand All @@ -45,18 +29,15 @@ be accepted unless:
the change. Previously-objecting Collaborators do not necessarily have to
sign-off on the change, but they should not be opposed to it.
* The change is escalated to the CTC and the CTC votes to approve the change.
This should be used only after other options (especially discussion among
the disagreeing Collaborators) have been exhausted.
This should only happen if disagreements between Collaborators cannot be
resolved through discussion.

Collaborators may opt to elevate significant or controversial modifications to
the CTC by assigning the `ctc-review` label to a pull request or issue. The
CTC should serve as the final arbiter where required.

For the current list of Collaborators, see the project
[README.md](./README.md#current-project-team-members).

A guide for Collaborators is maintained in
[COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md).
* [Current list of Collaborators](./README.md#current-project-team-members)
* [A guide for Collaborators](./COLLABORATOR_GUIDE.md)

### Collaborator Activities

Expand All @@ -68,9 +49,23 @@ Typical activities of a Collaborator include:
* participation in working groups
* merging pull requests

While the above are typical things done by Collaborators, there are no required
activities to retain Collaborator status. There is currently no process by which
inactive Collaborators are removed from the project.
The CTC periodically reviews the Collaborator list to identify inactive
Collaborators. Past Collaborators are typically given _Emeritus_ status. Emeriti
may request that the CTC restore them to active status.

## Core Technical Committee

The Core Technical Committee (CTC) has final authority over this project
including:

* Technical direction
* Project governance and process (including this policy)
* Contribution policy
* GitHub repository hosting
* Conduct guidelines
* Maintaining the list of additional Collaborators

* [Current list of CTC members](./README.md#current-project-team-members)

## CTC Membership

Expand All @@ -83,9 +78,10 @@ membership beyond these rules.

The CTC may add additional members to the CTC by a standard CTC motion.

When a CTC member's participation in [CTC activities](#ctc-activities) has become
minimal for a sustained period of time, the CTC will request that the member
either indicate an intention to increase participation or voluntarily resign.
When a CTC member's participation in [CTC activities](#ctc-activities) has
become minimal for a sustained period of time, the CTC will request that the
member either indicate an intention to increase participation or voluntarily
resign.

CTC members may only be removed by voluntary resignation or through a standard
CTC motion.
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,10 @@ more information about the governance of the Node.js project, see
**Fedor Indutny** &lt;fedor.indutny@gmail.com&gt;
* [jasnell](https://github.com/jasnell) -
**James M Snell** &lt;jasnell@gmail.com&gt; (he/him)
* [joyeecheung](https://github.com/joyeecheung) -
**Joyee Cheung** &lt;joyeec9h3@gmail.com&gt; (she/her)
* [mcollina](https://github.com/mcollina) -
**Matteo Collina** &lt;matteo.collina@gmail.com&gt; (he/him)
* [mhdawson](https://github.com/mhdawson) -
**Michael Dawson** &lt;michael_dawson@ca.ibm.com&gt; (he/him)
* [misterdjules](https://github.com/misterdjules) -
Expand Down Expand Up @@ -301,8 +305,6 @@ more information about the governance of the Node.js project, see
**João Reis** &lt;reis@janeasystems.com&gt;
* [joshgav](https://github.com/joshgav) -
**Josh Gavant** &lt;josh.gavant@outlook.com&gt;
* [joyeecheung](https://github.com/joyeecheung) -
**Joyee Cheung** &lt;joyeec9h3@gmail.com&gt; (she/her)
* [julianduque](https://github.com/julianduque) -
**Julian Duque** &lt;julianduquej@gmail.com&gt; (he/him)
* [JungMinu](https://github.com/JungMinu) -
Expand All @@ -319,8 +321,6 @@ more information about the governance of the Node.js project, see
**Aleksey Smolenchuk** &lt;lxe@lxe.co&gt;
* [matthewloring](https://github.com/matthewloring) -
**Matthew Loring** &lt;mattloring@google.com&gt;
* [mcollina](https://github.com/mcollina) -
**Matteo Collina** &lt;matteo.collina@gmail.com&gt; (he/him)
* [micnic](https://github.com/micnic) -
**Nicu Micleușanu** &lt;micnic90@gmail.com&gt; (he/him)
* [mikeal](https://github.com/mikeal) -
Expand Down
2 changes: 1 addition & 1 deletion benchmark/buffers/buffer-write.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ function main(conf) {
var buff = new clazz(8);
var fn = `write${conf.type}`;

if (fn.match(/Int/))
if (/Int/.test(fn))
benchInt(buff, fn, len, noAssert);
else
benchFloat(buff, fn, len, noAssert);
Expand Down
39 changes: 20 additions & 19 deletions benchmark/child_process/child-process-exec-stdout.js
Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
'use strict';
const common = require('../common.js');
const { exec, execSync } = require('child_process');
const isWindows = process.platform === 'win32';

var messagesLength = [64, 256, 1024, 4096];
// Windows does not support that long arguments
if (process.platform !== 'win32')
messagesLength.push(32768);
const bench = common.createBenchmark(main, {
// Windows does not support command lines longer than 8191 characters
if (!isWindows) messagesLength.push(32768);

const bench = common.createBenchmark(childProcessExecStdout, {
len: messagesLength,
dur: [5]
});

const child_process = require('child_process');
const exec = child_process.exec;
function main(conf) {
function childProcessExecStdout(conf) {
bench.start();

const dur = +conf.dur;
const maxDuration = conf.dur * 1000;
const len = +conf.len;

const msg = `"${'.'.repeat(len)}"`;
// eslint-disable-next-line no-unescaped-regexp-dot
msg.match(/./);
const options = {'stdio': ['ignore', 'pipe', 'ignore']};
const child = exec(`yes ${msg}`, options);
const cmd = `yes "${'.'.repeat(len)}"`;
const child = exec(cmd, { 'stdio': ['ignore', 'pipe', 'ignore'] });

var bytes = 0;
child.stdout.on('data', function(msg) {
child.stdout.on('data', (msg) => {
bytes += msg.length;
});

setTimeout(function() {
setTimeout(() => {
bench.end(bytes);
if (process.platform === 'win32') {
// Sometimes there's a yes.exe process left hanging around on Windows...
child_process.execSync(`taskkill /f /t /pid ${child.pid}`);
if (isWindows) {
// Sometimes there's a yes.exe process left hanging around on Windows.
try {
execSync(`taskkill /f /t /pid ${child.pid}`);
} catch (_) {
// this is a best effort kill. stderr is piped to parent for tracing.
}
} else {
child.kill();
}
}, dur * 1000);
}, maxDuration);
}
70 changes: 70 additions & 0 deletions benchmark/cluster/echo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
'use strict';

const cluster = require('cluster');
if (cluster.isMaster) {
const common = require('../common.js');
const bench = common.createBenchmark(main, {
workers: [1],
payload: ['string', 'object'],
sendsPerBroadcast: [1, 10],
n: [1e5]
});

function main(conf) {
var n = +conf.n;
var workers = +conf.workers;
var sends = +conf.sendsPerBroadcast;
var expectedPerBroadcast = sends * workers;
var payload;
var readies = 0;
var broadcasts = 0;
var msgCount = 0;

switch (conf.payload) {
case 'string':
payload = 'hello world!';
break;
case 'object':
payload = { action: 'pewpewpew', powerLevel: 9001 };
break;
default:
throw new Error('Unsupported payload type');
}

for (var i = 0; i < workers; ++i)
cluster.fork().on('online', onOnline).on('message', onMessage);

function onOnline(msg) {
if (++readies === workers) {
bench.start();
broadcast();
}
}

function broadcast() {
var id;
if (broadcasts++ === n) {
bench.end(n);
for (id in cluster.workers)
cluster.workers[id].disconnect();
return;
}
for (id in cluster.workers) {
const worker = cluster.workers[id];
for (var i = 0; i < sends; ++i)
worker.send(payload);
}
}

function onMessage(msg) {
if (++msgCount === expectedPerBroadcast) {
msgCount = 0;
broadcast();
}
}
}
} else {
process.on('message', function(msg) {
process.send(msg);
});
}
3 changes: 2 additions & 1 deletion benchmark/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@ function Benchmark(fn, configs, options) {
Benchmark.prototype._parseArgs = function(argv, configs) {
const cliOptions = {};
const extraOptions = {};
const validArgRE = /^(.+?)=([\s\S]*)$/;
// Parse configuration arguments
for (const arg of argv) {
const match = arg.match(/^(.+?)=([\s\S]*)$/);
const match = arg.match(validArgRE);
if (!match) {
console.error(`bad argument: ${arg}`);
process.exit(1);
Expand Down
2 changes: 1 addition & 1 deletion benchmark/crypto/cipher-stream.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ var bench = common.createBenchmark(main, {

function main(conf) {
var api = conf.api;
if (api === 'stream' && process.version.match(/^v0\.[0-8]\./)) {
if (api === 'stream' && /^v0\.[0-8]\./.test(process.version)) {
console.error('Crypto streams not available until v0.10');
// use the legacy, just so that we can compare them.
api = 'legacy';
Expand Down
2 changes: 1 addition & 1 deletion benchmark/crypto/hash-stream-creation.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ var bench = common.createBenchmark(main, {

function main(conf) {
var api = conf.api;
if (api === 'stream' && process.version.match(/^v0\.[0-8]\./)) {
if (api === 'stream' && /^v0\.[0-8]\./.test(process.version)) {
console.error('Crypto streams not available until v0.10');
// use the legacy, just so that we can compare them.
api = 'legacy';
Expand Down
2 changes: 1 addition & 1 deletion benchmark/crypto/hash-stream-throughput.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var bench = common.createBenchmark(main, {

function main(conf) {
var api = conf.api;
if (api === 'stream' && process.version.match(/^v0\.[0-8]\./)) {
if (api === 'stream' && /^v0\.[0-8]\./.test(process.version)) {
console.error('Crypto streams not available until v0.10');
// use the legacy, just so that we can compare them.
api = 'legacy';
Expand Down
5 changes: 4 additions & 1 deletion deps/v8/src/api.cc
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,10 @@ void V8::SetSnapshotDataBlob(StartupData* snapshot_blob) {
i::V8::SetSnapshotBlob(snapshot_blob);
}

void* v8::ArrayBuffer::Allocator::Reserve(size_t length) { UNIMPLEMENTED(); }
void* v8::ArrayBuffer::Allocator::Reserve(size_t length) {
UNIMPLEMENTED();
return nullptr;
}

void v8::ArrayBuffer::Allocator::Free(void* data, size_t length,
AllocationMode mode) {
Expand Down
8 changes: 6 additions & 2 deletions doc/api/child_process.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,9 @@ child runs longer than `timeout` milliseconds.
replace the existing process and uses a shell to execute the command.

If this method is invoked as its [`util.promisify()`][]ed version, it returns
a Promise for an object with `stdout` and `stderr` properties.
a Promise for an object with `stdout` and `stderr` properties. In case of an
error, a rejected promise is returned, with the same `error` object given in the
callback, but with an additional two properties `stdout` and `stderr`.

For example:

Expand Down Expand Up @@ -281,7 +283,9 @@ stderr output. If `encoding` is `'buffer'`, or an unrecognized character
encoding, `Buffer` objects will be passed to the callback instead.

If this method is invoked as its [`util.promisify()`][]ed version, it returns
a Promise for an object with `stdout` and `stderr` properties.
a Promise for an object with `stdout` and `stderr` properties. In case of an
error, a rejected promise is returned, with the same `error` object given in the
callback, but with an additional two properties `stdout` and `stderr`.

```js
const util = require('util');
Expand Down
Loading