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

v6.14.2 proposal #19996

Merged
merged 227 commits into from
Apr 30, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
227 commits
Select commit Hold shift + click to select a range
502781c
test: fix spelling in test case comments
tniessen Jan 6, 2018
f81a69a
fs: fix `createReadStream(…, {end: n})` for non-seekable fds
addaleax Mar 13, 2018
4d2efa2
test: remove mark flaky for moved test
BethGriggs Mar 1, 2018
969398d
crypto: reuse variable instead of reevaluation
tniessen Dec 18, 2017
46aed58
test: make common.mustNotCall show file:linenumber
lance Nov 22, 2017
5ca8dee
test: remove n-api intermediate files
Mar 15, 2018
fd7d199
test: remove orphaned entries from status
kfarnung Feb 27, 2018
dbe70b7
http: free the parser before emitting 'upgrade'
lpinca Jan 17, 2018
64c83d7
stream: simplify `src._readableState` to `state`
Jan 20, 2018
67fd520
doc: reorder section on updating PR branch
ofrobots Jan 24, 2018
27d3c1a
doc: add Gibson Fahnestock to TSC
Trott Jan 31, 2018
43839f1
doc: move Brian White to TSC Emeriti list
Trott Jan 31, 2018
32089bc
doc: streamline README intro
Trott Jan 31, 2018
b2a2a55
test: verify the shell option works properly on execFile
jvelezpo Jan 25, 2018
cc7469e
build: allow x86_64 as a dest_cpu alias for x64
rvagg Jan 9, 2018
269c2f3
net: remove redundant code from _writeGeneric()
lpinca Jan 29, 2018
f3c6feb
test: update references to archived repository
tniessen Dec 31, 2017
72a5710
readline: update references to archived repository
tniessen Dec 31, 2017
49d8c2e
build: refine static and shared lib build
yhwang Dec 5, 2017
8f830ca
stream: remove unreachable code
lpinca Jan 18, 2018
5bcf668
test: use correct size in test-stream-buffer-list
lpinca Jan 18, 2018
bc2f0a5
doc: linkify missing types
vsemozhetbyt Jan 29, 2018
6ff763b
win, build: fix without-intl option
bzoz Dec 11, 2017
a91b1b9
win, build: fix intl-none option
poiru Jan 22, 2018
988cca8
process: fix reading zero-length env vars on win32
addaleax Jan 30, 2018
0067bcc
doc: fix description of createDecipheriv
tniessen Feb 8, 2018
44ab850
test: fix flaky timers-block-eventloop test
apapirovski Feb 4, 2018
bc883fb
test: refactor test-http-abort-before-end
cjihrig Feb 1, 2018
dd4d075
doc: be more explicit in the sypnosis
timotew Jan 4, 2018
6b348d4
doc: modify the return value of request.write()
Feb 2, 2018
dc6dc82
doc: add section for strategic initiatives
mhdawson Nov 17, 2017
29b0d3b
doc: add devsnek to collaborators
devsnek Feb 9, 2018
280af05
doc: add history for url.parse
styfle Feb 9, 2018
bf72ee6
doc: add mmarchini to collaborators
Feb 12, 2018
057c80b
doc: move Fedor to TSC Emeritus
MylesBorins Feb 13, 2018
77a405b
lib: set process.execPath on OpenBSD
qbit Feb 3, 2018
d799b1c
test: update a few tests to work on OpenBSD
qbit Feb 3, 2018
1edadeb
http: allow _httpMessage to be GC'ed
lpinca Feb 19, 2018
18acad3
http: make socketPath work with no agent
lpinca Mar 18, 2018
4d67369
doc: fix various nits
vsemozhetbyt Apr 2, 2018
0ca2dad
src: free memory before re-setting URLHost value
prog1dev Jan 23, 2018
8ab8d6a
stream: fix y.pipe(x)+y.pipe(x)+y.unpipe(x)
addaleax Apr 29, 2017
e54b8e8
stream: cleanup() when unpiping all streams.
Jan 20, 2018
a9562fe
n-api: add support for abi stable module API
jasongin Mar 20, 2017
f1bdbd1
n-api: break dep between v8 and napi attributes
mhdawson Apr 3, 2017
9b36811
napi: supress invalid coverity leak message
mhdawson Apr 3, 2017
1e6d3bb
n-api: create napi_env as a real structure
Mar 28, 2017
db36ca5
n-api: Update property attrs enum to match JS spec
jasongin Apr 5, 2017
2a72622
n-api: cache Symbol.hasInstance
Mar 31, 2017
a6af97f
napi: initialize and check status properly
Apr 8, 2017
c127b71
n-api: change napi_callback to return napi_value
boingoing Mar 24, 2017
d82fd2a
n-api: implement async helper methods
boingoing Mar 28, 2017
eb51d42
n-api: fix -Wmismatched-tags compiler warning
bnoordhuis Apr 11, 2017
6bf3d04
test: improve test coverage for n-api
mhdawson Apr 11, 2017
f8c2585
test: add second argument to assert.throws
targos Apr 7, 2017
577f327
test: fix compiler warning in n-api test
addaleax Apr 10, 2017
9bf8e9d
n-api: add string api for latin1 encoding
Apr 12, 2017
c44f6ff
n-api: fix coverity scan report
mhdawson Apr 12, 2017
a003777
test: port test for make_callback to n-api
digitalinfinity Apr 14, 2017
d9f3e0d
Revert "test: port test for make_callback to n-api"
jasnell Apr 17, 2017
f5cfa09
n-api: remove napi_get_value_string_length()
jasongin Apr 18, 2017
8287e76
n-api: tighten null-checking and clean up last error
Apr 20, 2017
c560db9
n-api: Enable scope and ref APIs during exception
jasongin Apr 19, 2017
72c5d97
test: test doc'd napi_get_value_int32 behaviour
mhdawson Apr 24, 2017
fcb019f
test: add coverage for napi_cancel_async_work
mhdawson Apr 21, 2017
bc25250
n-api: Reference and external tests
jasongin Apr 20, 2017
49d74c6
n-api: Sync with back-compat changes
jasongin Apr 26, 2017
3e388cf
doc: Add initial documentation for N-API
mhdawson Apr 19, 2017
5d2afb2
test: replace indexOf with includes
gwer Apr 22, 2017
b2bf6c8
test,lib,doc: use function declarations
Trott Apr 28, 2017
7507d1e
n-api: remove unnecessary try-catch bracket from certain APIs
Apr 27, 2017
1785f3c
test: fix warning in n-api reference test
mhdawson Apr 28, 2017
f09677f
test: add coverage for error apis
mhdawson Apr 28, 2017
dd7665a
test: port test for make_callback to n-api
digitalinfinity Apr 14, 2017
ce03977
test: fix napi test_reference for recent V8
targos May 5, 2017
2e36365
n-api: napi_get_cb_info should fill array
jasongin May 5, 2017
a128219
n-api: Handle fatal exception in async callback
jasongin May 4, 2017
6bcd6d4
doc: fix broken links in n-api doc
mhdawson May 7, 2017
5936f7c
test: improve n-api array func coverage
mhdawson May 7, 2017
5b04537
doc: clarify node.js addons are c++
BethGriggs May 8, 2017
263a633
test: add common.mustCall() to NAPI exception test
Trott May 11, 2017
0f74ee5
doc: clarify operation of napi_cancel_async_work
mhdawson May 11, 2017
314f22d
test: improve N-API test coverage
mhdawson May 12, 2017
8d3162d
n-api: remove compiler warning
addaleax May 13, 2017
71aa251
test: Improve N-API test coverage
mhdawson May 16, 2017
70281ba
n-api: Retain last code when getting error info
jasongin May 17, 2017
75e91fe
doc: add reference to node_api.h in docs
mhdawson May 17, 2017
2e29052
doc: fix title/function name mismatch
mhdawson May 19, 2017
d89afe8
test: increase n-api constructor coverage
mhdawson May 19, 2017
a8c7374
src: correct endif comment SRC_NODE_API_H__
danbev May 24, 2017
1829d25
test: add coverage for napi_has_named_property
mhdawson May 23, 2017
86c0ebf
n-api: add napi_get_version
mhdawson May 24, 2017
0dac33d
test: improve n-api coverage for typed arrays
mhdawson May 26, 2017
652d321
test: Make N-API weak-ref GC tests asynchronous
jasongin May 18, 2017
17fe21e
doc: fix typo in n-api.md
disjukr May 31, 2017
919556f
n-api: enable napi_wrap() to work with any object
jasongin May 26, 2017
06cf948
test: consolidate n-api test addons
mhdawson May 30, 2017
9d70b43
test: consolidate n-api test addons - part2
mhdawson Jun 1, 2017
eb42279
test: fix build warning in addons-napi/test_object
jasongin Jun 2, 2017
82f31ff
doc: add ref to option to enable n-api
mhdawson Jun 2, 2017
a06cc46
doc: fix typo "ndapi" in n-api.md
Jun 5, 2017
35a3cbb
doc: fix out of date sections in n-api doc
mhdawson Jun 6, 2017
1e25062
test: add coverage for napi_property_descriptor
mhdawson Jun 6, 2017
c5ae39e
doc: fix napi_create_*_error signatures in n-api
jamen Jun 8, 2017
1e91d58
doc: fix out of date napi_callback doc
XadillaX Jun 9, 2017
cc3a4af
doc: fix a few n-api doc issues
mhdawson Jun 13, 2017
c3eb187
n-api: avoid crash in napi_escape_scope()
mhdawson Jun 13, 2017
36185b3
doc: doc lifetime of n-api last error info
mhdawson Jun 26, 2017
97b628b
n-api: fix section title typo
kfarnung Jun 28, 2017
a0cf9b7
test: verify napi_get_property() walks prototype
cjihrig Jun 28, 2017
cadec3b
n-api: add napi_delete_element()
cjihrig Jun 27, 2017
80cf25a
n-api: add napi_delete_property()
cjihrig Jun 26, 2017
33821c3
n-api: use Maybe version of Object::SetPrototype()
bnoordhuis Jul 3, 2017
8e2a26d
n-api: fix -Wmaybe-uninitialized compiler warning
bnoordhuis Jul 3, 2017
7f126c2
test: add coverage for napi_typeof
mhdawson Jun 29, 2017
6ba38e8
N-API: Reuse ObjectTemplate instances
Jun 30, 2017
a5517d8
n-api: add napi_has_own_property()
cjihrig Jul 3, 2017
5b0c57c
n-api: fix warning in test_general
danbev Jul 6, 2017
7973bd3
n-api: Implement stricter wrapping
Jun 22, 2017
cd30154
n-api: wrap test macros in do/while
kfarnung Jul 5, 2017
4827421
test: handle missing V8 tests in n-api test
cjihrig Jul 7, 2017
57be12e
n-api: add code parameter to error helpers
mhdawson Jun 29, 2017
aad36b2
n-api: add napi_fatal_error API
kfarnung Jun 28, 2017
3f3eaf9
test: replace string concat with template literal
4garfield Jul 16, 2017
4b9773e
doc: fix some links
vsemozhetbyt Jul 20, 2017
f4d1cae
n-api: add fast paths for integer getters
addaleax Jul 20, 2017
1acab66
n-api: directly create Local from Persistent
kfarnung Jul 13, 2017
06b1273
test: changed error message validator
pratik0509 Jul 24, 2017
86b101c
n-api: re-use napi_env between modules
Jul 13, 2017
bd032a1
n-api: add support for DataView
shivanth Jul 19, 2017
831de61
doc: document napi_finalize() signature
cjihrig Jul 14, 2017
0ef0b34
src: replace assert with CHECK_LE in node_api.cc
bnoordhuis Jul 27, 2017
b29eb69
n-api: optimize number API performance
jasongin Jul 19, 2017
951adbe
n-api: add napi_get_node_version
addaleax Aug 8, 2017
b59eddd
test: use regular expressions in throw assertions
vincentcn Jul 17, 2017
fbcc962
doc: delint
refack Aug 9, 2017
b0f09a2
doc: added napi_get_value_string_latin1
kfarnung Aug 7, 2017
73cc251
n-api: add ability to remove a wrapping
Jul 27, 2017
a766802
doc: fix doc for napi_get_value_string_utf8
Jul 28, 2017
31c9717
test: remove unused parameters
human33 Aug 21, 2017
278a2d0
n-api: implement promise
Aug 24, 2017
ac5b904
n-api: adds function to adjust external memory
Jun 28, 2017
3b4708b
n-api: implement napi_run_script
Sep 6, 2017
676cff4
n-api: stop creating references to primitives
Sep 9, 2017
7588eea
n-api: use AsyncResource for Work tracking
addaleax Aug 8, 2017
156a8b6
n-api: change async resource name to napi_value
jasongin Sep 9, 2017
50cb48b
n-api: refactor napi_addon_register_func
boingoing Aug 30, 2017
5eadd62
n-api: Context for custom async operations
jasongin Aug 26, 2017
fe87a59
n-api: napi_is_construct_call->napi_get_new_target
Aug 8, 2017
f31b50c
n-api: add optional string length parameters
Sep 11, 2017
5e29823
n-api: remove n-api module loading flag
Aug 18, 2017
ca69f1d
doc: fix new nits in links
vsemozhetbyt Sep 17, 2017
2bc8a59
n-api: fix warning about size_t compare with int
Sep 20, 2017
e9a6dff
doc: fix outdated code sample in n-api.md
rebornix Sep 24, 2017
00d094f
n-api: add check for large strings
mhdawson Sep 25, 2017
37acd80
test: remove template literal
emilyford Oct 6, 2017
53bd313
test: fix race condition in addon test
kkwoker Oct 6, 2017
5bba809
test: cleaned up assert messages
mrgorbo Oct 6, 2017
32412a8
n-api: make changes for source compatibility
Oct 9, 2017
011b53e
n-api,test: use module name macro
Oct 11, 2017
ebbd07d
test: remove redundant error messages
Oct 6, 2017
5c2bba0
doc: fix some links
vsemozhetbyt Oct 14, 2017
0c67f21
doc: update to use NAPI_AUTO_LENGTH
mhdawson Oct 13, 2017
169b53e
n-api: use module name macro
mhdawson Oct 13, 2017
55aab6b
n-api: check against invalid handle scope usage
addaleax Oct 14, 2017
3c84db6
n-api: unexpose symbols and remove EXTERNAL_NAPI
Oct 16, 2017
9cc435d
test: improve message for assert.strictEqual()
Deep-Six Oct 6, 2017
087d213
test: include actual value in assertion message
mattcan Oct 6, 2017
d31792f
test: use default assertion messages
trootski Nov 6, 2017
c14207c
test: add detailed message for assertion failure
pcdevil Nov 6, 2017
d4c04e0
test: improve assert messages in napi exception test
PaulBlanche Nov 6, 2017
55fabd7
doc: fix a typo in n-api documentation
vipinmenon Nov 8, 2017
2476ab9
test: improve error emssage reporting in testNapiRun.js
Nov 6, 2017
22490dc
doc: fix typos in N-API
SwathiKalahastri Nov 10, 2017
976f32d
test: refactor addons-napi/test_promise/test.js
ka3e Nov 6, 2017
35dc8ba
doc: document common pattern for instanceof checks
mhdawson Nov 2, 2017
f4391b9
n-api: add helper for addons to get the event loop
addaleax Nov 17, 2017
b20c278
src: add napi_handle_scope_mismatch to msg list
Nov 20, 2017
c685212
doc: use "JavaScript" instead of "Javascript"
Trott Nov 19, 2017
d4284a4
n-api: use nullptr instead of NULL in node_api.cc
danbev Nov 23, 2017
173f297
doc: update example in module registration
fhinkel Dec 4, 2017
e54b58c
test: replace assert.throws with common.expectsError
Leko Dec 4, 2017
86ddd03
test: add unhandled rejection guard
babygoat Nov 23, 2017
412cc17
test: remove literals that obscure assert messages
Trott Dec 13, 2017
65ea7ab
n-api: fix memory leak in napi_async_destroy()
Dec 17, 2017
a6c277e
test: remove ambiguous error messages from test_error
nadrane Dec 21, 2017
3d8e1aa
doc: updates examples to use NULL
mhdawson Jan 5, 2018
bb99f31
n-api: throw RangeError in napi_create_dataview() with invalid range
romandev Dec 26, 2017
62427bb
n-api: expose n-api version in process.versions
mhdawson Jan 9, 2018
e04386a
doc: napi: fix unbalanced emphasis
ofrobots Jan 12, 2018
fed2136
doc: napi: make header style consistent
ofrobots Jan 12, 2018
2e24a0b
n-api: throw RangeError napi_create_typedarray()
romandev Jan 8, 2018
b3806ec
test: fixed typos in napi test
furstenheim Jan 14, 2018
74086e1
doc: remove uannecessary Require
mhdawson Jan 16, 2018
eceb70b
test: refactor addons-napi/test_exception/test.js
Trott Jan 24, 2018
d9df8cf
n-api: change assert ok check to notStrictEqual.
nbdaaron Jan 27, 2018
59249a1
test: show pending exception error in napi tests
reccanti Jan 27, 2018
b565ba2
n-api: implement wrapping using private properties
Jan 23, 2018
c09a713
n-api: wrap control flow macro in do/while
bnoordhuis Feb 2, 2018
24a2791
doc: remove usage of you in n-api doc
mhdawson Feb 2, 2018
fdd50fb
doc: small typo in n-api.md
iSkore Feb 4, 2018
a8dec48
n-api: add methods to open/close callback scope
mhdawson Dec 13, 2017
516c287
n-api: remove extra reference from test
Feb 3, 2018
9719b83
doc: fix typo in n-api.md
vsemozhetbyt Feb 6, 2018
7f37dc9
test: improve error message output
bshankar Feb 1, 2018
c90b77e
test: convert new tests to use error types
jackhorton Feb 5, 2018
e9e5d56
doc: fix exporting a function example
Feb 8, 2018
8826f18
doc: mark NAPI_AUTO_LENGTH as code
tniessen Feb 10, 2018
7c58045
test: remove unnecessary timer
cjihrig Feb 11, 2018
d246374
n-api: fix object test
Feb 27, 2018
10fe65a
doc: fix n-api asynchronous threading docs
ebickle Mar 1, 2018
af62c8f
n-api: update reference test
Mar 2, 2018
a8237ef
n-api: update documentation
Mar 1, 2018
ce14479
n-api: resolve promise in test
Mar 8, 2018
3f6d80e
n-api,test: add a new.target test to addons-napi
boingoing Jan 17, 2018
2c1190a
n-api: take n-api out of experimental
mhdawson Apr 10, 2018
aa0fb77
n-api,test: add int64 bounds tests
kfarnung Mar 12, 2018
b9b752e
doc: fix typos on n-api
shama Mar 16, 2018
eb29266
n-api: add missing exception checking
mhdawson Mar 15, 2018
49cd4fa
n-api: add napi_fatal_exception
mafintosh Mar 14, 2018
c16a705
n-api: re-write test_make_callback
Mar 19, 2018
71acb52
doc: Add a missing comma
leaves4j Mar 23, 2018
c6d0a66
n-api: bump version of n-api supported
mhdawson Mar 20, 2018
e6ccdfb
n-api: ensure in-module exceptions are propagated
Mar 22, 2018
abd9fd6
n-api: back up env before finalize
Apr 1, 2018
3aa5b7d
n-api: add more `int64_t` tests
kfarnung Mar 16, 2018
79592b1
2018-04-30, Version 6.14.2 'Boron' (LTS)
MylesBorins Apr 13, 2018
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
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V6.md#6.14.1">6.14.1</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V6.md#6.14.2">6.14.2</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V6.md#6.14.1">6.14.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V6.md#6.14.0">6.14.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V6.md#6.13.1">6.13.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V6.md#6.13.0">6.13.0</a><br/>
Expand Down
16 changes: 8 additions & 8 deletions COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -593,20 +593,20 @@ Validate that the commit message is properly formatted using
$ git rev-list upstream/master...HEAD | xargs core-validate-commit
```

Optional: When landing your own commits, force push the amended commit to the
branch you used to open the pull request. If your branch is called `bugfix`,
then the command would be `git push --force-with-lease origin master:bugfix`.
When the pull request is closed, this will cause the pull request to
show the purple merged status rather than the red closed status that is
usually used for pull requests that weren't merged.

Time to push it:

```text
$ git push upstream master
```
* Optional: Force push the amended commit to the branch you used to
open the pull request. If your branch is called `bugfix`, then the
command would be `git push --force-with-lease origin master:bugfix`.
When the pull request is closed, this will cause the pull request to
show the purple merged status rather than the red closed status that is
usually used for pull requests that weren't merged. Only do this when
landing your own contributions.

* Close the pull request with a "Landed in `<commit hash>`" comment. If
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
multiple commits.
Expand Down
60 changes: 52 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,10 @@ v8:

test: all
$(MAKE) build-addons
$(MAKE) build-addons-napi
$(MAKE) cctest
$(PYTHON) tools/test.py --mode=release -J \
doctool inspector known_issues message pseudo-tty parallel sequential addons
doctool inspector known_issues message pseudo-tty parallel sequential addons addons-napi
$(MAKE) lint

test-parallel: all
Expand Down Expand Up @@ -189,6 +190,41 @@ test/addons/.buildstamp: config.gypi \
# TODO(bnoordhuis) Force rebuild after gyp update.
build-addons: $(NODE_EXE) test/addons/.buildstamp

ADDONS_NAPI_BINDING_GYPS := \
$(filter-out test/addons-napi/??_*/binding.gyp, \
$(wildcard test/addons-napi/*/binding.gyp))

ADDONS_NAPI_BINDING_SOURCES := \
$(filter-out test/addons-napi/??_*/*.cc, $(wildcard test/addons-napi/*/*.cc)) \
$(filter-out test/addons-napi/??_*/*.h, $(wildcard test/addons-napi/*/*.h))

# Implicitly depends on $(NODE_EXE), see the build-addons-napi rule for rationale.
test/addons-napi/.buildstamp: config.gypi \
deps/npm/node_modules/node-gyp/package.json \
$(ADDONS_NAPI_BINDING_GYPS) $(ADDONS_NAPI_BINDING_SOURCES) \
deps/uv/include/*.h deps/v8/include/*.h \
src/node.h src/node_buffer.h src/node_object_wrap.h src/node_version.h \
src/node_api.h src/node_api_types.h
# Cannot use $(wildcard test/addons-napi/*/) here, it's evaluated before
# embedded addons have been generated from the documentation.
@for dirname in test/addons-napi/*/; do \
printf "\nBuilding addon $$PWD/$$dirname\n" ; \
env MAKEFLAGS="-j1" $(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp \
--loglevel=$(LOGLEVEL) rebuild \
--python="$(PYTHON)" \
--directory="$$PWD/$$dirname" \
--nodedir="$$PWD" || exit 1 ; \
done
touch $@

# .buildstamp and .docbuildstamp need $(NODE_EXE) but cannot depend on it
# directly because it calls make recursively. The parent make cannot know
# if the subprocess touched anything so it pessimistically assumes that
# .buildstamp and .docbuildstamp are out of date and need a rebuild.
# Just goes to show that recursive make really is harmful...
# TODO(bnoordhuis) Force rebuild after gyp or node-gyp update.
build-addons-napi: $(NODE_EXE) test/addons-napi/.buildstamp

clear-stalled:
# Clean up any leftover processes but don't error if found.
ps awwx | grep Release/node | grep -v grep | cat
Expand All @@ -200,20 +236,22 @@ clear-stalled:
test-gc: all test/gc/node_modules/weak/build/Release/weakref.node
$(PYTHON) tools/test.py --mode=release gc

test-build: | all build-addons
test-build: | all build-addons build-addons-napi

test-build-addons-napi: all build-addons-napi

test-all: test-build test/gc/node_modules/weak/build/Release/weakref.node
$(PYTHON) tools/test.py --mode=debug,release

test-all-valgrind: test-build
$(PYTHON) tools/test.py --mode=debug,release --valgrind

CI_NATIVE_SUITES := addons
CI_NATIVE_SUITES := addons addons-napi
CI_JS_SUITES := doctool inspector known_issues message parallel pseudo-tty sequential

# Build and test addons without building anything else
test-ci-native: LOGLEVEL := info
test-ci-native: | test/addons/.buildstamp
test-ci-native: | test/addons/.buildstamp test/addons-napi/.buildstamp
$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
--mode=release --flaky-tests=$(FLAKY_TESTS) \
$(TEST_CI_ARGS) $(CI_NATIVE_SUITES)
Expand All @@ -231,11 +269,11 @@ test-ci-js: | clear-stalled
fi

test-ci: LOGLEVEL := info
test-ci: | clear-stalled build-addons
test-ci: | clear-stalled build-addons build-addons-napi
out/Release/cctest --gtest_output=tap:cctest.tap
$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
--mode=release --flaky-tests=$(FLAKY_TESTS) \
$(TEST_CI_ARGS) $(CI_JS_SUITES) $(CI_NATIVE_SUITES)
$(TEST_CI_ARGS) $(CI_JS_SUITES) addons-napi $(CI_NATIVE_SUITES)
# Clean up any leftover processes, error if found.
ps awwx | grep Release/node | grep -v grep | cat
@PS_OUT=`ps awwx | grep Release/node | grep -v grep | awk '{print $$1}'`; \
Expand Down Expand Up @@ -282,7 +320,10 @@ test-npm: $(NODE_EXE)
test-npm-publish: $(NODE_EXE)
npm_package_config_publishtest=true $(NODE) deps/npm/test/run.js

test-addons: test-build
test-addons-napi: test-build-addons-napi
$(PYTHON) tools/test.py --mode=release addons-napi

test-addons: test-build test-addons-napi
$(PYTHON) tools/test.py --mode=release addons

test-addons-clean:
Expand Down Expand Up @@ -813,6 +854,8 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \
test/addons/*/*.h \
test/cctest/*.cc \
test/cctest/*.h \
test/addons-napi/*/*.cc \
test/addons-napi/*/*.h \
tools/icu/*.cc \
tools/icu/*.h \
))
Expand Down Expand Up @@ -857,5 +900,6 @@ endif
bench-buffer bench-net bench-http bench-fs bench-tls cctest run-ci \
test-v8 test-v8-intl test-v8-benchmarks test-v8-all v8 lint-ci \
bench-ci lint-js-ci doc-only $(TARBALL)-headers test-ci test-ci-native \
test-ci-js build-ci test-hash-seed clear-stalled
test-ci-js build-ci test-hash-seed clear-stalled test-addons-napi \
build-addons-napi

28 changes: 17 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@
<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. Node.js
uses an event-driven, non-blocking I/O model that makes it lightweight and
efficient. The Node.js package ecosystem, [npm][], is the largest ecosystem of
open source libraries in the world.
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. For
more information on using Node.js, see the
[Node.js Website][].

The Node.js project is supported by the
[Node.js Foundation](https://nodejs.org/en/foundation/). Contributions,
Expand Down Expand Up @@ -195,8 +194,8 @@ us a report nonetheless.

- [#14519](https://github.com/nodejs/node/issues/14519): _Internal domain
function can be used to cause segfaults_. Causing program termination using
either the public Javascript APIs or the private bindings layer APIs requires
the ability to execute arbitrary Javascript code, which is already the highest
either the public JavaScript APIs or the private bindings layer APIs requires
the ability to execute arbitrary JavaScript code, which is already the highest
level of privilege possible.

- [#12141](https://github.com/nodejs/node/pull/12141): _buffer: zero fill
Expand Down Expand Up @@ -248,8 +247,8 @@ For more information about the governance of the Node.js project, see
**Franziska Hinkelmann** &lt;franziska.hinkelmann@gmail.com&gt; (she/her)
* [Fishrock123](https://github.com/Fishrock123) -
**Jeremiah Senkpiel** &lt;fishrock123@rocketmail.com&gt;
* [indutny](https://github.com/indutny) -
**Fedor Indutny** &lt;fedor.indutny@gmail.com&gt;
* [gibfahn](https://github.com/gibfahn) -
**Gibson Fahnestock** &lt;gibfahn@gmail.com&gt; (he/him)
* [jasnell](https://github.com/jasnell) -
**James M Snell** &lt;jasnell@gmail.com&gt; (he/him)
* [joyeecheung](https://github.com/joyeecheung) -
Expand All @@ -258,8 +257,6 @@ For more information about the governance of the Node.js project, see
**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)
* [mscdex](https://github.com/mscdex) -
**Brian White** &lt;mscdex@mscdex.net&gt;
* [MylesBorins](https://github.com/MylesBorins) -
**Myles Borins** &lt;myles.borins@gmail.com&gt; (he/him)
* [ofrobots](https://github.com/ofrobots) -
Expand All @@ -281,10 +278,14 @@ For more information about the governance of the Node.js project, see
**Ben Noordhuis** &lt;info@bnoordhuis.nl&gt;
* [chrisdickinson](https://github.com/chrisdickinson) -
**Chris Dickinson** &lt;christopher.s.dickinson@gmail.com&gt;
* [indutny](https://github.com/indutny) -
**Fedor Indutny** &lt;fedor.indutny@gmail.com&gt;
* [isaacs](https://github.com/isaacs) -
**Isaac Z. Schlueter** &lt;i@izs.me&gt;
* [joshgav](https://github.com/joshgav) -
**Josh Gavant** &lt;josh.gavant@outlook.com&gt;
* [mscdex](https://github.com/mscdex) -
**Brian White** &lt;mscdex@mscdex.net&gt;
* [nebrius](https://github.com/nebrius) -
**Bryan Hughes** &lt;bryan@nebri.us&gt;
* [orangemocha](https://github.com/orangemocha) -
Expand Down Expand Up @@ -342,6 +343,8 @@ For more information about the governance of the Node.js project, see
**Daniel Bevenius** &lt;daniel.bevenius@gmail.com&gt;
* [DavidCai1993](https://github.com/DavidCai1993) -
**David Cai** &lt;davidcai1993@yahoo.com&gt; (he/him)
* [devsnek](https://github.com/devsnek) -
**Gus Caplan** &lt;me@gus.host&gt; (he/him)
* [edsadr](https://github.com/edsadr) -
**Adrian Estrada** &lt;edsadr@gmail.com&gt; (he/him)
* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) -
Expand Down Expand Up @@ -426,6 +429,8 @@ For more information about the governance of the Node.js project, see
**Mikeal Rogers** &lt;mikeal.rogers@gmail.com&gt;
* [misterdjules](https://github.com/misterdjules) -
**Julien Gilli** &lt;jgilli@nodejs.org&gt;
* [mmarchini](https://github.com/mmarchini) -
**Matheus Marchini** &lt;matheus@sthima.com&gt;
* [mscdex](https://github.com/mscdex) -
**Brian White** &lt;mscdex@mscdex.net&gt;
* [MylesBorins](https://github.com/MylesBorins) -
Expand Down Expand Up @@ -593,12 +598,13 @@ Previous releases may also have been signed with one of the following GPG keys:

* [Contributing to the project][]
* [Working Groups][]
* [Strategic Initiatives][]

[npm]: https://www.npmjs.com
[Code of Conduct]: https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md
[Contributing to the project]: CONTRIBUTING.md
[Node.js Help]: https://github.com/nodejs/help
[Node.js Website]: https://nodejs.org/en/
[Questions tagged 'node.js' on StackOverflow]: https://stackoverflow.com/questions/tagged/node.js
[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md
[Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md
[#node.js channel on chat.freenode.net]: https://webchat.freenode.net?channels=node.js&uio=d4
14 changes: 12 additions & 2 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ parser = optparse.OptionParser()
valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux',
'android', 'aix')
valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el', 'ppc',
'ppc64', 'x32','x64', 'x86', 's390', 's390x')
'ppc64', 'x32','x64', 'x86', 'x86_64', 's390', 's390x')
valid_arm_float_abi = ('soft', 'softfp', 'hard')
valid_arm_fpu = ('vfp', 'vfpv3', 'vfpv3-d16', 'neon')
valid_mips_arch = ('loongson', 'r1', 'r2', 'r6', 'rx')
Expand Down Expand Up @@ -825,6 +825,9 @@ def configure_node(o):
# the Makefile resets this to x86 afterward
if target_arch == 'x86':
target_arch = 'ia32'
# x86_64 is common across linuxes, allow it as an alias for x64
if target_arch == 'x86_64':
target_arch = 'x64'
o['variables']['host_arch'] = host_arch
o['variables']['target_arch'] = target_arch
o['variables']['node_byteorder'] = sys.byteorder
Expand All @@ -842,7 +845,6 @@ def configure_node(o):
configure_mips(o)

if flavor == 'aix':
o['variables']['node_core_target_name'] = 'node_base'
o['variables']['node_target_type'] = 'static_library'

if target_arch in ('x86', 'x64', 'ia32', 'x32'):
Expand Down Expand Up @@ -942,6 +944,13 @@ def configure_node(o):
else:
o['variables']['coverage'] = 'false'

if options.shared:
o['variables']['node_target_type'] = 'shared_library'
elif options.enable_static:
o['variables']['node_target_type'] = 'static_library'
else:
o['variables']['node_target_type'] = 'executable'

def configure_library(lib, output):
shared_lib = 'shared_' + lib
output['variables']['node_' + shared_lib] = b(getattr(options, shared_lib))
Expand Down Expand Up @@ -1437,6 +1446,7 @@ config = {
'BUILDTYPE': 'Debug' if options.debug else 'Release',
'USE_XCODE': str(int(options.use_xcode or 0)),
'PYTHON': sys.executable,
'NODE_TARGET_TYPE': variables['node_target_type'],
}

if options.prefix:
Expand Down
3 changes: 2 additions & 1 deletion doc/api/_toc.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@

* [Assertion Testing](assert.html)
* [Buffer](buffer.html)
* [C/C++ Addons](addons.html)
* [C++ Addons](addons.html)
* [C/C++ Addons - N-API](n-api.html)
* [Child Processes](child_process.html)
* [Cluster](cluster.html)
* [Command Line Options](cli.html)
Expand Down
28 changes: 24 additions & 4 deletions doc/api/addons.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# C/C++ Addons
# C++ Addons

<!--introduced_in=v0.10.0-->

Node.js Addons are dynamically-linked shared objects, written in C or C++, that
Node.js Addons are dynamically-linked shared objects, written in C++, that
can be loaded into Node.js using the [`require()`][require] function, and used
just as if they were an ordinary Node.js module. They are used primarily to
provide an interface between JavaScript running in Node.js and C/C++ libraries.
Expand All @@ -28,7 +28,7 @@ involving knowledge of several components and APIs :
off-loading work via libuv to non-blocking system operations, worker threads
or a custom use of libuv's threads.

- Internal Node.js libraries. Node.js itself exports a number of C/C++ APIs
- Internal Node.js libraries. Node.js itself exports a number of C++ APIs
that Addons can use &mdash; the most important of which is the
`node::ObjectWrap` class.

Expand Down Expand Up @@ -101,7 +101,7 @@ Addon module name is `addon`.
Once the source code has been written, it must be compiled into the binary
`addon.node` file. To do so, create a file called `binding.gyp` in the
top-level of the project describing the build configuration of your module
using a JSON-like format. This file is used by [node-gyp][] -- a tool written
using a JSON-like format. This file is used by [node-gyp][] a tool written
specifically to compile Node.js Addons.

```json
Expand Down Expand Up @@ -215,6 +215,26 @@ Addon developers are recommended to use to keep compatibility between past and
future releases of V8 and Node.js. See the `nan` [examples][] for an
illustration of how it can be used.


## N-API

> Stability: 1 - Experimental

N-API is an API for building native Addons. It is independent from
the underlying JavaScript runtime (ex V8) and is maintained as part of
Node.js itself. This API will be Application Binary Interface (ABI) stable
across version of Node.js. It is intended to insulate Addons from
changes in the underlying JavaScript engine and allow modules
compiled for one version to run on later versions of Node.js without
recompilation. Addons are built/packaged with the same approach/tools
outlined in this document (node-gyp, etc.). The only difference is the
set of APIs that are used by the native code. Instead of using the V8
or [Native Abstractions for Node.js][] APIs, the functions available
in the N-API are used.

The functions available and how to use them are documented in the
section titled [C/C++ Addons - N-API](n-api.html).

## Addon examples

Following are some example Addons intended to help developers get started. The
Expand Down
2 changes: 1 addition & 1 deletion doc/api/buffer.md
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ deprecated: v6.0.0

* `size` {integer} The desired length of the new `Buffer`.

Allocates a new `Buffer` of `size` bytes. The `size` must be less than or equal
Allocates a new `Buffer` of `size` bytes. The `size` must be less than or equal
to the value of [`buffer.kMaxLength`]. Otherwise, a [`RangeError`] is thrown.
A zero-length `Buffer` will be created if `size <= 0`.

Expand Down
Loading