Node.js v6.3.0 Release Brief
This v6 release is the result of an enormous amount of work done recently, combined with the recent security releases which caused a feature hold-up.
As with all releases within major version lines, minor and patch upgrades should be drop-in replacements for previous versions.
Overview
Of a total of 155 commits:
- 32 were documentation-only commits.
- 18 only modify tests and 9 only affect internal tooling.
- 8 of the commits are related to dependencies as follows:
- One commit was back-ported onto V8:
7dfb5beeec as c544213717
- (Myles Borins) #7348- This fixes the
typeof null === "undefined"
JIT bug in V8.
- This fixes the
11 commits were tagged as semver-minor
, adding new functionality and justifying the jump to v6.3.0:
- [
4014ecbfb4
] - (SEMVER-MINOR) buffer: speed up swap16/32, add swap64 (Zach Bjornson) #7157 - [
c1bd3fe14c
] - (SEMVER-MINOR) cluster: work with v8_inspector (cjihrig) #6792 - [
4891001d7e
] - (SEMVER-MINOR) debugger: make listen address configurable (Ben Noordhuis) #3316 - [
6b1fc63dcb
] - (SEMVER-MINOR) readline: allow passing prompt to constructor (Evan Lucas) #7125 - [
72d659a000
] - (SEMVER-MINOR) readline: return old status from _setRawMode (Anna Henningsen) #6635 - [
da8e510ee0
] - (SEMVER-MINOR) repl: break on sigint/ctrl+c (Anna Henningsen) #6635 - [
2a8bd35bac
] - (SEMVER-MINOR) src: add node::FreeEnvironment public API (Cheng Zhao) #3098 - [
929b6c29d8
] - (SEMVER-MINOR) src: refactor require('constants') (James M Snell) #6534 - [
7d4f038a78
] - (SEMVER-MINOR) src,lib: v8-inspector support (Pavel Feldman) #6792 - [
3b8914d5ce
] - (SEMVER-MINOR) util: add an option for configuring break length (cjihrig) #7499 - [
d049919e7d
] - (SEMVER-MINOR) vm: add ability to break on sigint/ctrl+c (Anna Henningsen) #6635
The remaining significant commits are as follows:
- [
40211e80f2
] - assert: remove unneeded arguments special handling (Rich Trott) #7413 - [
44f0f940c8
] - benchmark: addsetImmediate()
benchmarks (Andras) #6436 - [
35c70b5668
] - benchmark:util._extend
vsobject.assign
(surya panikkal) #7255 - [
ac8e1bf609
] - buffer: improve creation performance. (Ingvar Stepanyan) #7349 - [
5e4113e58d
] - build: Fix compile failure in backtrace_posix.cc (Michael Dawson) #7544 - [
15a32dd42b
] - build: export openssl symbols on windows (Ben Noordhuis) #6274 - [
b829a4969f
] - build: enable big toc for release builds in AIX (Gireesh Punathil) #7508 - [
9b5be44b01
] - build: split CI rules in Makefile (João Reis) #7317 - [
1bd6a623a0
] - build: drop unconditional openssl dep from cctest (Ben Noordhuis) #7486 - [
8a31b234ee
] - build: remove unused files from CPPLINT_FILES (Ben Noordhuis) #7462 - [
91744aaf00
] - build: configure --shared (Stefan Budeanu) #6994 - [
2aa06b9fa0
] - child_process: preserve argument type (Rich Trott) #7391 - [
4a0fb6fcb8
] - Revert "child_process: measure buffer length in bytes" (Rich Trott) #7391 - [
fa9e6f7463
] - crypto: Allow GCM ciphers to have a longer IV length (Michael Wain) #6376 - [
ef41c8bd8e
] - crypto: update root certificates (Ben Noordhuis) #7363 - [
2c7804ad9e
] - crypto,tls: perf improvements for crypto and tls getCiphers (James M Snell) #7225 - [
a4880b5b10
] - deps:MASM.UseSafeExceptionHandlers
for OpenSSL (Fedor Indutny) #7427 - [
e7b84007be
] - http: replace finish() callback with arrow function (Guy Fraser) #7378 - [
c4aaf47f4d
] - inspector: Do cleanups before notifying callback (Eugene Ostroukhov) #7450 - [
fe580eb578
] - inspector: print warning when used (Evan Lucas) #7383 - [
8dd48c9251
] - inspector: fix inspector connection cleanup (Eugene Ostroukhov) #7268 - [
09ecd1fb58
] - inspector: fix coverity scan errors (Eugene Ostroukhov) #7324 - [
88b2aa3ce6
] - inspector: process.exit should wait for inspector (Eugene Ostroukhov) #7252 - [
7da8a413f6
] - inspector: reduce implementation in header (Eugene Ostroukhov) #7228 - [
ec90a7a92e
] - inspector: change default port (Ali Ijaz Sheikh) #7212 - [
d0e24923a6
] - net: use icu's punycode implementation (James M Snell) #7355 - [
fb39025e31
] - punycode: update to v2.0.0 (Mathias Bynens) #7267 - [
7a7b8f7e67
] - repl: DefaultuseGlobal
to false in CLI REPL. (Lance Ball) #5703 - [
c39f6c0204
] - repl: Enable tab completion for global properties (Lance Ball) #7369 - [
ca95a84bc4
] - repl: fix tab completion for defined commands (Prince J Wesley) #7364 - [
3cba8acc15
] - src: remove obsolete NOLINT comments (Ben Noordhuis) #7462 - [
57cc4e3071
] - src: print backtrace on failed CHECK/ASSERT (Ben Noordhuis) #6734 - [
b8919b1d23
] - src: move ABORT() logic into node::Abort() (Ben Noordhuis) #6734 - [
c96d701769
] - src: print backtrace on abort/unreachable code (Ben Noordhuis) #6734 - [
6cec90a611
] - src: print backtrace on fatal error (Ben Noordhuis) #6734 - [
8f7baffee4
] - src: fix bad logic in uid/gid checks (Ben Noordhuis) #7374 - [
6fa560dce9
] - src: fix memory leak in WriteBuffers() error path (Ben Noordhuis) #7374 - [
ce039c3240
] - src: fix use-after-return in zlib bindings (Ben Noordhuis) #7374 - [
2816418c04
] - src: remove deprecated HMAC_Init, use HMAC_Init_ex (Ben Noordhuis) #7374 - [
b7e661b12c
] - src: remove duplicate HMAC_Init calls (Ben Noordhuis) #7374 - [
25bc7fee34
] - src: remove unused md_ data members (Ben Noordhuis) #7374 - [
2228a656b0
] - src: remove unused data member write_queue_size_ (Ben Noordhuis) #7374 - [
9945b4ecd6
] - src: guard against starting fs watcher twice (Ben Noordhuis) #7374 - [
3b1c19f90a
] - src: initialize encoding_ data member (Ben Noordhuis) #7374 - [
c795d1ed9b
] - src: check uv_async_init() return value (Ben Noordhuis) #7374 - [
001aa06bc0
] - src: lint v8abbr.h (Ben Noordhuis) #7462 - [
ca4fb084f6
] - src: lint node_lttng_tp.h (Ben Noordhuis) #7462 - [
da0ebf62c7
] - src: lint node_win32_perfctr_provider.cc (Ben Noordhuis) #7462 - [
3fa643b069
] - src: fix whitespace/indent cpplint warnings (Ben Noordhuis) #7462 - [
f72259aa89
] - src: fix whitespace/blank_line cpplint warnings (Ben Noordhuis) #7462 - [
1b3c1b08a8
] - src: fix runtime/references cpplint warnings (Ben Noordhuis) #7462 - [
be0c575ab4
] - src: fix runtime/int cpplint warnings (Ben Noordhuis) #7462 - [
88c5183147
] - src: fix runtime/indentation_namespace warnings (Ben Noordhuis) #7462 - [
1fa6dba8f2
] - src: fix readability/nolint cpplint warnings (Ben Noordhuis) #7462 - [
43e83576bd
] - src: fix readability/namespace cpplint warnings (Ben Noordhuis) #7462 - [
5fd158568f
] - src: fix readability/inheritance cpplint warnings (Ben Noordhuis) #7462 - [
b7e006b489
] - src: fix readability/constructors cpplint warnings (Ben Noordhuis) #7462 - [
7fe758de85
] - src: fix readability/braces cpplint warnings (Ben Noordhuis) #7462 - [
6280ccdaaa
] - src: fix build/header_guard cpplint warnings (Ben Noordhuis) #7462 - [
5dfa234bae
] - src: fix build/c++tr1 cpplint warnings (Ben Noordhuis) #7462 - [
84dd526f51
] - src: renaming ares_task struct to node_ares_task (Daniel Bevenius) #7345 - [
059335180d
] - src: use RAII for mutexes and condition variables (Ben Noordhuis) #7334 - [
3d69ad1cf3
] - src: make Sec-WebSocket-Key check case-insensitive (Myles Borins) #7248 - [
38d36e3285
] - src: fix --without-inspector build (Anna Henningsen) #7258 - [
2fd140b949
] - src: fix json payload from inspector (Myles Borins) #7232 - [
643b33b497
] - src: add linebreak to inspector message (Nicolas Romer) #7070 - [
ea2d661447
] - src: fix --without-inspector build (Anna Henningsen) #7078 - [
cd38401724
] - src: fix Windows segfault with--eval
(Bryce Simonds) #6938 - [
6dc0dae830
] - src: rename "node" script to "bootstrap_node" (Daniel Bevenius) #7277 - [
e1d6bd9e30
] - stream: improve Readable.read() performance (Brian White) #7077 - [
962ac37e1f
] - string_decoder: fix bad utf8 character handling (Brian White) #7310 - [
e30f32f003
] - Revert "test: mark test-vm-timeout flaky on windows" (Anna Henningsen) #7373 - [
efb7a90fa9
] - timers: optimizesetImmediate()
(Andras) #6436 - [
a5d894590d
] - timers: optimize linkedlist (Andras) #6436 - [
77331a7c01
] - tls: avoid calling Buffer.byteLength multiple times (James M Snell) #7236 - [
6151544751
] - vm: don't print out arrow message for custom error (Anna Henningsen) #7398 - [
55b87c0238
] - vm: test for abort condition of current invocation (Anna Henningsen) #7373
Notable Changes
- buffer: Added
buffer.swap64()
to complimentswap16()
&swap32()
. (Zach Bjornson) #7157 - build: New
configure
options have been added for building Node.js as a shared library. (Stefan Budeanu) #6994- The options are:
--shared
,--without-v8-platform
&--without-bundled-v8
.
- The options are:
- crypto: Root certificates have been updated. (Ben Noordhuis) #7363
- debugger: The server address is now configurable via
--debug=<address>:<port>
. (Ben Noordhuis) #3316 - npm: Upgraded npm to v3.10.3 (Kat Marchán) #7515 & (Rebecca Turner) #7410
- readline: Added the
prompt
option to the readline constructor. (Evan Lucas) #7125 - repl / vm:
sigint
/ctrl+c
will now break out of infinite loops without stopping the Node.js instance. (Anna Henningsen) #6635 - src:
- stream: Improved
readable.read()
performance by up to 70%. (Brian White) #7077 - timers:
setImmediate()
is now up to 150% faster in some situations. (Andras) #6436 - util: Added a
breakLength
option toutil.inspect()
to control how objects are formatted across lines. (cjihrig) #7499 - v8-inspector: Experimental support has been added for debugging Node.js over the inspector protocol. (Ali Ijaz Sheikh) #6792
- Note: This feature is experimental, and it could be altered or removed.
- You can try this feature by running Node.js with the
--inspect
flag.
Git Diffstats
(Showing the delta between v6.2.2 and v6.3.0, ignoring deps/npm
.)
Without deps, docs, benchmarks, or tests:
Makefile | 38 +-
common.gypi | 9 +
configure | 35 +
lib/_debug_agent.js | 7 +-
lib/_http_outgoing.js | 15 +-
lib/_stream_readable.js | 305 +-
lib/_tls_common.js | 6 +-
lib/assert.js | 6 -
lib/buffer.js | 192 +-
lib/child_process.js | 73 +-
lib/cluster.js | 4 +-
lib/constants.js | 10 +-
lib/crypto.js | 44 +-
lib/dgram.js | 4 +-
lib/fs.js | 8 +-
lib/internal/bootstrap_node.js | 4 +
lib/internal/child_process.js | 2 +-
lib/internal/linkedlist.js | 18 +-
lib/internal/process.js | 6 +-
lib/internal/repl.js | 3 +-
lib/internal/streams/BufferList.js | 72 +
lib/internal/util.js | 31 +
lib/os.js | 6 +
lib/punycode.js | 860 +++---
lib/readline.js | 12 +-
lib/repl.js | 96 +-
lib/string_decoder.js | 75 +-
lib/timers.js | 85 +-
lib/tls.js | 40 +-
lib/url.js | 12 +-
lib/util.js | 7 +-
lib/vm.js | 47 +
node.gyp | 181 +-
src/async-wrap.cc | 10 +-
src/backtrace_posix.cc | 50 +
src/backtrace_win32.cc | 8 +
src/cares_wrap.cc | 30 +-
src/debug-agent.cc | 23 +-
src/debug-agent.h | 7 +-
src/env-inl.h | 5 +-
src/env.h | 24 +-
src/fs_event_wrap.cc | 15 +-
src/handle_wrap.h | 2 +-
src/inspector_agent.cc | 594 ++++
src/inspector_agent.h | 42 +
src/inspector_socket.cc | 690 +++++
src/inspector_socket.h | 57 +
src/node.cc | 311 ++-
src/node.h | 15 +-
src/node_buffer.cc | 146 +-
src/node_constants.cc | 30 +-
src/node_constants.h | 2 +-
src/node_contextify.cc | 74 +-
src/node_crypto.cc | 119 +-
src/node_crypto.h | 7 -
src/node_crypto_bio.cc | 5 +-
src/node_crypto_bio.h | 3 +-
src/node_file.cc | 30 +-
src/node_http_parser.cc | 4 +-
src/node_i18n.cc | 132 +
src/node_internals.h | 165 +-
src/node_lttng_tp.h | 60 +-
src/node_main.cc | 3 +-
src/node_mutex.h | 187 ++
src/node_root_certs.h | 133 +-
src/node_stat_watcher.h | 2 +-
src/node_util.cc | 18 +
src/node_version.h | 6 +-
src/node_watchdog.cc | 226 ++
src/node_watchdog.h | 63 +-
src/node_win32_etw_provider.cc | 9 +-
src/node_win32_perfctr_provider.cc | 30 +-
src/node_zlib.cc | 4 +-
src/process_wrap.cc | 14 +-
src/signal_wrap.cc | 9 +
src/spawn_sync.cc | 38 +-
src/spawn_sync.h | 4 +-
src/stream_base.h | 2 +-
src/string_bytes.cc | 112 +-
src/string_search.cc | 5 +-
src/string_search.h | 6 +-
src/tls_wrap.cc | 2 +-
src/tls_wrap.h | 3 +-
src/util-inl.h | 10 +
src/util.h | 236 +-
src/v8abbr.h | 3 +-
tools/certdata.txt | 1793 +++---------
tools/cpplint.py | 5059 +++++++++++++++++++++++++++-------
tools/getmoduleversion.py | 24 +
tools/getnodeversion.py | 14 +-
tools/icu/icu-generic.gyp | 9 +-
tools/icu/icu_small.json | 3 +-
tools/icu/iculslocs.cc | 52 +-
tools/install.py | 18 +-
tools/mk-ca-bundle.pl | 2 +
tools/mkssldef.py | 44 +
96 files changed, 8957 insertions(+), 4159 deletions(-)
Deps only:
4.5% deps/icu-small/source/data/in/
0.8% deps/v8_inspector/deps/jinja2/artwork/
7.8% deps/v8_inspector/deps/jinja2/docs/
0.7% deps/v8_inspector/deps/jinja2/examples/rwbench/
0.6% deps/v8_inspector/deps/jinja2/examples/
1.2% deps/v8_inspector/deps/jinja2/ext/django2jinja/
0.7% deps/v8_inspector/deps/jinja2/ext/
36.6% deps/v8_inspector/deps/jinja2/jinja2/
0.6% deps/v8_inspector/deps/jinja2/scripts/
6.2% deps/v8_inspector/deps/jinja2/tests/
1.0% deps/v8_inspector/deps/jinja2/
1.4% deps/v8_inspector/deps/markupsafe/markupsafe/
0.5% deps/v8_inspector/deps/markupsafe/
0.5% deps/v8_inspector/deps/wtf/wtf/
8.5% deps/v8_inspector/platform/inspector_protocol/
0.5% deps/v8_inspector/platform/v8_inspector/build/
0.9% deps/v8_inspector/platform/v8_inspector/public/
25.9% deps/v8_inspector/platform/v8_inspector/
252 files changed, 45242 insertions(+), 46 deletions(-)
Docs only:
.github/ISSUE_TEMPLATE.md | 8 +-
.github/PULL_REQUEST_TEMPLATE.md | 13 +-
BUILDING.md | 10 +-
CHANGELOG.md | 3 +-
README.md | 2 +
deps/v8_inspector/README.md | 10 +
deps/v8_inspector/deps/wtf/README.md | 1 +
doc/api/addons.md | 2 +-
doc/api/buffer.md | 32 +-
doc/api/child_process.md | 8 +-
doc/api/cluster.md | 9 +-
doc/api/crypto.md | 383 ++++++-
doc/api/debugger.md | 14 +
doc/api/events.md | 2 +-
doc/api/fs.md | 290 ++++-
doc/api/globals.md | 2 +-
doc/api/http.md | 262 ++++-
doc/api/https.md | 29 +-
doc/api/net.md | 10 +-
doc/api/os.md | 1110 ++++++++++++++++++--
doc/api/process.md | 14 +-
doc/api/readline.md | 8 +-
doc/api/repl.md | 29 +-
doc/api/stream.md | 80 +-
doc/api/timers.md | 192 +++-
doc/api/tls.md | 137 +++
doc/api/util.md | 3 +
doc/api/vm.md | 22 +-
doc/changelogs/CHANGELOG_V6.md | 182 ++++
doc/ctc-meetings/2016-06-15.md | 175 +++
doc/guides/timers-in-node.md | 192 ++++
doc/onboarding-extras.md | 25 +-
doc/topics/the-event-loop-timers-and-nexttick.md | 44 +-
33 files changed, 2947 insertions(+), 356 deletions(-)
Tests & Benchmarks only:
2.1% benchmark/buffers/
0.3% benchmark/crypto/
0.9% benchmark/misc/
1.5% benchmark/net/
3.1% benchmark/streams/
1.8% benchmark/timers/
0.3% benchmark/tls/
1.3% test/abort/
0.2% test/addons/buffer-free-callback/
0.3% test/addons/make-callback-recurse/
0.4% test/addons/make-callback/
0.3% test/addons/null-buffer-neuter/
1.4% test/addons/openssl-binding/
30.7% test/cctest/
0.5% test/internet/
2.2% test/message/
50.3% test/parallel/
1.7% test/sequential/
97 files changed, 3008 insertions(+), 326 deletions(-)
Most active commit
Of the 155 commits, 6210528
was the most active:
(Excluding docs, npm, eslint, and tests.)
commit 62105288d34a1e2b00c8bb4eb608cbda6b7bf20c
Author: Ali Ijaz Sheikh <ofrobots@google.com>
Date: Sat May 28 22:17:12 2016 -0700
deps: import v8_inspector
Pick up v8 inspector from [1]. This is the standalone version of the
devtools debug protocol.
[1] https://github.com/pavelfeldman/v8_inspector/commit/e1bb206
PR-URL: https://github.com/nodejs/node/pull/6792
Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
Reviewed-By: addaleax - Anna Henningsen <anna@addaleax.net>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
6.8% deps/v8_inspector/deps/jinja2/docs/
32.1% deps/v8_inspector/deps/jinja2/jinja2/
5.4% deps/v8_inspector/deps/jinja2/tests/
5.3% deps/v8_inspector/deps/jinja2/
21.9% deps/v8_inspector/devtools/
7.3% deps/v8_inspector/platform/inspector_protocol/
18.4% deps/v8_inspector/platform/v8_inspector/
256 files changed, 51764 insertions(+)
This is a regular and routine release for a Node.js Current release line. We will be sure to let you know when a release contains a critical update and a recommendation to upgrade. Of course, we'd love you to upgrade, but this release is not critical unless you are experiencing one of the issues identified and fixed above.