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
- This release is based on the Node.js 16.13.0 community release.
- V8 JavaScript Engine is updated to version 9.4. For more information, see the V8 JavaScript Engine release v9.4 announcement blog.
- Node package manager (npm) is updated to 8.1.0.
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
preventsnode-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 thezoslib_include_dir
setting inconfig.gypi
. By default,npm_config_zoslib_include_dir
is set toinclude/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.