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: makeSyncWriteStreaminherit 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: properinstanceofforWritables (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.bufferproperty (Ojas Shirekar) #8739 - [
b9c2270502] - buffer: fix performance regression (Michaël Zasso) #8754 - [
3fcdf4e80a] - buffer: remove unnecessary argument check (Michaël Zasso) #8552 - [
ee319b739c] - buffer: addisSharedArrayBufferchecks (Ojas Shirekar) #8510 - [
38fdbcd7f7] - build: make addons build dep. on node_version.h (Anna Henningsen) #8861 - [
f057d193ec] - build: runcctestsas part oftest-citarget (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 installfor 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_tfields (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: fixconcievablytypo in readline.js (Miguel Angel Asencio Hurtado) #8953 - [
8c91a9b848] - repl: improve.helpmessage (Roman Reiss) #8519 - [
443bedeb68] - src: remove out-of-dateTODOcomment (Daniel Bevenius) #9000 - [
59aa103df2] - src: fix typo in#endifcomment (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 unneededABORTafterCHECK(yorkie) #8593 - [
2dbef79ca7] - src: handle thrown errors in CopyProperties() (cjihrig) #8649 - [
52f0f64e79] - src: useMaybeStackBufferonDoSend/Writev(Paul Kiddie) #8626 - [
a62999ac70] - src: add/json/protocolendpoint to inspector (Ben Noordhuis) #7491 - [
3a72a606cb] - timers: improvesetImmediate()performance (Brian White) #8655 - [
06c411753e] - timers: improvesetTimeout/Intervalperformance (Brian White) #8661 - [
02da155e4b] - timers: remove unreachable code (yorkie) #8487 - [
cf92be6939] - tls: TLSSocket emits 'error' on handshake failure (Mariusz 'koder' Chwalba) #8805 - [
bee1955f4e] - tls: handleerrorevents with_tlsError(Fedor Indutny) #8889 - [
d2eaa12a23] - tls: improvecreateSecureContextin _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: markINSTALLDIRproperty 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 atimeoutoption. (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:
Duplexstreams now show properinstanceof Stream.Writable. (Anna Henningsen) #8834 - timers: Improved
setTimeout/Intervalperformance 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.