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.10.0 proposal #29429

Merged
merged 84 commits into from
Sep 4, 2019
Merged
Show file tree
Hide file tree
Changes from 83 commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
365e062
fs: add *timeNs properties to BigInt Stats objects
joyeecheung Jun 18, 2018
e6353bd
fs: document the Date conversion in Stats objects
joyeecheung Jun 14, 2019
6ff803d
fs: fix (temporary) for esm package
ronag Aug 4, 2019
a7c8322
esm: support loading data URLs
bmeck Jul 9, 2019
293c9f0
bootstrap: run preload prior to frozen-intrinsics
bmeck Aug 2, 2019
b36a6e9
stream: do not emit drain if stream ended
ronag Aug 11, 2019
10bae2e
gyp: futurize imput.py to prepare for Python 3
cclauss Aug 15, 2019
4d4583e
src: add large page support for macOS
devnexen Aug 5, 2019
219c195
deps: update npm to 6.10.3
isaacs Aug 6, 2019
e0537e6
crypto: simplify DSA validation in FIPS mode
tniessen Aug 18, 2019
aeafb91
build: add Python 3 tests to Travis CI
cclauss Aug 18, 2019
eceebd3
tools: fix Python 3 issues in gyp/generator/make.py
cclauss Aug 19, 2019
a123a20
tools: fix Python 3 issues in tools/icu/icutrim.py
cclauss Aug 19, 2019
35bca31
buffer: improve equals() performance
mscdex Aug 19, 2019
925141f
tools: fix mixup with bytes.decode() and str.encode()
cclauss Aug 19, 2019
0544075
buffer: correct concat() error message
mscdex Aug 19, 2019
feafc01
build: move tooltest to before jstest target
danbev Aug 19, 2019
12cbb3f
gyp: remove semicolons (Python != JavaScript)
MattIPv4 Aug 20, 2019
8f47ff1
fs: allow passing true to emitClose option
gntem Aug 19, 2019
1f88ca3
test: add `emitClose: true` tests for fs streams
Trott Aug 22, 2019
65de900
doc: add emitClose option for fs streams
Trott Aug 22, 2019
eb2d96f
module: avoid passing unnecessary loop reference
saghul Aug 22, 2019
e939a87
stream: async iterator destroy compat
ronag Aug 17, 2019
b2f169e
doc: indicate that Http2ServerResponse extends Stream
trivikr Aug 21, 2019
1d649e3
doc: indicate that Http2ServerRequest extends Readable
trivikr Aug 21, 2019
6a4f156
doc: add missing extends Http2Session
trivikr Aug 21, 2019
ed2293e
fs: add recursive option to rmdir()
cjihrig Aug 16, 2019
2fafd63
doc: fix nits in esm.md
vsemozhetbyt Aug 21, 2019
dfc0ef5
net: allow reading data into a static buffer
mscdex Jan 10, 2019
ba29be6
doc,tls: add extends for derived classes
trivikr Aug 21, 2019
8599052
doc: add https.Server extends tls.Server
trivikr Aug 21, 2019
8a93b63
doc,http: add extends for derived classes
trivikr Aug 21, 2019
6e585fb
lib: consolidate lazyErrmapGet()
cjihrig Aug 23, 2019
ef76c7d
doc: add dco to github pr template
MylesBorins Nov 1, 2018
db6e4ce
src: expose MaybeInitializeContext to allow existing contexts
MarshallOfSound Jul 4, 2019
a2c7047
doc,errors: add extends to derived classes
trivikr Aug 25, 2019
395245f
doc,fs: add extends for derived classes
trivikr Aug 25, 2019
9a15002
test: use print() function in both Python 2 and 3
cclauss Aug 24, 2019
783c8ee
tools: fix Python 3 issues in inspector_protocol
cclauss Aug 24, 2019
def5c3e
build: test Python 3.6 and 3.7 on Travis CI
cclauss Aug 24, 2019
6a914ed
build: make --without-snapshot imply --without-node-snapshot
joyeecheung Aug 24, 2019
3bc16f9
events: improve once() performance
mscdex Aug 25, 2019
30b80e5
errors: provide defaults for unmapped uv errors
cjihrig Aug 23, 2019
8c6896e
src: allow --interpreted-frames-native-stack in NODE_OPTIONS
mmarchini May 17, 2019
f4f8827
process: improve nextTick performance
mscdex Jan 12, 2019
bd1e8ea
test: fix flaky test-http-server-keepalive-req-gc
Trott Aug 27, 2019
0e1ccca
querystring: improve performance
mscdex Aug 25, 2019
2df8475
tools: update babel-eslint to 10.0.3
cjihrig Aug 26, 2019
3802da7
tools: update ESLint to 6.2.2
cjihrig Aug 26, 2019
83fb133
test: fix test-benchmark-net
Trott Aug 28, 2019
c900762
buffer: consolidate encoding parsing
mscdex Aug 20, 2019
71aaf59
buffer: correct indexOf() error message
mscdex Aug 20, 2019
5abbd51
util: do not throw when inspecting detached ArrayBuffer
addaleax Aug 25, 2019
d6b6a05
build: integrate DragonFlyBSD into gyp build
devnexen Aug 25, 2019
5c3e49d
crypto: don't expose openssl internals
codebytere Aug 26, 2019
bb72217
doc: heading levels should only increment by one
nschonni Aug 27, 2019
43797d9
doc: inconsistent indentation for list items
nschonni Aug 27, 2019
a94afed
doc: add devnexen to collaborators
devnexen Aug 29, 2019
ae810cc
doc,crypto: add extends for derived classes
trivikr Aug 25, 2019
28ffc9f
deps: V8: cherry-pick 597f885
bcoe Aug 29, 2019
0ccf90b
test: remove Windows skipping of http keepalive request GC test
Trott Aug 28, 2019
0c4df35
build: hard code doctool in test-doc target
danbev Aug 30, 2019
2efd72f
stream: improve read() performance
mscdex Aug 27, 2019
e5a9a85
http: simplify timeout handling
ronag Aug 19, 2019
6734782
doc: remove multiple consecutive blank lines
nschonni Aug 29, 2019
187d08b
doc: format http2 anchor link and reference
nschonni Aug 29, 2019
3fc29b8
doc: add blanks around code fences
nschonni Aug 29, 2019
5a16449
doc: add extends for derived classes
trivikr Aug 24, 2019
256da1f
build: add full Python 3 tests to Travis CI
cclauss Aug 28, 2019
4a7c4b7
doc: escape elements swallowed as HTML in markdown
nschonni Aug 30, 2019
2666e00
src: inline `SLICE_START_END()` in node_buffer.cc
addaleax Aug 28, 2019
b964bdd
src: turn `GET_OFFSET()` into an inline function
addaleax Aug 28, 2019
f8f3af0
src: do not crash when accessing empty WeakRefs
addaleax Aug 24, 2019
2489682
console: use getStringWidth() for character width calculation
addaleax Aug 24, 2019
3f68be1
tools: fix mksnapshot blob wrong freeing operator
devnexen Aug 31, 2019
7809adf
stream: don't deadlock on aborted stream
ronag Aug 30, 2019
449f1fd
Revert "build: add full Python 3 tests to Travis CI"
bnoordhuis Sep 2, 2019
350975e
tools: use 'from io import StringIO' in ninja.py
cclauss Aug 29, 2019
87b8f02
lib: add ASCII fast path to getStringWidth()
addaleax Aug 25, 2019
dce5649
build,win: find Python in paths with spaces
joaocgreis Aug 20, 2019
bb6e3b5
build,win: accept Python 3 if 2 is not available
joaocgreis Aug 20, 2019
cd70fd2
tools: update ESLint to 6.3.0
cjihrig Aug 30, 2019
3a2e75d
2019-09-04, Version 12.10.0 (Current)
BridgeAR Sep 3, 2019
b143a87
Working on v12.10.1
BridgeAR Sep 4, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,31 @@ Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md
- [ ] tests and/or benchmarks are included
- [ ] documentation is changed or added
- [ ] commit message follows [commit guidelines](https://github.com/nodejs/node/blob/master/doc/guides/contributing/pull-requests.md#commit-message-guidelines)

<!--
Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
-->
28 changes: 28 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,31 @@ jobs:
- if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
bash -x tools/lint-pr-commit-message.sh ${TRAVIS_PULL_REQUEST};
fi

- name: "Python 3 is EXPERIMENTAL (Py36)"
language: node_js
node_js: "node"
install:
- pyenv global 3.6.7
- python3.6 -m pip install --upgrade pip
- make lint-py-build
script:
- NODE=$(which node) make lint lint-py
- python3.6 ./configure.py
- NODE=$(which node) make test

- name: "Python 3 is EXPERIMENTAL (Py37)"
language: node_js
node_js: "node"
install:
- pyenv global 3.7.1
- python3.7 -m pip install --upgrade pip
- make lint-py-build
script:
- NODE=$(which node) make lint lint-py
- python3.7 ./configure.py
- NODE=$(which node) make test

allow_failures:
- name: "Python 3 is EXPERIMENTAL (Py36)"
- name: "Python 3 is EXPERIMENTAL (Py37)"
3 changes: 3 additions & 0 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -665,16 +665,19 @@ during configuration if the ICU version is too old.
#### Unix/macOS

From an already-unpacked ICU:

```console
$ ./configure --with-intl=[small-icu,full-icu] --with-icu-source=/path/to/icu
```

From a local ICU tarball:

```console
$ ./configure --with-intl=[small-icu,full-icu] --with-icu-source=/path/to/icu.tgz
```

From a tarball URL:

```console
$ ./configure --with-intl=full-icu --with-icu-source=http://url/to/icu.tgz
```
Expand Down
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.9.1">12.9.1</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.10.0">12.10.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.9.1">12.9.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.9.0">12.9.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.8.1">12.8.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.8.0">12.8.0</a><br/>
Expand Down Expand Up @@ -105,7 +106,7 @@ release.
</tr>
</table>

### Notes
## Notes

* The [Node.js Long Term Support plan](https://github.com/nodejs/Release) covers
LTS releases.
Expand Down
2 changes: 1 addition & 1 deletion COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ $ git push upstream master

Close the pull request with a "Landed in `<commit hash>`" comment. If
your pull request shows the purple merged status then you should still
add the "Landed in <commit hash>..<commit hash>" comment if you added
add the "Landed in \<commit hash>..\<commit hash>" comment if you added
more than one commit.

### Troubleshooting
Expand Down
3 changes: 1 addition & 2 deletions CPP_STYLE_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
* [Avoid throwing JavaScript errors in C++ methods](#avoid-throwing-javascript-errors-in-c)
* [Avoid throwing JavaScript errors in nested C++ methods](#avoid-throwing-javascript-errors-in-nested-c-methods)


## Guides and References

The Node.js C++ codebase strives to be consistent in its use of language
Expand Down Expand Up @@ -186,6 +185,7 @@ class FancyContainer {
...
}
```

## Memory Management

### Memory allocation
Expand Down Expand Up @@ -385,7 +385,6 @@ side effects.
Node.js is built [without C++ exception handling][], so code using `throw` or
even `try` and `catch` **will** break.


[C++ Core Guidelines]: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
[Google C++ Style Guide]: https://google.github.io/styleguide/cppguide.html
[Google’s `cpplint`]: https://github.com/google/styleguide
Expand Down
19 changes: 19 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -1507,3 +1507,22 @@ The externally maintained libraries used by Node.js are:
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
"""

- rimraf, located at lib/internal/fs/rimraf.js, is licensed as follows:
"""
The ISC License

Copyright (c) Isaac Z. Schlueter and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
"""
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -313,13 +313,13 @@ coverage-run-js:
.PHONY: test
# This does not run tests of third-party libraries inside deps.
test: all ## Runs default tests, linters, and builds docs.
$(MAKE) -s tooltest
$(MAKE) -s test-doc
$(MAKE) -s build-addons
$(MAKE) -s build-js-native-api-tests
$(MAKE) -s build-node-api-tests
$(MAKE) -s cctest
$(MAKE) -s jstest
$(MAKE) -s tooltest

.PHONY: test-only
test-only: all ## For a quick test, does not run linter or build docs.
Expand Down Expand Up @@ -604,7 +604,7 @@ test-doc: doc-only ## Builds, lints, and verifies the docs.
echo "Skipping test-doc (no crypto)"; \
else \
$(MAKE) lint; \
$(PYTHON) tools/test.py $(PARALLEL_ARGS) $(CI_DOC); \
$(PYTHON) tools/test.py $(PARALLEL_ARGS) doctool; \
fi

test-known-issues: all
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ The Node.js project uses an [open governance model](./GOVERNANCE.md). The

**This project is bound by a [Code of Conduct][].**


# Table of Contents

* [Support](#support)
Expand Down Expand Up @@ -89,7 +88,6 @@ Version-specific documentation is available in each release directory in the
_docs_ subdirectory. Version-specific documentation is also at
<https://nodejs.org/download/docs/>.


### Verifying Binaries

Download directories contain a `SHASUMS256.txt` file with SHA checksums for the
Expand Down Expand Up @@ -278,6 +276,8 @@ For information about the governance of the Node.js project, see
**David Cai** &lt;davidcai1993@yahoo.com&gt; (he/him)
* [davisjam](https://github.com/davisjam) -
**Jamie Davis** &lt;davisjam@vt.edu&gt; (he/him)
* [devnexen](https://github.com/devnexen) -
**David Carlier** &lt;devnexen@gmail.com&gt;
* [devsnek](https://github.com/devsnek) -
**Gus Caplan** &lt;me@gus.host&gt; (he/him)
* [digitalinfinity](https://github.com/digitalinfinity) -
Expand Down
2 changes: 0 additions & 2 deletions benchmark/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ See [the guide on writing benchmarks](../doc/guides/writing-and-running-benchmar
The default benchmarker used to run HTTP benchmarks.
See [the guide on writing HTTP benchmarks](../doc/guides/writing-and-running-benchmarks.md#creating-an-http-benchmark).


### PORT

The default port used to run HTTP benchmarks.
Expand All @@ -95,4 +94,3 @@ Used in special benchmarks that can't use `createBenchmark` and the object
it returns to accomplish what they need. This function reports timing
data to the parent process (usually created by running `compare.js`, `run.js` or
`scatter.js`).

22 changes: 22 additions & 0 deletions benchmark/buffers/buffer-equals.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';
const common = require('../common.js');

const bench = common.createBenchmark(main, {
size: [0, 512, 16386],
difflen: ['true', 'false'],
n: [1e6]
});

function main({ n, size, difflen }) {
const b0 = Buffer.alloc(size, 'a');
const b1 = Buffer.alloc(size + (difflen === 'true' ? 1 : 0), 'a');

if (b1.length > 0)
b1[b1.length - 1] = 'b'.charCodeAt(0);

bench.start();
for (let i = 0; i < n; i++) {
b0.equals(b1);
}
bench.end(n);
}
52 changes: 44 additions & 8 deletions benchmark/events/ee-once.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,54 @@
const common = require('../common.js');
const EventEmitter = require('events').EventEmitter;

const bench = common.createBenchmark(main, { n: [2e7] });
const bench = common.createBenchmark(main, {
n: [2e7],
argc: [0, 1, 4, 5]
});

function main({ n }) {
function main({ n, argc }) {
const ee = new EventEmitter();

function listener() {}

bench.start();
for (var i = 0; i < n; i += 1) {
const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
ee.once(dummy, listener);
ee.emit(dummy);
switch (argc) {
case 0:
bench.start();
for (let i = 0; i < n; i += 1) {
const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
ee.once(dummy, listener);
ee.emit(dummy);
}
bench.end(n);
break;
case 1:
bench.start();
for (let i = 0; i < n; i += 1) {
const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
ee.once(dummy, listener);
ee.emit(dummy, n);
}
bench.end(n);
break;
case 4:
bench.start();
for (let i = 0; i < n; i += 1) {
const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
ee.once(dummy, listener);
ee.emit(dummy, 'foo', argc, 'bar', false);
}
bench.end(n);
break;
case 5:
bench.start();
for (let i = 0; i < n; i += 1) {
const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1';
ee.once(dummy, listener);
ee.emit(dummy, true, 7.5, 'foo', null, n);
}
bench.end(n);
break;
default:
throw new Error('Unsupported argument count');
}
bench.end(n);
}
26 changes: 26 additions & 0 deletions benchmark/misc/getstringwidth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
'use strict';

const common = require('../common.js');

const bench = common.createBenchmark(main, {
type: ['ascii', 'mixed', 'emojiseq', 'fullwidth'],
n: [10e4]
}, {
flags: ['--expose-internals']
});

function main({ n, type }) {
const { getStringWidth } = require('internal/readline/utils');

const str = ({
ascii: 'foobar'.repeat(100),
mixed: 'foo'.repeat(100) + '😀' + 'bar'.repeat(100),
emojiseq: '👨‍👨‍👧‍👦👨‍👩‍👦‍👦👨‍👩‍👧‍👧👩‍👩‍👧‍👦'.repeat(10),
fullwidth: '你好'.repeat(150)
})[type];

bench.start();
for (let j = 0; j < n; j += 1)
getStringWidth(str);
bench.end(n);
}
Loading