What's new in Open Enterprise SDK for Node.js

Open Enterprise SDK for Node.js delivers the following new functions and performance and usability enhancements.

Community and dependencies

Encoding support

  • The initial support for the cp1047 encoding is introduced in Node.js. For more information, see API extensions.
  • The binary guess feature is introduced to guess whether data is binary and tag the output file as binary if it is.
  • CCSID can be specified for STDIO file descriptors via environment variables.

Memory

  • The default stack size of V8 JavaScript Engine is changed from 4 MB to 2 MB.
  • The value of kMinSemiSpaceSize of V8 JavaScript Engine is changed from 1 MB to 512 KB.
  • The --wasm-max-guard-region-size flag is removed. The V8 option --wasm-max-mem-pages can be specified in the NODE_OPTIONS environment variable as an alternative.
  • The IARV64 implementation is updated to pass the task token instead of the TCB token to __iarv64() when allocating and freeing memory, which enables Language Environment® to associate the above the bar allocated memory with the Node.js enclave and free the memory when Node.js terminates.

Setup and environment variables

  • The setup.sh script is updated to issue messages for noncritical errors and color-code error and warning messages that are encountered during installation. Additionally, setup messages, including errors and warnings, are logged to the file <install_dir>/setup.<timestamp>.log for review.
  • Environment variables are added to .nodeenv:
    • npm_config_nodedir prevents node-gyp from downloading the the file of headers, which are not aligned with z/OS® headers. By default, npm_config_nodedir is set to the Node.js installation directory.
    • npm_config_zoslib_include_dir overrides the zoslib_include_dir setting in config.gypi. By default, npm_config_zoslib_include_dir is set to include/node/zoslib under the Node.js installation directory.
  • If the environment variable V is set to 1 when node --version is run, the Node.js release type and build details are included in the output. For example,
    ga,node-build:...

ZOSLIB

  • The node --zoslib-help command displays the ZOSLIB environment variable settings help menu.
  • ZOSLIB environment variables can be changed during execution of a Node.js application.

PL/I

  • node-gyp has been extended to support the compilation of PL/I source files (.pli extension) for use in native Node.js add-ons.

ICU

  • The full set of ICU data is available, enabling support for all locales. External dependencies have been removed and the NODE_ICU_DATA environment variable is no longer needed. For more information, see Embed the entire ICU.

OpenSSL

  • OpenSSL secure memory on z/OS can be activated with the option --secure-heap=n, which initializes an OpenSSL secure heap of n bytes. Secure memory is an OpenSSL feature that allows certain kinds of potentially sensitive information to be allocated from a dedicated memory area that is protected against pointer overruns and underruns.

Native Node.js add-ons

C++ add-ons are compiled using C++14. In previous releases, C++11 is used.

Other

  • Diagnostics reporting shows the correct CPU model number.
  • The SMF warning message is updated to show the proper environment variable for suppressing SMF warnings.
  • Module size is reduced by approximately 10%.
Note: For a complete list of releases, refreshes, and fix packs (also known as PTFs) for the product, see Fix list for IBM Open Enterprise SDK for Node.js.