The NodeSource Blog

Node.js v5.8.0 Release Brief

This week’s stable release fixes some regressions, adds some minor features, and includes a little perf improvement.

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 31 commits:

  • 6 were documentation-only commits.
  • 5 only modify tests and 5 only affect internal tooling.
  • There was one dependency update: npm @ 3.7.3.

5 commits were tagged as semver-minor, adding new functionality and justifying the jump to v5.8.0:

  • [a3017992e4] - (SEMVER-MINOR) child_process: add keepOpen option to send() (cjihrig) #5283
  • [6d4887ccc2] - (SEMVER-MINOR) child_process: support options in send() (cjihrig) #5283
  • [9db827c7aa] - (SEMVER-MINOR) constants: define ENGINE_METHOD_RSA (Sam Roberts) #5463
  • [b54a26fa61] - (SEMVER-MINOR) doc: correct name of engine methods (Sam Roberts) #5463
  • [e572e421b4] - (SEMVER-MINOR) repl: accept no arguments to start() (cjihrig) #5388

The remaining significant commits are as follows:

  • [12ca84fc7f] - benchmark: add util.format() benchmark (Evan Lucas) #5360
  • [b955d02266] - benchmark: fix lint errors (Rich Trott) #5517
  • [2abf866b6e] - build: update Node.js logo on Win installer (Robert Jefe Lindstaedt) #5531
  • [86900f8f2b] - build: correctly detect clang version (Stefan Budeanu) #5553
  • [67e9f65958] - dgram: default send address to 127.0.0.1 or ::1 (Matteo Collina) #5493
  • [f3971f5817] - path: fix normalize() for absolutes (Evan Lucas) #5589
  • [5e6d706758] - src,http: fix uncaughtException miss in http (Trevor Norris) #5591
  • [971edde0cb] - util: improve format() performance further (Brian White) #5360
  • [c32d460747] - util: improve util.format() performance (Evan Lucas) #5360

Notable Changes

  • child_process: send() now accepts an options parameter (cjihrig) #5283.
    • Currently the only option is keepOpen, which keeps the underlying socket open after the message is sent.
  • constants: ENGINE_METHOD_RSA is now correctly exposed (Sam Roberts) #5463.
  • Fixed two regressions which originated in v5.7.0:
    • http: Errors inside of http client callbacks now propagate correctly (Trevor Norris) #5591.
    • path: Fixed normalization of absolute paths (Evan Lucas) #5589.
  • repl: start() no longer requires an options parameter (cjihrig) #5388.
  • util: Improved format() performance 50-300% (Evan Lucas) #5360.

Git Diffstats

(Showing the delta between v5.7.1 and v5.8.0, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 .eslintrc                     | 16 ++++----
 Makefile                      |  7 +++-
 configure                     | 14 +++++--
 lib/dgram.js                  | 11 +++++-
 lib/internal/child_process.js | 63 +++++++++++++++++++++----------
 lib/path.js                   |  4 +-
 lib/repl.js                   |  2 -
 lib/util.js                   | 84 +++++++++++++++++++++++++++++------------
 src/async-wrap.cc             |  6 +--
 src/node.cc                   |  6 ++-
 src/node_constants.cc         |  4 ++
 src/node_version.h            |  4 +-
 tools/cpplint.py              |  3 --
 tools/test.py                 | 10 +++--
 vcbuild.bat                   |  3 +-
 15 files changed, 161 insertions(+), 76 deletions(-)

Deps only:

 deps/openssl/openssl.gyp  | 1 +
 deps/openssl/openssl.gypi | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Docs only:

 CHANGELOG.md                   |  47 ++++++++++++++++
 doc/api/child_process.markdown |  11 +++-
 doc/api/crypto.markdown        |   4 +-
 doc/api/dgram.markdown         |   5 +-
 doc/api/documentation.markdown |   7 +++
 doc/api/fs.markdown            |   2 +-
 doc/api/process.markdown       |  71 +++++++++++++-----------
 doc/api/repl.markdown          |   2 +-
 doc/api/v8.markdown            |   2 +-
 doc/api_assets/style.css       |  13 +++--
 doc/full-white-stripe.jpg      | Bin 3636 -> 9483 bytes
 doc/thin-white-stripe.jpg      | Bin 3099 -> 6525 bytes
 test/README.md                 | 117 +++++++++++++++++++++++++++++++++++++++
 13 files changed, 232 insertions(+), 49 deletions(-)

Tests & Benchmarks only:

 benchmark/arrays/var-int.js                       |  4 +-
 benchmark/arrays/zero-float.js                    |  4 +-
 benchmark/arrays/zero-int.js                      |  4 +-
 benchmark/buffers/buffer-base64-decode.js         | 10 ++--
 benchmark/buffers/buffer-creation.js              |  2 +-
 benchmark/buffers/buffer-indexof.js               |  5 +-
 benchmark/compare.js                              | 25 ++++++++--
 benchmark/domain/domain-fn-args.js                |  4 +-
 benchmark/fs/bench-readdir.js                     |  3 +-
 benchmark/fs/bench-readdirSync.js                 |  3 +-
 benchmark/http_simple_auto.js                     |  4 +-
 benchmark/http_simple_cluster.js                  |  7 +--
 benchmark/idle_clients.js                         |  1 -
 benchmark/misc/freelist.js                        |  2 +-
 benchmark/misc/v8-bench.js                        |  2 +-
 benchmark/module/module-loader.js                 | 10 +++-
 benchmark/tls/throughput.js                       |  6 ++-
 benchmark/util/format.js                          | 40 ++++++++++++++++
 test/debugger/test-debug-break-on-uncaught.js     |  5 --
 .../known_issues/test-vm-function-redefinition.js | 11 +++++
 test/known_issues/testcfg.py                      |  6 +++
 test/parallel/parallel.status                     |  1 -
 .../parallel/test-child-process-send-keep-open.js | 52 +++++++++++++++++++++
 .../test-child-process-send-type-error.js         | 25 ++++++++++
 test/parallel/test-dgram-send-default-host.js     | 12 -----
 .../parallel/test-dgram-udp6-send-default-host.js | 36 ++++++++++++++
 .../parallel/test-http-catch-uncaughtexception.js | 23 +++++++++
 test/parallel/test-memory-usage.js                |  4 +-
 test/parallel/test-npm-install.js                 | 40 ++++++++++++++++
 test/parallel/test-path.js                        |  3 ++
 test/parallel/test-process-getactivehandles.js    | 17 ++++---
 test/parallel/test-repl-options.js                | 14 ++++++
 test/parallel/test-util-inspect.js                |  2 +-
 33 files changed, 329 insertions(+), 58 deletions(-)

Most active commit

Of the 31 commits, a301799 was the most active:
(Excluding docs, npm, eslint, and tests.)

commit a3017992e42dfccdeb5d3c94d27656b99c3ceaeb
Author: cjihrig <cjihrig@gmail.com>
Date:   Tue Feb 16 22:18:10 2016 -0500

    child_process: add keepOpen option to send()

    This option allows an instance of net.Socket to be kept open in
    the sending process.

    Fixes: https://github.com/nodejs/node/issues/4271
    PR-URL: https://github.com/nodejs/node/pull/5283
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

 doc/api/child_process.markdown                    |  7 ++-
 lib/internal/child_process.js                     | 14 ++++--
 .../parallel/test-child-process-send-keep-open.js | 52 +++++++++++++++++++++
 3 files changed, 67 insertions(+), 6 deletions(-)

This is a regular and routine release for a Node.js stable 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.

The NodeSource platform offers a high-definition view of the performance, security and behavior of Node.js applications and functions.

Start for Free