Node.js v6.8.0 Release Brief
This is the last Current release before v6 transitions into LTS mode.
It comes with better streams inheritance, an undeprecated fs.existsSync()
, and some minor perf improvements.
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 215 commits:
- 47 were documentation-only commits.
- 77 only modify tests and 7 only affect internal tooling.
- One dependency was upgraded & one floating patch applied:
- npm @ 3.10.8 (Kat Marchán) #8706
- [
4d41bd9c68
] - hotfix upgrade npm tap version for tests (Kat Marchán) #8706
6 commits were tagged as semver-minor
, adding new functionality and justifying the jump to v6.8.0:
- [
688abac7b2
] - (SEMVER-MINOR) fs: makeSyncWriteStream
inherit fromWritable
(Anna Henningsen) #8830 - [
14e2d67776
] - (SEMVER-MINOR) fs,doc: undeprecate existsSync (Dan Fabulich) #8364 - [
980c1edf63
] - (SEMVER-MINOR) fs,module: add module-loader-only realpath cache (Anna Henningsen) #8100 - [
ee7af01b93
] - (SEMVER-MINOR) http: socket connection timeout for http request (Rene Weber) #8101 - [
4e7c67cf55
] - (SEMVER-MINOR) stream: properinstanceof
forWritable
s (Anna Henningsen) #8834 - [
fc68b12bc3
] - (SEMVER-MINOR) util: Add format for SharedArrayBuffer (Yosuke Furukawa) #8587
The remaining significant commits are as follows:
- [
1a6e8983a6
] - benchmark: add benchmarks forBuffer.from()
(Anna Henningsen) #8738 - [
882f8b3d6c
] - benchmark: use 'yes' instead of echo in a loop (Bartosz Sosnowski) #8721 - [
999f727bb5
] - benchmark: add benchmark for destructuring object (Fangdun Cai (Fundon)) #8680 - [
5c10898e31
] - buffer: fix check for.buffer
property (Ojas Shirekar) #8739 - [
b9c2270502
] - buffer: fix performance regression (Michaël Zasso) #8754 - [
3fcdf4e80a
] - buffer: remove unnecessary argument check (Michaël Zasso) #8552 - [
ee319b739c
] - buffer: addisSharedArrayBuffer
checks (Ojas Shirekar) #8510 - [
38fdbcd7f7
] - build: make addons build dep. on node_version.h (Anna Henningsen) #8861 - [
f057d193ec
] - build: runcctests
as part oftest-ci
target (Ben Noordhuis) #8034 - [
a202be6690
] - build: don't build icu with-fno-rtti
(Ben Noordhuis) #8886 - [
296254f141
] - build: remove VS 2013 switch from vcbuild.bat (Ben Noordhuis) #8067 - [
a425c4da98
] - build: runnpm install
for doc builds in tarball (Anna Henningsen) #8413 - [
3d3bce6ca1
] - cluster: remove unused backlog argument (Brian White) #8877 - [
46af58898c
] - deps: make gtest output tap (Ben Noordhuis) #8034 - [
9d41e8913f
] - deps: bump V8 patch to 84 (Myles Borins) #8851 - [
23a851dfe6
] - deps: avoid single-byte buffer overwrite inares_create_query
(Daniel Stenberg) #8849 - [
c4d9b54f75
] - dgram: useBuffer.alloc(0)
for zero-size buffers (Сковорода Никита Андреевич) #8751 - [
e1a774d314
] - dns: remove internal variable from makeAsync (yorkie) #8800 - [
787558935c
] - dns: tweak regex for IPv6 addresses (Luigi Pinca) #8665 - [
4e8c03707a
] - dns: handle array holes insetServers()
(cjihrig) #8567 - [
07d97f4f3e
] - fs: fix handling ofuv_stat_t
fields (Anna Henningsen) #8515 - [
7a59449478
] - https: fix memory leak with https.request() (Ilkka Myller) #8647 - [
573d8bcee4
] - inspector: fix minor issues (Brian White) #8890 - [
f4f9cf779f
] - inspector: build file cleanup (Eugene Ostroukhov) #8753 - [
e80ae1350c
] - inspector: address race conditions (Eugene Ostroukhov) #8672 - [
f817875235
] - inspector: wait for both sides closing (Eugene Ostroukhov) #8505 - [
4ed46b47a1
] - inspector: report default context (Eugene Ostroukhov) #8502 - [
b05ce842ce
] - inspector: zero out structure members (Eugene Ostroukhov) #8536 - [
0b90ff7a8d
] - inspector: introduce a smoke test (Eugene Ostroukhov) #8429 - [
3222b66abe
] - inspector: fix tests on Windows (Eugene Ostroukhov) #8528 - [
a1925a7955
] - lib: minor improvements tobootstrap_node.js
(Rémy MEJA) #8906 - [
313a45da24
] - lib: changed var to const in linkedlist (Adri Van Houdt) #8609 - [
6cd5588a67
] - lib: fix TypeError in v8-polyfill (Wyatt Preul) #8863 - [
ba361a2aa0
] - lib: remove let from for loops (Myles Borins) #8873 - [
beb288b639
] - lib: changed var to const in internal/v8_polyfill (Adri Van Houdt) #8615 - [
858a7bbacf
] - lib: changed var to const in bootstrap_node.js (Adri Van Houdt) #8588 - [
31232adebb
] - module: fix comment from "read-only" to "shallow" (Bryan English) #8887 - [
0eaf3ff53c
] - path: fallback to process cwd when resolving drive cwd (Jason Ginchereau) #8541 - [
d72a7b3d0c
] - path: fix path.relative UNC path result (Jason Ginchereau) #8523 - [
e0c10f63b0
] - process: changed var to const in internal/process.js (Adri Van Houdt) #8614 - [
37ce6da59a
] - process: changed var to const ininternal/v8_prof_processor
(Adri Van Houdt) #8619 - [
e8f1cf1bd8
] - process: changed var to const ininternal/process/promises
(Adri Van Houdt) #8620 - [
4c194ee7bd
] - readline: fixconcievably
typo in readline.js (Miguel Angel Asencio Hurtado) #8953 - [
8c91a9b848
] - repl: improve.help
message (Roman Reiss) #8519 - [
443bedeb68
] - src: remove out-of-dateTODO
comment (Daniel Bevenius) #9000 - [
59aa103df2
] - src: fix typo in#endif
comment (Juan Andres Andrango) #8989 - [
8a2ba6fe83
] - src: fix build for older clang (Zach Bjornson) #7645 - [
d8df78c573
] - src: remove unused function declaration (Brian White) #8878 - [
a6b9ffbf5b
] - src: refactor reading of options in contextify (Franziska Hinkelmann) #8850 - [
324c8b5f7e
] - src: fixes misplaced comment (Madhav Gharmalkar) #8860 - [
86b9db601d
] - src: add missing length argument to send comment (Daniel Bevenius) #8816 - [
aa11205f71
] - src: renameCHECK_NOT_OOB()
macro (Ben Noordhuis) #8784 - [
8be818eb07
] - src: fix minor typo in comments (Daniel Bevenius) #8736 - [
41ad6e3965
] - src: renamehandle__
tohandle_
in HandleWrap (Daniel Bevenius) #8712 - [
9205edc35c
] - src: don't abort when c-ares initialization fails (Ben Noordhuis) #8710 - [
6ddfe89fdf
] - src: remove VS 2013 compatibility hacks (Ben Noordhuis) #8067 - [
a9491f1604
] - src: make ReqWrapreq_
member private (Daniel Bevenius) #8532 - [
5ebce30468
] - src: remove unneededABORT
afterCHECK
(yorkie) #8593 - [
2dbef79ca7
] - src: handle thrown errors in CopyProperties() (cjihrig) #8649 - [
52f0f64e79
] - src: useMaybeStackBuffer
onDoSend
/Writev
(Paul Kiddie) #8626 - [
a62999ac70
] - src: add/json/protocol
endpoint to inspector (Ben Noordhuis) #7491 - [
3a72a606cb
] - timers: improvesetImmediate()
performance (Brian White) #8655 - [
06c411753e
] - timers: improvesetTimeout
/Interval
performance (Brian White) #8661 - [
02da155e4b
] - timers: remove unreachable code (yorkie) #8487 - [
cf92be6939
] - tls: TLSSocket emits 'error' on handshake failure (Mariusz 'koder' Chwalba) #8805 - [
bee1955f4e
] - tls: handleerror
events with_tlsError
(Fedor Indutny) #8889 - [
d2eaa12a23
] - tls: improvecreateSecureContext
in _tls_common (yorkie) #8781 - [
b0234e7968
] - tls: add 'new' keyword for Array constructor call (Mike Ralphson) #8514 - [
8684cea9b7
] - tools: make sure links are correctly passed to marked (Timothy Gu) #8494 - [
38be15549e
] - util: don't init Debug if it's not needed yet (Bryan English) #8452 - [
7728f95967
] - util: simplify SIMD setup (Dany Shaanan) #8579 - [
8282d6fc60
] - vm: add error message if we abort (Franziska Hinkelmann) #8634 - [
b83f51a326
] - win,msi: markINSTALLDIR
property as secure (João Reis) #8795 - [
623d3c6eb5
] - win,tools: ignore linting for line breaks (João Reis) #8785 - [
7403aaa13f
] - zlib: tighten up dictionary tests (Tarjei Husøy) #8512 - [
15474951a5
] - zlib: fix raw inflate with custom dictionary (Tarjei Husøy) #8512
Notable Changes
- fs:
- http:
http.request()
now accepts atimeout
option. (Rene Weber) #8101 - module: The module loader now maintains its own realpath cache. (Anna Henningsen) #8100
- npm: Upgraded to 3.10.8 (Kat Marchán) #8706
- stream:
Duplex
streams now show properinstanceof Stream.Writable
. (Anna Henningsen) #8834 - timers: Improved
setTimeout
/Interval
performance by up to 22%. (Brian White) #8661
Git Diffstats
(Showing the delta between v6.7.0 and v6.8.0, ignoring deps/npm
.)
Without deps, tools, docs, benchmarks, or tests:
.eslintrc | 13 +-
.remarkrc | 46 ++++--
Makefile | 25 ++-
lib/_http_agent.js | 8 +
lib/_http_client.js | 8 +-
lib/_stream_readable.js | 6 +-
lib/_stream_transform.js | 2 +-
lib/_stream_writable.js | 27 +++-
lib/_tls_common.js | 14 +-
lib/_tls_wrap.js | 10 +-
lib/buffer.js | 19 ++-
lib/cluster.js | 5 +-
lib/dgram.js | 2 +-
lib/dns.js | 15 +-
lib/fs.js | 120 +++++++-------
lib/internal/bootstrap_node.js | 42 ++---
lib/internal/linkedlist.js | 2 +-
lib/internal/process.js | 22 +--
lib/internal/process/promises.js | 2 +-
lib/internal/readline.js | 2 +-
lib/internal/util.js | 2 +-
lib/internal/v8_prof_polyfill.js | 8 +-
lib/internal/v8_prof_processor.js | 2 +-
lib/module.js | 20 ++-
lib/net.js | 5 +
lib/path.js | 14 +-
lib/punycode.js | 8 +-
lib/readline.js | 2 +-
lib/repl.js | 25 +--
lib/timers.js | 303 +++++++++++++++++++++---------------
lib/tls.js | 4 +-
lib/util.js | 58 +++----
lib/v8.js | 2 +-
node.gyp | 29 ++++
src/cares_wrap.cc | 83 +++++-----
src/fs_event_wrap.cc | 1 -
src/handle_wrap.cc | 6 +-
src/handle_wrap.h | 6 +-
src/inspector_agent.cc | 118 +++++++++-----
src/inspector_socket.cc | 90 ++++++-----
src/inspector_socket.h | 46 ++++--
src/node_buffer.cc | 122 +++------------
src/node_contextify.cc | 149 +++++++++---------
src/node_crypto_bio.cc | 1 -
src/node_file.cc | 48 +++---
src/node_internals.h | 21 ---
src/node_os.cc | 2 +-
src/node_util.cc | 1 +
src/node_version.h | 2 +-
src/node_watchdog.cc | 5 +-
src/node_zlib.cc | 14 +-
src/pipe_wrap.cc | 2 +-
src/req-wrap.h | 10 +-
src/stream_base.cc | 12 +-
src/stream_base.h | 9 ++
src/stream_wrap.cc | 12 +-
src/string_bytes.cc | 34 ++--
src/tcp_wrap.cc | 4 +-
src/udp_wrap.cc | 19 +--
src/udp_wrap.h | 1 -
src/util-inl.h | 121 ++++++++++++--
src/util.h | 22 +--
vcbuild.bat | 48 ++----
63 files changed, 1049 insertions(+), 832 deletions(-)
Tools only:
tools/compress_json.py | 25 +++++++++++++++++++++++++
tools/icu/README.md | 19 ++++++++-----------
tools/icu/icu-generic.gyp | 1 +
tools/msvs/msi/product.wxs | 2 +-
tools/test.py | 1 +
5 files changed, 36 insertions(+), 12 deletions(-)
Deps only:
deps/cares/src/ares_create_query.c | 84 ++++++-------
deps/gtest/src/gtest.cc | 124 +++++++++++++++++++-
deps/gtest/src/gtest_main.cc | 1 -
deps/v8/include/v8-version.h | 2 +-
.../platform/v8_inspector/v8_inspector.gyp | 3 -
deps/zlib/zlib.gyp | 4 +
6 files changed, 167 insertions(+), 51 deletions(-)
Docs only:
.github/PULL_REQUEST_TEMPLATE.md | 2 +-
BUILDING.md | 21 +-
CHANGELOG.md | 3 +-
CODE_OF_CONDUCT.md | 10 +-
CONTRIBUTING.md | 10 +-
README.md | 18 +-
ROADMAP.md | 12 +-
doc/api/addons.md | 2 +-
doc/api/buffer.md | 12 +-
doc/api/child_process.md | 6 +-
doc/api/cluster.md | 2 +-
doc/api/console.md | 18 +-
doc/api/crypto.md | 3 +
doc/api/debugger.md | 12 +-
doc/api/dns.md | 4 +-
doc/api/domain.md | 7 +-
doc/api/events.md | 2 +-
doc/api/fs.md | 46 +-
doc/api/globals.md | 67 ++-
doc/api/http.md | 2 +
doc/api/net.md | 12 +-
doc/api/path.md | 10 +-
doc/api/process.md | 21 +-
doc/api/readline.md | 2 -
doc/api/repl.md | 4 +-
doc/api/stream.md | 9 +-
doc/api/timers.md | 22 +-
doc/api/tls.md | 2 +-
doc/api/url.md | 12 +-
doc/api/util.md | 22 +-
doc/changelogs/CHANGELOG_ARCHIVE.md | 9 +-
doc/changelogs/CHANGELOG_V4.md | 10 +-
doc/changelogs/CHANGELOG_V5.md | 2 +-
doc/changelogs/CHANGELOG_V6.md | 234 ++++++++++
doc/ctc-meetings/2016-06-15.md | 4 +-
doc/ctc-meetings/2016-08-24.md | 328 ++++++++++++++
doc/ctc-meetings/2016-09-07.md | 245 +++++++++++
doc/ctc-meetings/2016-09-14.md | 153 +++++++
doc/ctc-meetings/2016-09-21.md | 218 ++++++++++
doc/guides/timers-in-node.md | 8 +-
doc/guides/writing_tests.md | 17 +-
doc/node.1 | 23 +-
doc/onboarding-extras.md | 2 +
doc/onboarding.md | 30 +-
doc/releases.md | 19 +-
doc/topics/event-loop-timers-and-nexttick.md | 482 +++++++++++++++++++++
doc/topics/the-event-loop-timers-and-nexttick.md | 476 --------------------
doc/tsc-meetings/2015-08-26.md | 4 +-
doc/tsc-meetings/2015-10-14.md | 2 +-
tools/icu/README.md | 19 +-
50 files changed, 1989 insertions(+), 671 deletions(-)
Tests & Benchmarks only:
0.9% benchmark/buffers/
0.0% benchmark/child_process/
0.5% benchmark/es/
0.0% benchmark/http/
0.0% benchmark/util/
0.0% benchmark/
0.0% test/addons/async-hello-world/
0.0% test/addons/at-exit/
0.0% test/addons/buffer-free-callback/
0.0% test/addons/heap-profiler/
0.0% test/addons/hello-world-function-export/
0.0% test/addons/hello-world/
0.1% test/addons/load-long-path/
0.0% test/addons/make-callback-recurse/
0.0% test/addons/make-callback/
0.0% test/addons/null-buffer-neuter/
0.0% test/addons/openssl-binding/
0.1% test/addons/parse-encoding/
0.4% test/addons/stringbytes-external-exceed-max/
0.0% test/addons/symlinked-module/
0.0% test/addons/zlib-binding/
2.4% test/cctest/
0.0% test/debugger/
0.9% test/fixtures/
0.1% test/gc/
9.4% test/inspector/
2.0% test/internet/
0.0% test/known_issues/
0.0% test/message/
78.5% test/parallel/
0.5% test/pummel/
1.7% test/sequential/
0.1% test/testpy/
0.4% test/
240 files changed, 3315 insertions(+), 1768 deletions(-)
Most active commit
Of the 215 commits, 0b90ff7
was the most active:
(Excluding docs, npm, eslint, and tests.)
commit 0b90ff7a8da9eabea3d21c4da33626fcd56b62d7
Author: Eugene Ostroukhov <eostroukhov@chromium.org>
Date: Thu Sep 1 16:25:02 2016 -0700
inspector: introduce a smoke test
This test executes a simple debug session over the inspector protocol.
PR-URL: https://github.com/nodejs/node/pull/8429
Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
Makefile | 7 +-
src/inspector_agent.cc | 3 +
src/inspector_socket.cc | 2 +-
test/README.md | 9 +
test/fixtures/loop.js | 10 +
test/inspector/inspector-helper.js | 424 +++++++++++++++++++++++++++++++++++
test/inspector/test-inspector.js | 167 ++++++++++++++
test/inspector/testcfg.py | 6 +
tools/test.py | 1 +
vcbuild.bat | 7 +-
10 files changed, 630 insertions(+), 6 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.