Skip to content
This repository was archived by the owner on Sep 7, 2022. It is now read-only.

Latest commit

 

History

History
200 lines (166 loc) · 19 KB

2015-05-08.md

File metadata and controls

200 lines (166 loc) · 19 KB

io.js ウィークリーアップデート 2015/05/08

io.js 2.0のリリース

io.js 2.0 リリース

今週は、v2.0.0v2.0.1のリリースを行いました。完全なチェンジログは、GitHubで確認できます。

主な変更点

2.0.1

  • async_wrap: (Trevor Norris) #1614
    • プロバイダを用いてフィルタリングすることが可能になりました
    • ビットフラグは削除され、バインドされたオブジェクトのメソッド呼び出しに置き換えられました
    • 注記: これは不安定なAPIなので、機能追加や互換性のない変更があってもio.jsのセマンティックバージョンの更新はしないつもりです
  • libuv: 多数のissueを解決:
    • #862 無効な標準入力ファイルの記述子による子プロセスの生成を防ぐ修正をしました
    • #1397 Windows で fs.access(W_OK) をした際に発生していたEPERMのエラーを修正しました
    • #1621 バンドルされている libuv のタグを修正しました
    • #1512 Windowsで処理の終了時に発生するエラーを修正しました
  • addons: NODE_DEPRECATEDマクロは、コンパイラのバージョンが古いことが原因でアドオンのコンパイルに問題が発生していましたが、解決しました (Ben Noordhuis) #1626
  • V8: バージョンを4.2.77.18から4.2.77.20に更新。いくつかの小さい改善と、FreeBSDでビルドする際のバグを防ぐ改善が含まれています

2.0.0

  • crypto: TLSの使用メモリを削減(Fedor Indutny & Сковорода Никита Андреевич) #1529
  • net: カスタムDNSの名前解決を設定するために、socket.connect()'lookup' オプションが追加されました。デフォルトは dns.lookup() です。(Evan Lucas) #1505
  • npm: バージョンを 2.9.0 に更新。詳細は v2.8.4v2.9.0 にあるリリースノートを参照してください。主な変更点:
    • ユーザーの入力を省略して npm init -y を実行するために、authorフィールドのデフォルト値を設定可能にしました (@othiym23) npm/npm/d8eee6cf9d
    • npm outdatednpm update を実行する際に、ローカルにあるモジュールも含まれるように変更しました (@ArnaudRinquin) npm/npm#7426
    • npm versionを実行した際にgitへ追加されるタグのプレフィックスを、tag-version-prefix で設定できるようにしました (@kkragenbrink) npm/npm#8014
  • os: os.tmpdir() がクロスプラットフォームで一貫した値を返すようになり、どのプラットフォームでも末尾にスラッシュを付けないで返すようになります (Christian Tellnes) #747
  • process:
    • process.nextTick() 全体のベンチマーク環境において、2-42%程度パフォーマンスが改善しました。注目すべきは、コア全体でヘビーに使われているということです。 (Brian White) #1571
    • process.geteuid(), process.seteuid(id), process.getegid(), process.setegid(id) は、有効なプロセスのUDIとGIDを取得できるように新しくなりました (Evan Lucas) #1536
  • repl:
    • REPLのヒストリーは、環境変数の NODE_REPL_HISTORY_FILE にユーザーのアクセス可能なファイルが指定されている場合、セッション間で値を共有するようになりました。また、NODE_REPL_HISTORY_SIZE にヒストリーの最大サイズを設定することができます。デフォルト値は 1000 です (Chris Dickinson) #1513
  • 環境変数の NODE_REPL_MODE を使うことで、sloopy, strict, magic(デフォルト)の3つのモードを設定できるようになりました。新たに入った magic モードは、自動で"strict mode only" ステートメントをstrictモードで実行します。
  • smalloc: smalloc モジュールは、V8の4.4における変更が原因で廃止になりました
  • util: Promise, Map, Setオブジェクトのconsoleへの出力がわかりやすくなりました (Christopher Monsanto) #1471
  • V8: バージョンを 4.2.77.18に更新しました。詳細は ChangeLog を参照して下さい。主な変更点:
    • クラスはステージングの外へ移動しました。class キーワードは、フラグのない状態のstrictモードで使用可能です
    • オブジェクトリテラルの拡張機能はステージングの外へ移動しました。省略表記とプロパティの構文は使用可能になりました({ method() { }, property }) Rest引数 (function(...args) {})は、ステージングに実装されました。--harmony-rest-parameters フラグで有効化します。
    • コンピューテッドプロパティ({['foo'+'bar']:'bam'})はステージングに実装されました。--harmony-computed-property-names フラグで有効化します。
    • Unicodeエスケープ('\u{xxxx}')はステージングに実装されました。--harmony_unicode フラグと --harmony_unicode_regexps フラグを有効にすると正規表現の中で利用することが出来ます。
  • Windows:
    • Windowsの終了時に発生するランダムプロセスが修正されました (Fedor Indutny) #1512 / #1563
    • プロセス名(iojs.exe / node.exe)に関する問題を解決するために導入された遅延ロードのフックはネイティブアドオンのためにオプトアウトされました。ネイティブアドオンは、何か問題が発生してこの機能を無効化するには、'win_delay_load_hook': 'false' をbinding.gypに含める必要があります。(Bert Belder) #1433
  • Governance:
    • Technical Committee (TC) に Rod Vagg (@rvagg) が追加されました
    • Technical Committee (TC) に Jeremiah Senkpiel (@Fishrock123) が追加されました

互換性のない変更

詳細はこちらを参照してください https://github.com/iojs/io.js/wiki/Breaking-Changes#200-from-1x

  • V8のバージョンを 4.2 に更新したので、C++ APIにマイナーチェンジが入りました。
  • os.tmpdir() がクロスプラットフォームで一貫した値を返すようになり、どのプラットフォームでも末尾にスラッシュを付けないで返すようになります
  • smalloc モジュールは、将来的に行うV8の4.4への更新による影響で廃止となりますが、互換性のない変更 とは扱いません。 更に詳しい情報は、 #1451 を参照してください。

注記:新しい url モジュールは、npmのエコシステム全体に多大な影響を与え破損する可能性があることが原因で、リリースをする前に互換性をより担保する必要があったので、リリース前にリバートとなりました。詳細は #1602 を参照してください。

既知の問題

現在の完全な既知の問題リストはこちらを参照してください。 https://github.com/iojs/io.js/labels/confirmed-bug

  • beforeExit が実行されている最中の非参照のtimersに起因するいくつかの問題は、まだ解決されていません。詳細は #1264 を参照して下さい。
  • REPL 内のサロゲートペアがターミナルのフリーズを引き起こすことがあります。 #690
  • process.send() はドキュメントに記述されている通り、本来は同期的に実行されるはずですが、1.0.2 にて発生した不具合により非同期的に呼び出されてしまうようになりました。詳細は #760 を、修正については #774 を参照して下さい。
  • dns.setServers() を呼び出している間の DNS クエリが、進行中にアサーションに失敗してプロセスをクラッシュさせることがあります。#894
  • url.resolve は2つの完全なホストを解決しようとした際に url の auth の部分を移動する可能性があります。詳細は #1435 を参照してください。
  • readline: エスケープ処理の分割が正しく動作しません。詳細は #1403 を参照してください。

コミュニティより

  • Michael Dawsonは、Node Foundation以下での WGの提案 を書きました。
  • Mikeal Rogersは、Mediumにて io.jsの成長について書きました。
  • CodeSchoolは、io.js 2.0の最新情報について blogの記事 にしました。
  • NodeのリーダーTJ Fontaineは、リーダーを 退任 します。

今後開催されるイベント

  • NodeConf Adventure のチケットが販売中です。6月11-14日にカリフォルニアのウォーカークリークランチにて開催されます。
  • CascadiaJS のチケットが販売中です。7月8-10日にワシントン州にて開催されます。
  • BrazilJS Conf のチケットが販売中です。8月21-22日にリオ・グランデ・ド・スール州のBarra Shopping Sulで開催されます。
  • NodeConf EU のチケットが販売中です。9月6-9日にアイルランドのウォーターフォードにて開催されます。