英語版
このページの英語版を見る

変更ログ 2.014

前バージョン: - 次のバージョン:

Download D 2.014
2008年5月16日リリース

新機能/変更点

  • マニュアルを閲覧するための-man スイッチが追加された。
  • ライブラリファイルを生成するための-lib スイッチが追加された。 また、1つのソース・モジュールから複数のオブジェクト・ファイル 生成されるようになった。
  • 実行ファイルを生成する際、コンパイルされたすべてのモジュールを含むオブジェクトファイル が生成されるようになった。 モジュールごとに1つのオブジェクト・ファイルではなく、コンパイルされたすべてのモジュールを含む1つのオブジェクト・ファイルのみが生成されるようになった。
  • ユーティリティ rdmdユーティリティを書き直した。 ユーティリティを書き直した。 Linux でのみ動作)。
  • 新しいlinux.mak 機能を利用するために、"phobos makefile" を変更した。 -lib を利用するように変更した。フルビルド速度を3倍向上。
  • std.algorithm:map()関数を変更し、戻り値の型を推測するようにした。また、mapをcurriedできるようにした。
  • std.contracts:enforceにファイルと行の情報を追加した。エラーメッセージを errno に従ってフォーマットする errnoEnforce を追加した。対応するErrnoExceptionクラスを追加。
  • std.conv:std.toをcurryableにした。オブジェクト間のキャストに失敗した場合に例外をスローするようにstd.toを変更した。いくつかの余計な printfs を削除した。
  • std.encoding:新しい関数encodedLength(dchar)とencode(dchar, ref E[])を追加。
  • std.encoding:Utf8、Utf16、Utf32、Ascii、Latin1、Windows1252型を廃止。AsciiChar, AsciiString, Latin1Char, Latin1String, Windows1252Char, Windows1252String型を導入。
  • std.encodingが導入された:とりあえずstd.encoding.toをコメントアウトした。
  • std.file:ブール関数のシグネチャー(existsなど)をintではなくboolを返すように変更した。いくつかのゴトを取り除いた。readText、lastModified、mkdirRecurse、rmdirRecurse関数を追加した。
  • std.functional:compose関数を改良し、無制限数の関数を受け付けるようにした。pipe関数を追加した。
  • std.getopt:新しいオプション stopOnFirstNonOption を追加。また、スペースが埋め込まれた怪しげなオプショングループを自動的に展開するようにした(shebangスクリプトに便利)。
  • std.math: 積分べき乗を改良。
  • std.md5:sumのシグネチャを改良し、複数の配列を受け取るようにした。getDigestStringを追加。
  • std.path: テスト関数のシグネチャをboolからintに変更した。Windows用にrel2absを実装した。joinが複数のパスを受け付けるように改良。スコープ文の助けを借りて、いくつかのゴトを取り除いた。
  • std.process: getenvとsetenvを追加した。Linuxで正しく終了コードを返すようにsystem()を改良した。
  • std.random:サイコロ関数を追加した。
  • std.typecons:驚異的なRebindableテンプレートを最終化し、文書化した。
  • std.utf: codeLength関数を追加した。いくつかのゴトを取り除いた。

バグ修正

  • std.format:配列のraw書き込みでリストされていないバグを修正。
  • std.getopt:バンドルが無効な場合の1文字オプションの扱いに関する未記載のバグを修正した。
  • Bugzilla 2014: fopen が大きなファイルで失敗する。
  • Bugzilla 2031: ドキュメント:テンプレート値パラメータ
  • Bugzilla 2032: スタック上にクラスを作成するためのドキュメントが直感的でない
  • Bugzilla 2037: ハイジャックに関する記事は古い
  • Bugzilla 2038: サンプル・ディレクトリからhello2.htmlを削除する
  • Bugzilla 2039: コンパイラのドキュメントに-ignoreスイッチがない。
  • Bugzilla 2054: 構造体の代入でconstシステムが壊れている。
  • Bugzilla 2055: (ICE) 構造体のイニシャライザで要素が多すぎるとコンパイラがクラッシュする。
  • Bugzilla 2056: Constシステムが深い複合型を含む特定の安全なキャスト/変換を許可しない。
  • Bugzilla 2058: クラスのメンバ関数に渡される隠された値を記述する。
  • Bugzilla 2063: 入れ子になった閉じたタグに対する std.xml のアクセス違反
  • Bugzilla 2065: std.file.exists()の戻り値が反転している。
  • Bugzilla 2067: std.file.exists()の戻り値が反転している。
  • Bugzilla 2071: 2つのポインタ・オペランドを持つポインタ演算について仕様が言及していない。
  • Bugzilla 2072: std.typeconsのドキュメントに異常がある。
  • Bugzilla 2074: 変量算術演算に失敗する。今のところ、すべての右辺演算子をコメントアウトすることで修正している。より良い修正の提案は歓迎する。
  • Bugzilla 2075: 配列リテラルがどのように格納されるかは仕様で規定されていない。
  • Bugzilla 2084: 演算子 ?: が最もきつい型を計算しない。
  • Bugzilla 2086: 文字列とchar[]の関係をもっと明確に記述する。
  • Bugzilla 2089: CTFEとタプルインデックスの問題点
  • Bugzilla 2090: テンプレート・インスタンスであるタプル・メンバーをエイリアスできない
  • Bugzilla 2100: アサーションの失敗:ファイル'expression.c'の4842行目の'0'
  • Bugzilla 2109: asm {lea EAX, [0*0+EAX]; } が拒否された。
前のバージョン: - 次のバージョン: