0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-29 23:16:30 +01:00
Commit Graph

200 Commits

Author SHA1 Message Date
Bartosz Sosnowski
7c452845b8 build, win: make LTCG optional
Disables Link Time Code Generation by default. Adds ‘ltcg’ vcbuild
option to enable it. LTCG will be used by default by release and CI
builds.

PR-URL: https://github.com/nodejs/node/pull/21186
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
2018-06-27 11:00:56 +02:00
Bartosz Sosnowski
4dece043ba win, build: generate .sln only when necessary
When generating sln, store flags passed to configure. Next time, if
node.sln exists and configure flags match those stored, skip building
.sln files.

Adds projgen vcbuild option to force .sln regeneration.

PR-URL: https://github.com/nodejs/node/pull/21284
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-06-26 19:07:27 +02:00
Bartosz Sosnowski
43a2091187
win, build: fix building on 32-bit machines
Fixes: https://github.com/nodejs/node/issues/21402

PR-URL: https://github.com/nodejs/node/pull/21437
Fixes: https://github.com/nodejs/node/issues/21402
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2018-06-24 23:06:24 -07:00
Bartosz Sosnowski
c403eeb7fd
build: build addons in parallel on Windows
Port https://github.com/nodejs/node/pull/21155 to vcbuild.bat

PR-URL: https://github.com/nodejs/node/pull/21403
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2018-06-24 22:56:10 -07:00
Bartosz Sosnowski
c9d9bf1cb0 win, build: add documentation support to vcbuild
Adds `doc` option to vcbuild.bat which will install node-doc-generator
dependencies and build the documentation in the %config%\doc folder.

Adds `lint-md-build` option which will download markdown linter.

Adds `lint-md` option, included by default in `lint` and `test` options
which will run linter on the markdown files in the doc folder.

PR-URL: https://github.com/nodejs/node/pull/19663
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2018-06-07 11:49:50 +02:00
Anna Henningsen
15c7a49bfc
http2: switch to new runtime-controlled debugging system
Remove `--debug-http2` as a compile-time feature and
make all debug statements available using `NODE_DEBUG_NATIVE=http2`
at runtime.

This probably makes the debugging-enabled case a bit slower due to
additional string concatenations, but switching to a runtime-checking
system makes debugging more flexible and can be applied more easily
to other parts of the source code as well.

PR-URL: https://github.com/nodejs/node/pull/20987
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-05-31 09:54:49 +02:00
Shigeki Ohtsu
f3f1298980 build, win: opt-in openssl_no_asm if no nasm found
Instead of automatically falling back to openssl_no_asm with warning
if no nasm is found during build on Windows, this stops vcbuild.bat
and requires users to specify openssl_no_asm option explicitly.

Fixes: https://github.com/nodejs/node/issues/19918
PR-URL: https://github.com/nodejs/node/pull/19943
Refs: https://github.com/nodejs/node/pull/19930
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2018-04-12 11:19:04 +09:00
João Reis
eec659c138 build, tools, win: add nasm detection for OpenSSL
OpenSSL-1.1.0 requires the nasm assembler for building asm files on
Windows. This finds nasm at \Program Files\NASM\nasm.exe or
\ProgramFiles(x86)\NASM\nasm.exe in vcbuild.bat for users who did not
add its path in their enviroments.

Fixes: https://github.com/nodejs/build/issues/1190
Fixes: https://github.com/nodejs/node/issues/4270
PR-URL: https://github.com/nodejs/node/pull/19794
Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2018-04-10 06:45:45 +09:00
Refael Ackermann
53035b142b
build,windows: make vcbuild fail if upload fails
Refs: https://github.com/nodejs/build/issues/1211
2018-04-08 12:32:21 -04:00
Gabriel Schulhof
a972ed4d50 build: allow vcbuild to merely build addon tests
RE: https://github.com/nodejs/build/issues/1097
PR-URL: https://github.com/nodejs/node/pull/19637
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
2018-04-04 13:12:19 -04:00
Vse Mozhet Byt
fa8594779a build: do not cd on vcbuild help
`vcbuild help` just outputs help info and exits.

If a user calls this command not from a project root,
the directory change can be unexpected and unwanted.

PR-URL: https://github.com/nodejs/node/pull/19291
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-03-14 14:06:04 +02:00
Rich Trott
f05eaa4a53
build: lint .eslintrc.js file
Update default files to be linted with ESLint to include .eslintrc.js.

PR-URL: https://github.com/nodejs/node/pull/19122
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Khaidi Chu <i@2333.moe>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-03-06 09:30:57 +01:00
Bartosz Sosnowski
887a2ba92e build, win: vcbuild improvements
Removes extra erroor messages when Python is not installed. Removes
"vswhere not found" message when no VS2017 installation is found.
Adds support for DEBUG_HELPER to vcbuild.bat.

Fixes: https://github.com/nodejs/node/issues/16864

PR-URL: https://github.com/nodejs/node/pull/17015
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
2018-02-22 12:43:35 +01:00
Gus Caplan
6934792eb3 lint: move eslint to new plugin system
PR-URL: https://github.com/nodejs/node/pull/18566
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
2018-02-20 13:13:22 -06:00
Nikolai Vavilov
cfad44105d build,win: replace run-python subroutine with single find_python call
A subroutine does not work as a replacement for the `python` command
since one cannot use a subroutine call in a `for /F` loop.

PR-URL: https://github.com/nodejs/node/pull/18621
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
2018-02-15 10:44:34 +01:00
Vse Mozhet Byt
9974d6a84d tools: add .mjs linting for Windows
PR-URL: https://github.com/nodejs/node/pull/18569
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
2018-02-05 00:31:31 +02:00
Birunthan Mohanathas
c9ce5c33dc
win, build: fix intl-none option
Like #17614, but for the `intl-none` option.

Refs: https://github.com/nodejs/node/pull/17614
PR-URL: https://github.com/nodejs/node/pull/18292
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2018-02-04 16:48:02 +01:00
Kyle Farnung
cd60c7db5f build,win: update lint-cpp on Windows
* Added a `lint-cpp` argument
* Updated `findstr` calls to output to `nul`
* Updated `findstr` calls to only use `/r` when the input is a regex

PR-URL: https://github.com/nodejs/node/pull/18012
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
2018-01-16 17:09:14 -08:00
Rod Vagg
b225970e6c build,win: restore vcbuild TAG functionality
--tag needs to be set after `getnodeversion` because TAG is defined in
there when DISTTYPE is not "release", setting it before `getnodeversion`
leads to --tag not being passed down in to `configure` and
src/node_version.h setting it as `-pre` by default. This change restores
the functionality that properly sets the TAG for nightlies, rc builds
and other custom build types.

Ref: https://github.com/nodejs/node/pull/17299
Ref: https://github.com/nodejs/abi-stable-node/issues/289

PR-URL: https://github.com/nodejs/node/pull/18031
Ref: https://github.com/nodejs/node/pull/17299
Ref: https://github.com/nodejs/abi-stable-node/issues/289
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: JoãReis <reis@janeasystems.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Kyle Farnung <kfarnung@microsoft.com>
2018-01-11 16:49:52 -05:00
Michaël Zasso
3dc3063275 tools: move eslint from tools to tools/node_modules
This is required because we need to add the babel-eslint dependency
and it has to be able to resolve "eslint".
babel-eslint is required to support future ES features such as async
iterators and import.meta.

Refs: https://github.com/nodejs/node/pull/17755
PR-URL: https://github.com/nodejs/node/pull/17820
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2018-01-11 09:48:05 +01:00
Rich Trott
f05fb0104a build: remove duplicate async-hooks and known_issues test runs
The `default` test suite in `test.py` includes `async-hooks` and
`known_issues`. Our current setup results in those test suites being run
twice during each CI run. Remove the duplication.

PR-URL: https://github.com/nodejs/node/pull/17912
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2018-01-02 20:50:14 -08:00
Bartosz Sosnowski
b021169a11 win, build: fix without-intl option
Fixes --with-intl option passed to configure script when without-intl
is used

PR-URL: https://github.com/nodejs/node/pull/17614
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2017-12-15 12:27:37 +05:30
Nikolai Vavilov
b13233aa39 build: remove support for VS2015
PR-URL: https://github.com/nodejs/node/pull/16969
Refs: https://github.com/nodejs/node/pull/16868
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2017-12-12 20:43:35 +02:00
Bartosz Sosnowski
8514ea9282 build, win: faster Release rebuilds
Sets Link Time Code Generation to INCREMENTAL improving Release
rebuilds speed.

Adds no-cctest option to vcbuild.bat, which will skip building
cctest.exe

PR-URL: https://github.com/nodejs/node/pull/17393
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-12-07 14:11:04 +01:00
Refael Ackermann
9fb390a1c6
build,win: vcbuild refactoring call configure
PR-URL: https://github.com/nodejs/node/pull/17299
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2017-12-02 18:01:39 -05:00
João Reis
04566d3698 build,win,msi: support WiX with VS2017
PR-URL: https://github.com/nodejs/node/pull/17101
Reviewed-By: Nikolai Vavilov <vvnicholas@gmail.com>
2017-11-28 23:11:15 +00:00
Daniel Bevenius
9ae81b9cb9 Revert "build: for --enable-static, run only cctest"
This reverts commit a36b540502.

PR-URL: https://github.com/nodejs/node/pull/14986
Refs: https://github.com/nodejs/node/issues/14158
Refs: https://github.com/nodejs/node/pull/14892
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2017-11-16 09:22:13 +01:00
Daniel Bevenius
f002c3d2ed build: include src\tracing when linting on win
This commit excludes src\tracing\trace_event.h and
src\tracing\trace_event_common.h from the linter but allows the
rest of the files in src\tracing to be examined by the linter
which is similar to what the Makefile does.

PR-URL: https://github.com/nodejs/node/pull/16720
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-11-09 14:44:04 +01:00
Daniel Bevenius
71e7366c2a build: add missing options to help message
This commit add missing options to the Windows help message and
removes options that no longer exist (test-uv).

PR-URL: https://github.com/nodejs/node/pull/16707
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-11-08 05:47:12 +01:00
Refael Ackermann
9ab648120c
build: improve make clean
also undocument the `vcbuild.bat` command since it's broken
and seems to only be relevant to release builds

PR-URL: https://github.com/nodejs/node/pull/16372
Refs: https://github.com/nodejs/node/pull/16010
Refs: https://github.com/nodejs/node/issues/16278
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-10-26 18:38:36 -04:00
Refael Ackermann
c3ae57f253
build: revert "call setlocal in vcbuild.bat"
This reverts commit b9a55a93c9.

PR-URL: https://github.com/nodejs/node/pull/16270
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
2017-10-19 18:35:28 -04:00
Gibson Fahnestock
532d8b24fd
test: update test-npm to use test-npm-package.js
Deletes the old test-npm.sh script.

PR-URL: https://github.com/nodejs/node/pull/11540
Refs: https://github.com/nodejs/node/pull/7867
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-10-19 12:06:04 +01:00
Jon Moss
978629ca12
test: move inspector tests to parallel/sequential
* remove inspector directory artifacts

PR-URL: https://github.com/nodejs/node/pull/16197
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-10-17 19:35:50 -04:00
Daniel Bevenius
d78086bd8a build,win: enable lint option to run "standalone"
This commit adds support to run the linter without running any other
targets. This commit also makes the lint task a little more quite and
more inline with the output on other operating systems.
Below is an example of running (with a lint error to show that it is not
so quite that errors are hidden):

C:\Users\danbev\working\node>vcbuild.bat lint
running lint-cpp 'src\*.c src\*.cc src\*.h test\addons\*.cc
test\addons\*.h test\cctest\*.cc test\cctest\*.h test\gc\binding.cc
tools\icu\*.cc tools\icu\*.h'
src\env.h:24:  Should have a space between // and comment
[whitespace/comments] [4]
Total errors found: 1
"C:\Python27\python.exe" tools/check-imports.py
running lint-js

The help message now looks like:
C:\Users\danbev\working\node>vcbuild.bat /?
vcbuild.bat [debug/release] [msi] [test/test-ci/test-all/test-uv/
test-inspector/test-internet/test-pummel/test-simple/test-message/
test-async-hooks/test-v8/test-v8-intl/test-v8-benchmarks/
test-v8-all] [clean] [noprojgen] [small-icu/full-icu/without-intl]
[nobuild] [sign] [x86/x64] [vs2015/vs2017] [download-all]
[enable-vtune] [lint/lint-ci] [no-NODE-OPTIONS]
[link-module path-to-module]
Examples:
  vcbuild.bat                          : builds release build
  vcbuild.bat debug                    : builds debug build
  vcbuild.bat release msi              : builds release build and MSI installer package
  vcbuild.bat test                     : builds debug build and runs tests
  vcbuild.bat build-release            : builds the release distribution as used by nodejs.org
  vcbuild.bat enable-vtune             : builds nodejs with Intel VTune profiling support to profile JavaScript
  vcbuild.bat link-module my_module.js : bundles my_module as built-in module
  vcbuild.bat lint                     : runs the C++ and JavaScript linter

PR-URL: https://github.com/nodejs/node/pull/16176
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2017-10-17 07:37:01 +02:00
Daniel Bevenius
7832e69eaf build,win: include addons-napi in linter
Currently test/addons-napi files are not being included in the lint
processing. This commit adds them.

PR-URL: https://github.com/nodejs/node/pull/16181
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-10-16 07:24:53 +02:00
Daniel Bevenius
b9a55a93c9 build: call setlocal in vcbuild.bat
Currently the variables set in vcbuild.bat are mostly global and
escape/leak out into the calling process. For example, running
vcbuild.bat test and then echoing the config variable gives:

vcbuild.bat test
...
echo %config%
Release

After this change the same command give:
vcbuild.bat test
...
echo %config%
%config%

PR-URL: https://github.com/nodejs/node/pull/15754
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-10-05 09:18:08 +02:00
Benjamin Coe
5be4dfaa13
test: make it easier to run tests for subsystems
You can now run suites for subsystem using shorthand, e.g., http.
Switch to black-list of default test folders from white-list.
Tests run by 'make test', 'make coverage', etc., now configurable.
Stop running known_issues suite when collecting test coverage.

PR-URL: https://github.com/nodejs/node/pull/15450
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-10-01 20:30:48 -03:00
Benjamin Coe
a1b6cfd362
build: run es-module tests in CI
Add es-module to CI_JS_SUITES/js_test_suites, so that tests run in CI.
Update test/README adding es-module section.

PR-URL: https://github.com/nodejs/node/pull/15276
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-09-27 21:46:24 -04:00
Nikolai Vavilov
b2eb98721e
build: use generic names for linting tasks
"jslint" is the name of a tool that actually is not used, which can
cause confusion.

PR-URL: https://github.com/nodejs/node/pull/15272
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com>
2017-09-24 12:31:52 -03:00
Gibson Fahnestock
66e45b821a
build: don't fail make test on source tarballs
Tries to achieve the same effect as
https://github.com/nodejs/node/pull/13658 without breaking source
tarballs. Presumably if `tools/eslint` wasn't there at all, people
would notice in the PR review!

PR-URL: https://github.com/nodejs/node/pull/15441
Fixes: https://github.com/nodejs/node/issues/14513
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-09-21 19:23:36 -03:00
Bartosz Sosnowski
e86952d21e
build: add support for link-module to vcbuild
Adds support for link-module option to vcbuild.bat.

PR-URL: https://github.com/nodejs/node/pull/15410
Fixes: https://github.com/nodejs/node/issues/15377
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-09-19 16:23:01 -03:00
Refael Ackermann
233d1e276a
test,process: run 'abort' suite on Windows
PR-URL: https://github.com/nodejs/node/pull/15056
Fixes: https://github.com/nodejs/node/issues/14012
Refs: https://github.com/nodejs/node/pull/14013
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2017-09-03 17:20:20 -04:00
Richard Lau
b46d59605d
build: add npx to zip and 7z packages
Copy npx and npx.cmd from `deps\npm\bin` for consistency with .msi
package.

PR-URL: https://github.com/nodejs/node/pull/15033
Refs: https://github.com/nodejs/node/pull/14235
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-08-29 15:45:38 -03:00
Daniel Bevenius
a36b540502 build: for --enable-static, run only cctest
Currently when building with --enable-static and running the test target
the following error will be reported:
Building addon
/node/test/addons/01_function_arguments/
env: ./node: No such file or directory
make[1]: *** [test/addons/.buildstamp] Error 1

Note that this is with a clean build where no prior node executable was
built.

This commit suggests only running the cctest target when --enable-static
is specified.

PR-URL: https://github.com/nodejs/node/pull/14892
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Lance Ball <lball@redhat.com>
2017-08-24 05:52:23 +02:00
Anna Henningsen
491cc76871
src: use unordered_set instead of custom rb tree
Use a standard hash-based container instead of the custom included
red/black tree implementation. There is likely no noticeable
performance difference, and if there is one, it is very likely
to be an improvement.

PR-URL: https://github.com/nodejs/node/pull/14826
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2017-08-17 20:26:59 +02:00
James M Snell
e71e71b513 http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.

This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.

This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.

Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.

The JS API is defined within `internal/http2/*.js`.

There are two APIs provided: Core and Compat.

The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.

The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.

Tests, documentation and initial benchmarks are included.

The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.

When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.

To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.

Additional configuration options to enable verbose debugging are provided:

```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```

The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.

The following illustrates as simple HTTP/2 server and client interaction:

(The HTTP/2 client and server support both plain text and TLS connections)

```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
  client.destroy();
});

// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
  stream.respond({ ':status': 200 });
  stream.write('hello ');
  stream.end('world');
});
server.listen(80);
```

```js
const http2 = require('http2');
const client = http2.connect('http://localhost');

```

Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-08-04 12:55:44 -07:00
Jason Ginchereau
cee8d6d65e build,win: fix python detection script
Handle spaces in the path to python.exe, in case it is installed
under some directory like "C:\Program Files".

PR-URL: https://github.com/nodejs/node/pull/14546
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2017-08-01 10:56:04 -07:00
Kunal Pathak
09dd6bbec6 build,test: run v8 tests on windows
`vcbuild.bat test-v8` : Runs unit test from v8 repo
`vcbuild.bat test-v8-intl` : Runs intl test from v8 repo
`vcbuild.bat test-v8` : Runs benchmarks from v8 repo

The runs needs
https://www.chromium.org/developers/how-tos/install-depot-tools
installed on the machine expects environment variable
`DEPOT_TOOLS_PATH` to be set to the path.

Set environment variable `DISABLE_V8_I18N` to disable i18n.

PR-URL: https://github.com/nodejs/node/pull/13992
Refs: https://github.com/nodejs/node/pull/4704
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-07-26 18:08:30 -07:00
Nikolai Vavilov
be3f3d40e2 build: prevent VsDevCmd.bat from changing cwd
VsDevCmd.bat changes the current working directory to
"%USERPROFILE%\Source" if it exists. Setting VSCMD_START_DIR overrides
this behavior.

PR-URL: https://github.com/nodejs/node/pull/14303
Fixes: https://github.com/nodejs/node/issues/14300
Refs: https://developercommunity.visualstudio.com/content/problem/26780/vsdevcmdbat-changes-the-current-working-directory.html
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-07-17 20:00:42 +03:00
Kyle Farnung
d48472c20f
build: split up cpplint to avoid long cmd lines
Refactors cpplint slightly to allow multiple runs of it. This allows
downstream projects to run cpplint on their dependencies.

PR-URL: https://github.com/nodejs/node/pull/14116
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Kunal Pathak <kunal.pathak@microsoft.com>
Reviewed-By: João Reis <reis@janeasystems.com>
2017-07-09 13:28:31 -04:00