Node8の注目的変更まとめ
そろそろNodeのv8.0.0が出ます。😆
注目するべき変更
Node8のリリースが4月から今回に変わった影響として、V8のバージョンをv5.8へ上げるためというのがあります。
何故かと言うと、TurboFanとIgnitionがv5.8で試験的に入り、v5.9でデフォルトになるのでLTS(v8.0.0はLTS)へのバックポートを楽にするためです。
TF-Iの詳しい資料
V8 javascript engine for フロントエンドデベロッパー
5月以降に入った注目的な変更はasync_hooksとpromisifyとnpm5.0.0が大きいです。
N-API(Node-API)
ネイティブモジュールのAPI安定抽象化レイヤー
異なるVM間、Nodeのバージョン間でABI(Application Binary Interface)互換性を保証します。
async_hooks
async_hooks initial implementation by trevnorris · Pull Request #11883 · nodejs/node · GitHub
新しいasync_hooksモジュールはNode内で作られた非同期なリソースの生存期間に対して追跡するコールバックを登録します。
非同期操作の全体の監視、追跡を行います。
以下が対象です。
FSEVENTWRAP, FSREQWRAP, GETADDRINFOREQWRAP, GETNAMEINFOREQWRAP, HTTPPARSER, JSSTREAM, PIPECONNECTWRAP, PIPEWRAP, PROCESSWRAP, QUERYWRAP, SHUTDOWNWRAP, SIGNALWRAP, STATWATCHER, TCPCONNECTWRAP, TCPWRAP, TIMERWRAP, TTYWRAP, UDPSENDWRAP, UDPWRAP, WRITEWRAP, ZLIB, SSLCONNECTION, PBKDF2REQUEST, RANDOMBYTESREQUEST, TLSWRAP
別記事で詳しく書きます
promisify
setTimeoutとかをcallbackではなくpromiseと同じ書き方ができるようになります。
Nodeへutil.promisify()の追加 - 技術探し
zero-filling Buffers
buffer: zero fill Buffer(num) by default by jasnell · Pull Request #12141 · nodejs/node · GitHub
デフォルトでBufferコンストラクタが0をセットすることにより、セキュリティ問題になるのを防ぎNodeを安全化させます。
inspector
node/inspector.md at master · nodejs/node · GitHub
新しいinspectorモジュールはv8のインスペクタで使用されるデバッグプロトコルを使うために作られました。
WHATWG URL
doc: graduate WHATWG URL from Experimental by jasnell · Pull Request #12710 · nodejs/node · GitHub
ステータスが実験から安定へ
–debugがなくなった
--inspect を今後使ってください。
streamにdestroyが追加された
stream: add destroy and _destroy methods. by mcollina · Pull Request #12925 · nodejs/node · GitHub
npmが5.0.0へ
他ので詳しく知りたい方はこちらもどうぞ
入りそうで入らなさそうなもの
すでにsemver-majorは凍結済みなのでおそらく入らないと思えます。 github.com
whatwg-consoleに準拠した実装の導入 github.com
さいごに
ざっとでしたが、今現在リリースノートの草稿段階なので公式で出たらもう一度まとめたいなと思います。