Node.js v6.4.0 Release Brief
This Current release comes with several functionality additions, a large amount of documentation improvements, many small bug fixes, and a restored JavaScript fs.realpath()
implementation.
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:
- 53 were documentation-only commits.
- 21 only modify tests and 10 only affect internal tooling.
- Two were updates to
v8_inspector
:- [
a9fe85ee9c
] & [507c65d94a
] - (Ali Ijaz Sheikh) #8014 & #7796
- [
- 5 patches were backported from upstream V8:
- [
a76d133
ase6887e2ceb
] - (Matt Loring) #7689 - [
b93c80a
asa03e3d3cff
] - (Matt Loring) #7689 - [
43547df
as75b37a6bac
] - (Franziska Hinkelmann) #7863 - [
a51f429
asaf63871593
] - (Franziska Hinkelmann) #7834 - [
2bcbe2f
ase82e80417b
] - (ofrobots) #7814
- [
In addition, 16 commits were tagged as semver-minor
, adding new functionality:
- [
98f51ffeb6
] - (SEMVER-MINOR) buffer: fix unintended unsigned overflow (Fedor Indutny) #7494 - [
28071a130e
] - (SEMVER-MINOR) buffer: introducelatin1
encoding term (Trevor Norris) #7111 - [
c843e58914
] - (SEMVER-MINOR) build: exportzlib
Symbols on Windows (Alex Hultman) #7983 - [
f0312e6560
] - (SEMVER-MINOR) build: export moreopenssl
Symbols on Windows (Alex Hultman) #7576 - [
e561895275
] - (SEMVER-MINOR) child_process: controlargv0
for spawned processes (Pat Pannuto) #7696 - [
da481c634f
] - (SEMVER-MINOR) child_process: supportstdio
option infork()
(cjihrig) #7811 - [
a4f0b13e2b
] - (SEMVER-MINOR) cluster: supportstdio
option for workers (cjihrig) #7838 - [
5f3ab3ffd1
] - (SEMVER-MINOR) crypto: fix undefined behavior inParseExtension
(Fedor Indutny) #7494 - [
60d6e048f0
] - (SEMVER-MINOR) deps:v8_inspector
: console support (Aleksei Koziatinskii) #7988 - [
51a2041b90
] - (SEMVER-MINOR) dgram: generalized send queue to handleclose
(Matteo Collina) #7066 - [
0bb9d21f0e
] - (SEMVER-MINOR) fs: addbytesRead
toReadStream
(Linus Unnebäck) #7942 - [
2f32191686
] - (SEMVER-MINOR) process: save originalargv[0]
(Pat Pannuto) #7696 - [
4875aa2aa2
] - (SEMVER-MINOR) repl: Add.editor
mode support (Prince J Wesley) #7275 - [
fc3ba2ff4f
] - (SEMVER-MINOR) repl: UsedisplayErrors
forSyntaxError
(Prince J Wesley) #7589 - [
b3164ae22e
] - (SEMVER-MINOR) repl: add support for custom completions (Diosney Sarmiento) #7527 - [
cfec3ae5fd
] - (SEMVER-MINOR) util: addinspect.defaultOptions
(Roman Reiss) #8013
The remaining significant commits are as follows:
- [
57043aad33
] - assert: fixdeepEqual
/deepStrictEqual
on equivalentTypedArray
s (Feross Aboukhadijeh) #8002 - [
f6713bfabd
] - benchmark: add bench forfs.realpath()
fix (Trevor Norris) #7899 - [
0d4b04659f
] - benchmark: favor===
over==
(Rich Trott) #8000 - [
b0a557eef7
] - build: add correct shared library naming on OS X (Stewart Addison) #7687 - [
6ed4ea8fd6
] - build: turn on thin static archives (Ben Noordhuis) #7957 - [
889c62fec1
] - build: fix dependency on missing header file (Ben Noordhuis) #7945 - [
a4394b8745
] - build: fix typo in non-essential source file name (Ben Noordhuis) #7945 - [
636cf2236a
] - build: addingconfig.gypi
dep toaddons/.buildstamp
(Daniel Bevenius) #7893 - [
ddf292fc32
] - build: don't link againstliblog
on host system (Ben Noordhuis) #7762 - [
4d81362b99
] - deps:v8_inspector
: removejinja2
tests (Ali Ijaz Sheikh) #7796 - [
57312fc0c5
] - deps: removejinja.el
fromdeps/v8_inspector
(Ali Ijaz Sheikh) #7796 - [
18a3064937
] - fs: restore JS implementation ofrealpath()
(Bartosz Sosnowski) #7899 - [
db3a7e83eb
] - http: specify_implicitHeader
inOutgoingMessage
(yorkie) #7949 - [
b75ca50c90
] - inspector: Do not crash if the port is n/a (Eugene Ostroukhov) #7874 - [
7dc66f82e3
] - lib: remove double check of string type (Franziska Hinkelmann) #7985 - [
5cc4b0ed15
] - meta: clarify process for breaking changes (Rich Trott) #7955 - [
79ecfb5183
] - meta: include a minimal CTC removal policy (Rich Trott) #7720 - [
376d73b3b9
] - meta: provide example activities (Rich Trott) #7744 - [
ccbb46378f
] - module: fixnode_modules
search path in edge case (hefangshi) #6670 - [
d9c9e46780
] - repl: disableCtrl+C
support onwin32
for now (Anna Henningsen) #7977 - [
61e57e06a6
] - repl: don't override all internalrepl
defaults (cjihrig) #7826 - [
980f4da8c4
] - repl: prevent undefined ref in completion (Evan Lucas) #7718 - [
6e6cf36761
] - repl: defaultuseGlobal
totrue
(cjihrig) #7795 - [
08e6eeee70
] - repl,util: insert carriage returns in output (JungMinu) #8028 - [
fb8840cac2
] - src: use RAII for mutexes innode_watchdog.cc
(Anna Henningsen) #7933 - [
780395ffca
] - src: fix use-after-free in inspector agent (Ben Noordhuis) #7907 - [
9d45569ed4
] - src: avoid manual memory management in inspector (Ben Noordhuis) #7906 - [
a059aea9a2
] - src: remove final trace ofraw
encoding (Trevor Norris) #7111 - [
a20336e708
] - src: remove unused using decls (Haojian Wu) #7990 - [
317ae96c33
] - src: makeEnvDelete
behave like thedelete
operator (Franziska Hinkelmann) #7975 - [
1ab796fa96
] - src: do not copy on failingsetProperty()
(Franziska Hinkelmann) #7908 - [
cf65a7ce9e
] - src: unifyingPipeConnectWrap
andTCPConnectWrap
(Daniel Bevenius) #7501 - [
63c62cce35
] - src: Only use TR1type_traits
on OSX<10.9 (Ehsan Akhgari) #7778 - [
d7143095cb
] - src: fix build on CentOS (Rich Trott) #7873 - [
303f4102d3
] - src: pullOnConnection
frompipe_wrap
andtcp_wrap
(Daniel Bevenius) #7547 - [
c967af8c07
] - src: suppress coverity message (cjihrig) #7587 - [
f3e5b39696
] - src: guard against overflow inParseArrayIndex()
(Ben Noordhuis) #7497 - [
c730a5d026
] - src: moveParseArrayIndex()
tosrc/node_buffer.cc
(Ben Noordhuis) #7497 - [
da9bd2fc48
] - src: aliasBINARY
toLATIN1
(Ben Noordhuis) #7284 - [
7ba0f860a6
] - src: fix erroneous fallthrough inParseEncoding()
(Ben Noordhuis) #7262 - [
4535149794
] - timers: remove unused repeat param intimer_wrap
(Jan Schär) #7994 - [
381aef8145
] - timers: fix cleanup of nested same-timeout timers (Erin Spiceland) #7827 - [
2f20910e24
] - tty: set the handle to blocking mode (Jeremiah Senkpiel) #6816 - [
295d1ea016
] - util: support classes inutil.deprecate()
(vladimir) #7690 - [
0a07201ca1
] - util: fix formatting of objects withSIMD
enabled (Anna Henningsen) #7864 - [
f1c50a8c5e
] - win,msi: fix inclusion of translations (João Reis) #7798 - [
dbbcb9dbd9
] - win,msi: Added Italian translation (Matteo Collina) #4647 - [
909254c901
] - zlib: remove unneeded property (Jan Schär) #7987
Notable Changes
- build: zlib and additional OpenSSL Symbols are now exposed on Windows platforms. (Alex Hultman) #7983 and #7576
- child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) #7811 and #7838
- child_process:
argv[0]
can now be set to arbitrary values in spawned processes. (Pat Pannuto) #7696 - fs:
fs.ReadStream
now exposes the number of bytes it has read so far. (Linus Unnebäck) #7942 - repl: The REPL now includes a new
.editor
mode. (Prince J Wesley) #7275 - util:
inspect()
can now be configured globally usingutil.inspect.defaultOptions
. (Roman Reiss) #8013
Git Diffstats
(Showing the delta between v6.3.1 and v6.4.0, ignoring deps/npm
.)
Without deps, docs, benchmarks, or tests:
.eslintrc | 3 +-
.gitignore | 1 +
.remarkrc | 35 +++++
Makefile | 7 +-
common.gypi | 15 +-
configure | 6 +-
lib/_http_outgoing.js | 15 +-
lib/_tls_wrap.js | 2 +-
lib/assert.js | 8 +-
lib/buffer.js | 9 +-
lib/child_process.js | 18 ++-
lib/cluster.js | 1 +
lib/dgram.js | 32 ++--
lib/fs.js | 230 +++++++++++++++++++++++++--
lib/internal/bootstrap_node.js | 44 +++++-
lib/internal/repl.js | 9 +-
lib/internal/streams/lazy_transform.js | 2 +-
lib/internal/util.js | 9 ++
lib/module.js | 21 ++-
lib/net.js | 3 +-
lib/repl.js | 198 +++++++++++++++++++----
lib/string_decoder.js | 3 +-
lib/timers.js | 16 +-
lib/tty.js | 4 +-
lib/util.js | 62 +++++---
node.gyp | 29 +++-
src/base-object-inl.h | 16 +-
src/base-object.h | 2 +-
src/cares_wrap.cc | 1 -
src/connect_wrap.cc | 22 +++
src/connect_wrap.h | 26 +++
src/connection_wrap.cc | 93 +++++++++++
src/connection_wrap.h | 37 +++++
src/debug-agent.cc | 1 -
src/env.cc | 1 -
src/inspector_agent.cc | 261 ++++++++++++++++++++++---------
src/inspector_agent.h | 2 +-
src/inspector_socket.cc | 209 +++++++++----------------
src/inspector_socket.h | 28 +++-
src/node.cc | 53 ++++---
src/node.h | 20 +--
src/node_buffer.cc | 49 ++++--
src/node_contextify.cc | 16 +-
src/node_crypto.cc | 1 -
src/node_crypto_clienthello.cc | 4 +-
src/node_crypto_clienthello.h | 2 +-
src/node_dtrace.cc | 1 -
src/node_file.cc | 1 -
src/node_internals.h | 18 ---
src/node_util.cc | 8 +
src/node_v8.cc | 1 -
src/node_version.h | 4 +-
src/node_watchdog.cc | 69 ++++----
src/node_watchdog.h | 6 +-
src/node_zlib.cc | 6 -
src/pipe_wrap.cc | 89 ++---------
src/pipe_wrap.h | 9 +-
src/process_wrap.cc | 1 -
src/signal_wrap.cc | 1 -
src/stream_base-inl.h | 4 +-
src/stream_base.cc | 2 +-
src/stream_wrap.cc | 1 -
src/string_bytes.cc | 12 +-
src/tcp_wrap.cc | 88 ++---------
src/tcp_wrap.h | 9 +-
src/timer_wrap.cc | 4 +-
src/tls_wrap.cc | 1 -
src/tty_wrap.cc | 2 -
src/udp_wrap.cc | 2 -
src/util.h | 9 +-
src/uv.cc | 2 -
tools/install.py | 9 +-
tools/license-builder.sh | 10 ++
tools/license2rtf.js | 8 +-
tools/mkssldef.py | 9 ++
tools/msvs/msi/i18n/it-it.wxl | 38 +++++
tools/msvs/msi/nodemsi.wixproj | 12 +-
tools/test.py | 14 +-
vcbuild.bat | 2 +-
79 files changed, 1391 insertions(+), 687 deletions(-)
Deps only:
4.2% deps/v8_inspector/deps/jinja2/docs/
0.7% deps/v8_inspector/deps/jinja2/examples/
0.6% deps/v8_inspector/deps/jinja2/ext/django2jinja/
19.7% deps/v8_inspector/deps/jinja2/jinja2/
3.3% deps/v8_inspector/deps/jinja2/tests/
1.8% deps/v8_inspector/deps/jinja2/
0.7% deps/v8_inspector/deps/markupsafe/markupsafe/
4.6% deps/v8_inspector/platform/inspector_protocol/
14.8% deps/v8_inspector/platform/v8_inspector/
4.2% deps/v8_inspector/third_party/jinja2/docs/
0.7% deps/v8_inspector/third_party/jinja2/examples/
0.6% deps/v8_inspector/third_party/jinja2/ext/django2jinja/
19.7% deps/v8_inspector/third_party/jinja2/jinja2/
1.6% deps/v8_inspector/third_party/jinja2/
0.7% deps/v8_inspector/third_party/markupsafe/markupsafe/
4.5% deps/v8_inspector/third_party/v8_inspector/platform/inspector_protocol/
15.9% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/
0.6% deps/v8_inspector/
474 files changed, 42032 insertions(+), 44870 deletions(-)
Docs only:
BUILDING.md | 54 +-
CHANGELOG.md | 3 +-
COLLABORATOR_GUIDE.md | 12 +-
CONTRIBUTING.md | 22 +-
GOVERNANCE.md | 48 +-
LICENSE | 105 +-
README.md | 336 ++--
doc/api/addons.md | 14 +-
doc/api/assert.md | 4 +-
doc/api/buffer.md | 2085 +++++++++++++---------
doc/api/child_process.md | 16 +-
doc/api/cli.md | 13 +-
doc/api/cluster.md | 107 +-
doc/api/console.md | 4 +-
doc/api/crypto.md | 74 +-
doc/api/debugger.md | 8 +-
doc/api/dgram.md | 3 +-
doc/api/dns.md | 10 +-
doc/api/documentation.md | 10 +-
doc/api/domain.md | 6 +-
doc/api/errors.md | 2 +-
doc/api/events.md | 59 +-
doc/api/fs.md | 34 +-
doc/api/globals.md | 8 +-
doc/api/http.md | 47 +-
doc/api/https.md | 10 +-
doc/api/modules.md | 18 +-
doc/api/net.md | 25 +-
doc/api/os.md | 2 +-
doc/api/path.md | 6 +-
doc/api/process.md | 101 +-
doc/api/punycode.md | 7 +-
doc/api/querystring.md | 2 +-
doc/api/readline.md | 2 +-
doc/api/repl.md | 32 +-
doc/api/stream.md | 20 +-
doc/api/string_decoder.md | 2 +-
doc/api/synopsis.md | 2 +-
doc/api/timers.md | 4 +-
doc/api/tls.md | 28 +-
doc/api/tty.md | 6 +-
doc/api/url.md | 6 +-
doc/api/util.md | 69 +-
doc/api/v8.md | 2 +-
doc/api/vm.md | 15 +-
doc/api/zlib.md | 28 +-
doc/changelogs/CHANGELOG_ARCHIVE.md | 38 +-
doc/changelogs/CHANGELOG_IOJS.md | 2810 +++++++++++++++---------------
doc/changelogs/CHANGELOG_V010.md | 18 +-
doc/changelogs/CHANGELOG_V4.md | 224 ++-
doc/changelogs/CHANGELOG_V5.md | 4 +-
doc/changelogs/CHANGELOG_V6.md | 181 +-
doc/ctc-meetings/2016-02-03.md | 2 +-
doc/ctc-meetings/2016-06-15.md | 5 +-
doc/ctc-meetings/2016-06-22.md | 151 ++
doc/ctc-meetings/2016-06-29.md | 187 ++
doc/ctc-meetings/2016-07-06.md | 150 ++
doc/ctc-meetings/2016-07-13.md | 236 +++
doc/ctc-meetings/2016-07-20.md | 202 +++
doc/ctc-meetings/2016-07-27.md | 237 +++
doc/ctc-meetings/2016-08-03.md | 336 ++++
doc/guides/building-node-with-ninja.md | 2 +-
doc/node.1 | 70 +-
doc/onboarding-extras.md | 2 +-
doc/onboarding.md | 33 +-
doc/releases.md | 37 +-
doc/template.html | 2 +-
doc/topics/blocking-vs-non-blocking.md | 2 +-
doc/topics/domain-postmortem.md | 2 +-
doc/tsc-meetings/io.js/2014-12-10.md | 2 +-
70 files changed, 5617 insertions(+), 2787 deletions(-)
Tests & Benchmarks only:
0.0% benchmark/buffers/
0.0% benchmark/crypto/
0.3% benchmark/dgram/
1.8% benchmark/fs/
0.4% benchmark/
0.1% test/addons/openssl-binding/
2.1% test/addons/parse-encoding/
0.3% test/addons/stringbytes-external-exceed-max/
7.7% test/cctest/
0.1% test/debugger/
0.1% test/disabled/
0.8% test/fixtures/
0.0% test/gc/
0.0% test/internet/
78.8% test/parallel/
0.4% test/pummel/
5.2% test/sequential/
0.0% test/timers/
1.0% test/
160 files changed, 1978 insertions(+), 708 deletions(-)
Most active commit
Of the 155 commits, 18a3064
was the most active:
(Excluding docs, deps, and tests.)
commit 18a30649377923a6abb0e36d0f25879d0792a71a
Author: Bartosz Sosnowski <bartosz@janeasystems.com>
Date: Wed Jul 27 00:18:35 2016 +0200
fs: restore JS implementation of realpath
This reverts parts of https://github.com/nodejs/node/commit/b488b19eaf2b2e7a3ca5eccd2445e245847a5f76
restoring javascript implementation of realpath and realpathSync.
Fixes: https://github.com/nodejs/node/issues/7175
Fixes: https://github.com/nodejs/node/issues/6861
Fixes: https://github.com/nodejs/node/issues/7294
Fixes: https://github.com/nodejs/node/issues/7192
Fixes: https://github.com/nodejs/node/issues/7044
Fixes: https://github.com/nodejs/node/issues/6624
Fixes: https://github.com/nodejs/node/issues/6978
PR-URL: https://github.com/nodejs/node/pull/7899
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
doc/api/fs.md | 8 +-
lib/fs.js | 225 ++++++++++++++++++--
test/parallel/test-fs-realpath-buffer-encoding.js | 88 ++++++++
.../parallel/test-fs-realpath-on-substed-drive.js | 53 +++++
4 files changed, 360 insertions(+), 14 deletions(-)
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.