Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v12.1.0 proposal #27440

Merged
merged 49 commits into from Apr 29, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
a636338
src: allow creating NodeMainInstance that does not own the isolate
joyeecheung Apr 19, 2019
631bea8
src: implement IsolateData serialization and deserialization
joyeecheung Apr 18, 2019
b44323f
tools: implement node_mksnapshot
joyeecheung Apr 18, 2019
45d6106
src: enable snapshot with per-isolate data
joyeecheung Apr 18, 2019
228127f
src: enable context snapshot after running per-context scripts
joyeecheung Apr 20, 2019
ad42cd6
src: use std::vector<size_t> instead of IndexArray
joyeecheung Apr 21, 2019
a6d1fa5
doc: simplify Collaborator pre-nomination text
Trott Apr 22, 2019
d62a324
tools: update tools/license-builder.sh
ryzokuken Apr 23, 2019
5023446
build: disable custom v8 snapshot by default
joyeecheung Apr 23, 2019
f70588f
doc: fix v12.0.0 changelog id
BethGriggs Apr 23, 2019
8ca110c
benchmark: fix http bench-parser.js
Trott Apr 23, 2019
8486917
test: increase coverage in lib/internal/dns/promises.js
Trott Apr 21, 2019
ee80a21
dgram: change 'this' to 'self' for 'isConnected'
Apr 22, 2019
d84a6d0
test: make test-worker-esm-missing-main more robust
Trott Apr 22, 2019
f0b2992
test: fix ineffective error tests
Apr 21, 2019
481789c
tools: fix use-after-free mkcodecache warning
bnoordhuis Apr 21, 2019
3676288
doc: clarify behaviour of writeFile(fd)
sam-github Apr 17, 2019
7bc47cb
src: apply clang-tidy rule modernize-use-equals-default
gengjiawen Apr 16, 2019
809cf59
src: add `Environment` overload of `EmitAsyncDestroy`
addaleax Apr 16, 2019
8b5d738
n-api: do not require JS Context for `napi_async_destroy()`
addaleax Apr 16, 2019
619c5b6
src: do not require JS Context for `~AsyncResoure()`
addaleax Apr 16, 2019
453510c
doc: fix pull request number
BridgeAR Apr 21, 2019
dd709fc
lib: throw a special error in internal/assert
joyeecheung Mar 13, 2019
4dfe54a
module: initialize module_wrap.callbackMap during pre-execution
joyeecheung Apr 20, 2019
973d705
util: improve `Symbol.toStringTag` handling
BridgeAR Apr 22, 2019
8f34428
util: rename setIteratorBraces to getIteratorBraces
BridgeAR Apr 22, 2019
ebbed60
test: rework to remove flakiness, and be parallel
sam-github Apr 22, 2019
d852d9e
deps: update ICU to 64.2
ryzokuken Apr 23, 2019
53f0ef3
tools: update LICENSE and tools/icu/current_ver.dep
ryzokuken Apr 23, 2019
dcbe5b9
tools: update certdata.txt
sam-github Apr 23, 2019
b21b28f
crypto: update root certificates
sam-github Apr 23, 2019
2f9bafb
bootstrap: delay the instantiation of maps in per-context scripts
joyeecheung Apr 23, 2019
8089d29
src: apply clang-tidy modernize-deprecated-headers found by Jenkins CI
gengjiawen Apr 17, 2019
81e7b49
src: use predefined AliasedBuffer types in the code base
joyeecheung Apr 21, 2019
9c30806
doc: simplify GOVERNANCE.md text
Trott Apr 23, 2019
8302148
Add Node 12 to the first list of versions
rivajunior Apr 25, 2019
071300b
src: move OnMessage to node_errors.cc
joyeecheung Apr 19, 2019
e7026f1
build: allow icu download to use other hashes besides md5
srl295 Apr 23, 2019
ae2333d
util: add prototype support for boxed primitives
BridgeAR Apr 22, 2019
6ca0270
tls: include invalid method name in thrown error
sam-github Apr 24, 2019
f6ceefa
doc: update comment in bootstrap for primordials
MylesBorins Apr 24, 2019
e9021cc
test: move test-net-connect-handle-econnrefused
lpinca Mar 30, 2019
50732c1
test: refactor net-connect-handle-econnrefused
lpinca Mar 30, 2019
3614a00
src: refactor deprecated UVException in node_file.cc
gengjiawen Apr 17, 2019
e922a22
deps: backport ICU-20558 to fix Intl crasher
srl295 Apr 25, 2019
3282ccb
deps: backport ICU-20575 to fix err/crasher
srl295 Apr 25, 2019
dc510fb
report: print common items first for readability
gengjiawen Apr 23, 2019
d00014e
process: reduce the number of internal frames in async stack trace
joyeecheung Apr 24, 2019
bf12414
2019-04-29, Version 12.1.0 (Current)
targos Apr 27, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions CHANGELOG.md
Expand Up @@ -2,7 +2,8 @@

Select a Node.js version below to view the changelog history:

* [Node.js 11](doc/changelogs/CHANGELOG_V11.md) - **Current**
* [Node.js 12](doc/changelogs/CHANGELOG_V12.md) - **Current**
* [Node.js 11](doc/changelogs/CHANGELOG_V11.md) - Current
* [Node.js 10](doc/changelogs/CHANGELOG_V10.md) — **Long Term Support**
* [Node.js 9](doc/changelogs/CHANGELOG_V9.md) — End-of-Life
* [Node.js 8](doc/changelogs/CHANGELOG_V8.md) — Long Term Support
Expand All @@ -29,7 +30,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.0.0">12.0.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.1.0">12.1.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.0.0">12.0.0</a><br/>
</td>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V11.md#11.14.0">11.14.0</a></b><br/>
Expand Down
30 changes: 14 additions & 16 deletions GOVERNANCE.md
Expand Up @@ -139,30 +139,28 @@ the nomination.
The nomination passes if no Collaborators oppose it after one week. Otherwise,
the nomination fails.

Prior to the public nomination, the Collaborator initiating it can seek
feedback from other Collaborators in private using
[the GitHub discussion page][collaborators-discussions] of the
Collaborators team, and work with the nominee to improve the nominee's
contribution profile, in order to make the nomination as frictionless
as possible.
There are steps a nominator can take in advance to make a nomination as
frictionless as possible. Use the [Collaborators discussion page][] to request
feedback from other Collaborators in private. A nominator may also work with the
nominee to improve their contribution profile.

If individuals making valuable contributions do not believe they have been
considered for a nomination, they may log an issue or contact a Collaborator
directly.
It is possible that Collaborators will overlook someone with valuable
contributions. In that case, the contributor may open an issue or contact a
Collaborator to request a nomination.

### Onboarding

When the nomination is accepted, the new Collaborator will be onboarded
by a TSC member. See [the onboarding guide](./doc/onboarding.md) on
details of the onboarding process. In general, the onboarding should be
completed within a month after the nomination is accepted.
After the nomination passes, a TSC member onboards the new Collaborator. See
[the onboarding guide](./doc/onboarding.md) on details of the onboarding
process. In general, the onboarding should occur within a month after the
nomination passes.

## Consensus Seeking Process

The TSC follows a [Consensus Seeking][] decision-making model as described by
the [TSC Charter][].
The TSC follows a [Consensus Seeking][] decision-making model per the
[TSC Charter][].

[collaborators-discussions]: https://github.com/orgs/nodejs/teams/collaborators/discussions
[Collaborators discussion page]: https://github.com/orgs/nodejs/teams/collaborators/discussions
[Consensus Seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making
[TSC Charter]: https://github.com/nodejs/TSC/blob/master/TSC-Charter.md
[nodejs/node]: https://github.com/nodejs/node
10 changes: 5 additions & 5 deletions LICENSE
Expand Up @@ -118,8 +118,8 @@ The externally maintained libraries used by Node.js are:
"""
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)

Copyright © 1991-2018 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
Copyright © 1991-2019 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.

Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
Expand Down Expand Up @@ -1103,7 +1103,7 @@ The externally maintained libraries used by Node.js are:
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""

- jinja2, located at tools/jinja2, is licensed as follows:
- jinja2, located at tools/inspector_protocol/jinja2, is licensed as follows:
"""
Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details.

Expand Down Expand Up @@ -1138,7 +1138,7 @@ The externally maintained libraries used by Node.js are:
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""

- markupsafe, located at tools/markupsafe, is licensed as follows:
- markupsafe, located at tools/inspector_protocol/markupsafe, is licensed as follows:
"""
Copyright (c) 2010 by Armin Ronacher and contributors. See AUTHORS
for more details.
Expand Down Expand Up @@ -1255,7 +1255,7 @@ The externally maintained libraries used by Node.js are:
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""

- gtest, located at deps/gtest, is licensed as follows:
- gtest, located at test/cctest/gtest, is licensed as follows:
"""
Copyright 2008, Google Inc.
All rights reserved.
Expand Down
2 changes: 2 additions & 0 deletions Makefile
Expand Up @@ -1226,6 +1226,8 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \
tools/icu/*.h \
tools/code_cache/*.cc \
tools/code_cache/*.h \
tools/snapshot/*.cc \
tools/snapshot/*.h \
))

# Code blocks don't have newline at the end,
Expand Down
2 changes: 1 addition & 1 deletion benchmark/http/bench-parser.js
Expand Up @@ -24,7 +24,7 @@ function main({ len, n }) {
bench.start();
for (var i = 0; i < n; i++) {
parser.execute(header, 0, header.length);
parser.reinitialize(REQUEST, i > 0);
parser.initialize(REQUEST, header);
}
bench.end(n);
}
Expand Down
32 changes: 25 additions & 7 deletions configure.py
Expand Up @@ -421,6 +421,11 @@
dest='with_ltcg',
help='Use Link Time Code Generation. This feature is only available on Windows.')

parser.add_option('--with-node-snapshot',
action='store_true',
dest='with_node_snapshot',
help='Turn on V8 snapshot integration. Currently experimental.')

intl_optgroup.add_option('--download',
action='store',
dest='download_list',
Expand Down Expand Up @@ -928,6 +933,13 @@ def configure_node(o):
o['variables']['want_separate_host_toolset'] = int(
cross_compiling and want_snapshots)

if options.with_node_snapshot:
o['variables']['node_use_node_snapshot'] = 'true'
else:
# Default to false for now.
# TODO(joyeecheung): enable it once we fix the hashseed uniqueness
o['variables']['node_use_node_snapshot'] = 'false'

if target_arch == 'arm':
configure_arm(o)

Expand Down Expand Up @@ -1249,7 +1261,8 @@ def glob_to_var(dir_base, dir_sub, patch_dir):

def configure_intl(o):
def icu_download(path):
with open('tools/icu/current_ver.dep') as f:
depFile = 'tools/icu/current_ver.dep';
with open(depFile) as f:
icus = json.load(f)
# download ICU, if needed
if not os.access(options.download_path, os.W_OK):
Expand All @@ -1258,7 +1271,12 @@ def icu_download(path):
attemptdownload = nodedownload.candownload(auto_downloads, "icu")
for icu in icus:
url = icu['url']
md5 = icu['md5']
(expectHash, hashAlgo, allAlgos) = nodedownload.findHash(icu)
if not expectHash:
error('''Could not find a hash to verify ICU download.
%s may be incorrect.
For the entry %s,
Expected one of these keys: %s''' % (depFile, url, ' '.join(allAlgos)))
local = url.split('/')[-1]
targetfile = os.path.join(options.download_path, local)
if not os.path.isfile(targetfile):
Expand All @@ -1267,13 +1285,13 @@ def icu_download(path):
else:
print('Re-using existing %s' % targetfile)
if os.path.isfile(targetfile):
print('Checking file integrity with MD5:\r')
gotmd5 = nodedownload.md5sum(targetfile)
print('MD5: %s %s' % (gotmd5, targetfile))
if (md5 == gotmd5):
print('Checking file integrity with %s:\r' % hashAlgo)
gotHash = nodedownload.checkHash(targetfile, hashAlgo)
print('%s: %s %s' % (hashAlgo, gotHash, targetfile))
if (expectHash == gotHash):
return targetfile
else:
warn('Expected: %s *MISMATCH*' % md5)
warn('Expected: %s *MISMATCH*' % expectHash)
warn('\n ** Corrupted ZIP? Delete %s to retry download.\n' % targetfile)
return None
icu_config = {
Expand Down
4 changes: 2 additions & 2 deletions deps/icu-small/LICENSE
@@ -1,7 +1,7 @@
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)

Copyright © 1991-2018 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
Copyright © 1991-2019 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.

Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
Expand Down
4 changes: 2 additions & 2 deletions deps/icu-small/README-SMALL-ICU.txt
@@ -1,8 +1,8 @@
Small ICU sources - auto generated by shrink-icu-src.py

This directory contains the ICU subset used by --with-intl=small-icu (the default)
It is a strict subset of ICU 63 source files with the following exception(s):
* deps/icu-small/source/data/in/icudt63l.dat : Reduced-size data file
It is a strict subset of ICU 64 source files with the following exception(s):
* deps/icu-small/source/data/in/icudt64l.dat : Reduced-size data file


To rebuild this directory, see ../../tools/icu/README.md
3 changes: 1 addition & 2 deletions deps/icu-small/source/common/brkeng.cpp
Expand Up @@ -124,13 +124,12 @@ static void U_CALLCONV _deleteEngine(void *obj) {
U_CDECL_END
U_NAMESPACE_BEGIN

static UMutex gBreakEngineMutex = U_MUTEX_INITIALIZER;

const LanguageBreakEngine *
ICULanguageBreakFactory::getEngineFor(UChar32 c) {
const LanguageBreakEngine *lbe = NULL;
UErrorCode status = U_ZERO_ERROR;

static UMutex gBreakEngineMutex = U_MUTEX_INITIALIZER;
Mutex m(&gBreakEngineMutex);

if (fEngines == NULL) {
Expand Down
97 changes: 97 additions & 0 deletions deps/icu-small/source/common/capi_helper.h
@@ -0,0 +1,97 @@
// © 2018 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html

#ifndef __CAPI_HELPER_H__
#define __CAPI_HELPER_H__

#include "unicode/utypes.h"

U_NAMESPACE_BEGIN

/**
* An internal helper class to help convert between C and C++ APIs.
*/
template<typename CType, typename CPPType, int32_t kMagic>
class IcuCApiHelper {
public:
/**
* Convert from the C type to the C++ type (const version).
*/
static const CPPType* validate(const CType* input, UErrorCode& status);

/**
* Convert from the C type to the C++ type (non-const version).
*/
static CPPType* validate(CType* input, UErrorCode& status);

/**
* Convert from the C++ type to the C type (const version).
*/
const CType* exportConstForC() const;

/**
* Convert from the C++ type to the C type (non-const version).
*/
CType* exportForC();

/**
* Invalidates the object.
*/
~IcuCApiHelper();

private:
/**
* While the object is valid, fMagic equals kMagic.
*/
int32_t fMagic = kMagic;
};


template<typename CType, typename CPPType, int32_t kMagic>
const CPPType*
IcuCApiHelper<CType, CPPType, kMagic>::validate(const CType* input, UErrorCode& status) {
if (U_FAILURE(status)) {
return nullptr;
}
if (input == nullptr) {
status = U_ILLEGAL_ARGUMENT_ERROR;
return nullptr;
}
auto* impl = reinterpret_cast<const CPPType*>(input);
if (static_cast<const IcuCApiHelper<CType, CPPType, kMagic>*>(impl)->fMagic != kMagic) {
status = U_INVALID_FORMAT_ERROR;
return nullptr;
}
return impl;
}

template<typename CType, typename CPPType, int32_t kMagic>
CPPType*
IcuCApiHelper<CType, CPPType, kMagic>::validate(CType* input, UErrorCode& status) {
auto* constInput = static_cast<const CType*>(input);
auto* validated = validate(constInput, status);
return const_cast<CPPType*>(validated);
}

template<typename CType, typename CPPType, int32_t kMagic>
const CType*
IcuCApiHelper<CType, CPPType, kMagic>::exportConstForC() const {
return reinterpret_cast<const CType*>(static_cast<const CPPType*>(this));
}

template<typename CType, typename CPPType, int32_t kMagic>
CType*
IcuCApiHelper<CType, CPPType, kMagic>::exportForC() {
return reinterpret_cast<CType*>(static_cast<CPPType*>(this));
}

template<typename CType, typename CPPType, int32_t kMagic>
IcuCApiHelper<CType, CPPType, kMagic>::~IcuCApiHelper() {
// head off application errors by preventing use of of deleted objects.
fMagic = 0;
}


U_NAMESPACE_END

#endif // __CAPI_HELPER_H__