The Nodesource Blog

#shoptalk Subscribe

Node.js v5.9.0 Release Brief

Among adding a couple features, this week’s stable release also includes a significant refactor to node’s internal timers.

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

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

  • [b6c355de0d] - (SEMVER-MINOR) deps: backport fb4ccae from v8 upstream (develar) #4231
  • [4ecd996baa] - (SEMVER-MINOR) src: allow combination of -i and -e cli flags (Rich Trott) #5655
  • [ef774ff9a8] - (SEMVER-MINOR) zlib: add support for concatenated members (Kári Tristan Helgason) #5120

The remaining significant commits are as follows:

  • [03b99bf8b9] - build: don't install github templates (Johan Bergström) #5612
  • [a7819da15a] - Revert "build: run lint before tests" (Rich Trott) #5602
  • [5e9cac4333] - console: check that stderr is writable (Rich Trott) #5635
  • [0662fcf209] - contextify: cache sandbox and context in locals (Ali Ijaz Sheikh) #5392
  • [4f2c839d46] - contextify: replace deprecated SetWeak usage (Ali Ijaz Sheikh) #5392
  • [bfff07b4dd] - contextify: cleanup weak ref for sandbox (Ali Ijaz Sheikh) #5392
  • [93f60cdc54] - contextify: cleanup weak ref for global proxy (Ali Ijaz Sheikh) #5392
  • [29510aa4fd] - deps: update openssl config (Shigeki Ohtsu) #5630
  • [205bed0bec] - lib: copy arguments object instead of leaking it (Nathan Woltman) #4361
  • [b16f67a0b9] - net: make isIPv4 and isIPv6 more efficient (Vladimir Kurchatkin) #5478
  • [1b7b1ed2c9] - timers: greatly improve code comments (Jeremiah Senkpiel) #4007
  • [769254b0ba] - timers: refactor timers (Jeremiah Senkpiel) #4007
  • [0b545fb3f8] - win,build: support Visual C++ Build Tools 2015 (João Reis) #5627

Notable Changes

  • contextify: Fixed a memory consumption issue related to heavy use of vm.createContext() and vm.runInNewContext(). (Ali Ijaz Sheikh) https://github.com/nodejs/node/pull/5392
  • governance: The following members have been added as collaborators:
    • Andreas Madsen (@AndreasMadsen)
    • Benjamin Gruenbaum (@benjamingr)
    • Claudio Rodriguez (@claudiorodriguez)
    • Glen Keane (@thekemkid)
    • Jeremy Whitlock (@whitlockjc)
    • Matt Loring (@matthewloring)
    • Phillip Johnsen (@phillipj)
  • lib: copy arguments object instead of leaking it (Nathan Woltman) https://github.com/nodejs/node/pull/4361
  • src: allow both -i and -e flags to be used at the same time (Rich Trott) https://github.com/nodejs/node/pull/5655
  • timers: Internal Node.js timeouts now use the same logic path as those created with setTimeout() (Jeremiah Senkpiel) #4007
    • This may cause a slightly different performance profile in some situations. So far, it has shown to be positive in most cases.
  • v8: backport fb4ccae from v8 upstream (Vladimir Krivosheev) #4231
    • breakout events from v8 to offer better support for external debuggers
  • zlib: add support for concatenated members (Kári Tristan Helgason) https://github.com/nodejs/node/pull/5120
    • Previously, if multiple members were in the same archive, only the first would be read. The others are no longer thrown away.

Git Diffstats

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

Without deps, docs, benchmarks, or tests:

 Makefile               |   3 +-
 lib/_http_client.js    |  12 +-
 lib/_tls_wrap.js       |   6 +-
 lib/assert.js          |  22 ++-
 lib/console.js         |   8 +-
 lib/net.js             |  16 +-
 lib/timers.js          | 440 +++++++++++++++++++++++------------------------
 src/cares_wrap.cc      |  23 +++
 src/node.js            |  10 +-
 src/node_contextify.cc | 112 +++++-------
 src/node_version.h     |   2 +-
 src/node_zlib.cc       |  18 ++
 vcbuild.bat            |   4 +-
 13 files changed, 354 insertions(+), 322 deletions(-)

Deps only:

 deps/http_parser/README.md                        |   2 +-
 deps/http_parser/http_parser.c                    | 113 ++++++--------------
 deps/http_parser/test.c                           |   9 +-
 deps/openssl/config/archs/BSD-x86/opensslconf.h   |  12 +++
 .../openssl/config/archs/BSD-x86_64/opensslconf.h |  12 +++
 deps/openssl/config/archs/VC-WIN32/opensslconf.h  |  12 +++
 deps/openssl/config/archs/VC-WIN64A/opensslconf.h |  12 +++
 deps/openssl/config/archs/aix-gcc/opensslconf.h   |  12 +++
 deps/openssl/config/archs/aix64-gcc/opensslconf.h |  12 +++
 .../config/archs/darwin-i386-cc/opensslconf.h     |  12 +++
 .../config/archs/darwin64-x86_64-cc/opensslconf.h |  12 +++
 .../config/archs/linux-aarch64/opensslconf.h      |  12 +++
 .../config/archs/linux-armv4/opensslconf.h        |  12 +++
 deps/openssl/config/archs/linux-elf/opensslconf.h |  12 +++
 deps/openssl/config/archs/linux-ppc/opensslconf.h |  12 +++
 .../config/archs/linux-ppc64/opensslconf.h        |  12 +++
 deps/openssl/config/archs/linux-x32/opensslconf.h |  12 +++
 .../config/archs/linux-x86_64/opensslconf.h       |  12 +++
 .../config/archs/solaris-x86-gcc/opensslconf.h    |  12 +++
 .../archs/solaris64-x86_64-gcc/opensslconf.h      |  12 +++
 deps/openssl/openssl.gypi                         |   4 -
 deps/v8/AUTHORS                                   |   1 +
 deps/v8/src/debug/debug.js                        |   3 +
 23 files changed, 248 insertions(+), 88 deletions(-)

Docs only:

 BUILDING.md                    | 246 ++++++++++++++++++++++++++++++++++++++
 CHANGELOG.md                   |  79 ++++++++++++-
 COLLABORATOR_GUIDE.md          |   7 +-
 README.md                      | 248 ++-------------------------------------
 WORKING_GROUPS.md              |  13 ++
 deps/http_parser/README.md     |   2 +-
 doc/api/addons.markdown        |   4 +-
 doc/api/child_process.markdown |   5 +-
 doc/api/console.markdown       |   8 +-
 doc/api/crypto.markdown        |   2 +-
 doc/api/dgram.markdown         |   4 +-
 doc/api/dns.markdown           |   2 +-
 doc/api/errors.markdown        |   5 +-
 doc/api/events.markdown        |  37 ++++++
 doc/api/fs.markdown            |  11 +-
 doc/api/http.markdown          |   4 +-
 doc/api/process.markdown       |   5 +-
 doc/api/stream.markdown        |   4 +-
 doc/api/tls.markdown           |  26 ++--
 doc/api/zlib.markdown          |  27 ++---
 doc/onboarding-extras.md       | 105 +++++++++++++++++
 doc/onboarding.md              | 199 +++++++++++++++++++++++++++++++
 doc/releases.md                |  10 +-
 23 files changed, 756 insertions(+), 297 deletions(-)

Tests & Benchmarks only:

 .../known_issues/test-child-process-max-buffer.js | 16 +++++++
 test/known_issues/test-events-known-properties.js | 12 +++++
 .../test-module-deleted-extensions.js             | 17 +++++++
 .../test-process-external-stdio-close.js          | 23 ++++++++++
 test/known_issues/test-vm-getters.js              | 19 ++++++++
 test/message/timeout_throw.out                    |  1 +
 test/parallel/test-console-instance.js            | 19 +++++---
 .../test-event-emitter-remove-listeners.js        | 19 ++++++++
 test/parallel/test-net-isip.js                    | 29 ++++++++++++
 test/parallel/test-npm-install.js                 |  9 +++-
 test/parallel/test-regress-GH-2245.js             | 28 ++++++++++++
 test/parallel/test-zlib-from-concatenated-gzip.js | 18 ++++++++
 .../test-zlib-from-gzip-with-trailing-garbage.js  | 50 +++++++++++++++++++++
 test/sequential/test-force-repl-with-eval.js      | 27 +++++++++++
 14 files changed, 280 insertions(+), 7 deletions(-)

Most active commit

Of the 48 commits, 29510aa was the most active:
(Excluding docs, npm, eslint, and tests.)

commit 29510aa4fdd9a1ace30b9a1fa1048e6bebaadd9e
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Mon Mar 7 07:48:44 2016 +0900

    deps: update openssl config

    OPENSSL_NO_SSL2 and OPENSSL_NO_WEAK_SSL_CIPHERS are defined in
    opensslconf.h

    Fixes: https://github.com/nodejs/LTS/issues/85
    PR-URL: https://github.com/nodejs/node/pull/5630
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Fedor Indutny <fedor@indutny.com>

 deps/openssl/config/archs/BSD-x86/opensslconf.h            | 12 ++++++++++++
 deps/openssl/config/archs/BSD-x86_64/opensslconf.h         | 12 ++++++++++++
 deps/openssl/config/archs/VC-WIN32/opensslconf.h           | 12 ++++++++++++
 deps/openssl/config/archs/VC-WIN64A/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/aix-gcc/opensslconf.h            | 12 ++++++++++++
 deps/openssl/config/archs/aix64-gcc/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/darwin-i386-cc/opensslconf.h     | 12 ++++++++++++
 deps/openssl/config/archs/darwin64-x86_64-cc/opensslconf.h | 12 ++++++++++++
 deps/openssl/config/archs/linux-aarch64/opensslconf.h      | 12 ++++++++++++
 deps/openssl/config/archs/linux-armv4/opensslconf.h        | 12 ++++++++++++
 deps/openssl/config/archs/linux-elf/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/linux-ppc/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/linux-ppc64/opensslconf.h        | 12 ++++++++++++
 deps/openssl/config/archs/linux-x32/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/linux-x86_64/opensslconf.h       | 12 ++++++++++++
 deps/openssl/config/archs/solaris-x86-gcc/opensslconf.h    | 12 ++++++++++++
 .../config/archs/solaris64-x86_64-gcc/opensslconf.h        | 12 ++++++++++++
 deps/openssl/openssl.gypi                                  |  4 ----
 18 files changed, 204 insertions(+), 4 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.