4. バージョン 8.2.2 のリリースノート

コンパイラのさまざまな部分での重要な変更は以降の節で一覧表にしてあります. これはパッチレベルのリリースで 8.2.1 に対する大量のバグ修正を含みます.

4.1. ハイライト

8.0系列からの変更のハイライトは以下のとおりです.

  • 実行時にクラッシュする可能性のある問題をいくつか修正しました. (Trac #13707, Trac #14346)
  • STM を使うプログラムで未定義の振る舞いがおこる問題を修正しました. (Trac #14717)
  • メモリが少い状況下でセグメンテーションフォルトとして出現したランタイムシステムのバグを修正しました. (Trac #14329)
  • ghc-pkg は不完全な設定の NFS マウントがおこなわれてりいう環境で正しく動作するようになりました. (Trac #13945)
  • GHC は位置独立実行可能コードを生成できるようになりました.(Trac #13702)

4.2. 詳細

4.2.1. パッケージシステム

  • Backpack にさまざまな修正を加えました.(Trac #14304)

4.2.2. 言語

  • 直和パターンは非反駁不可パターンと見なされるようになりました.(Trac #14228).
  • -XApplicativeDo は正格パターンを含む do ブロックをより頑健に扱えるようになりました. (Trac #14163)

4.2.3. コンパイラ

  • 実装の不整合により -j ⟨n⟩ を指定したときに型検査器がパニックを起すバグが修正されました.
  • 常に libm をリンクするようになりました.これは,いくつかのプラットフォーム(たとえば NixOS)で ld.gold がリンクの依存関係をすべて宣言するように要求するのを修正したのものです.
  • FreeBSD では libthr ではなく libpthread にリンクするようになりました.
  • 孤立したインスタンスを含む hs-boot ファイルの型検査時に発生する renamer のバグを修正しました. (Trac #14128)
  • コストセンタープロファイラのイベントログサポートは,クロージャタイプによる分解もサポートするようになりました. (-hT, Trac #14096)
  • GHCi で -XStaticPointers を使用しているいくつかのプログラムで Core Lint が失敗するバグを修正しました. (Trac #13481)
  • コンパイラはタプルの制限を(たとえば 63 より広く)拡張する制約ワイルドカードの取扱いを頑健なものにしました.
  • 不適切なレヴィティ多相を捕捉するようになりました.(Trac #13929)
  • データ構成子フィールドが不正な正格性シグネチャを持ってしまうことに繋るバグを修正しました. (Trac #14290)
  • 実行時に未定義動作を引き起す可能性のある retry# に対する不正な正格性シグネチャを修正しました. (Trac #14171)
  • 型検査が無限ループをひきおこすショートカットソルバーのバグを修正しました. (:ghc-tickets:`13943`)
  • foreign importByteArray# 引数があってもコンパイラがパニックを起さないようになりました.
  • Foreign.Marshal.Alloc.allocBytes[Aligned] を過度に最適化した結果,未定義動作を起していたのを回避しました. (Trac #14346)

4.2.4. GHCi

  • Windows で Ctrl-C が正しく動作するようになりました.(Trac #14150)
  • GHCi -show-mods-loaded フラグで :load コマンドによってロードされたモジュール名を表示できるようになりました. (Trac #14427)

4.2.5. ビルドシステム

  • configure スクリプトは ld.lld を見つけても使えないと判れば ld.lld をプローブするようになりました.
    (Trac #14280)

4.2.6. ランタイムシステム

  • コンパクトリージョンは小さなポインタ配列に対してもサポートされるようになりました.(Trac #13860)
  • RTS は 32bit Windows 上で空のインポートテーブルを持つ DLL をロードできるようになりました.(Trac #14081)
  • 以前から存在していましたがなにも機能しなかった -po フラグが機能するようになりました.

4.2.7. hsc2hs

  • バージョン 0.68.2

4.3. ライブラリ

4.3.1. array

  • バージョン 0.5.2.0 (従来 0.5.2.0)

4.3.2. base

完全なリリースノートについては base パッケージに含まれる changelog.md を参照してください.

  • バージョン 4.10.1.0 (従来 4.10.0.0)
  • clearBit :: Natural -> Natural はボトムになることはなくなりました.(Trac #13203)
  • GHC.IO.Handle によって提供されるファイルロックプリミティブは,利用可能であれば, Linuxオープンファイル記述子ロックを使用するようになりました.

4.3.3. binary

  • バージョン 0.8.5.1 (従来 0.8.5.1)

4.3.4. bytestring

  • バージョン 0.10.8.2 (従来 0.10.8.2)

4.3.5. Cabal

  • バージョン 2.0.1.0 (従来 2.0.0.2)

4.3.6. containers

  • バージョン 0.5.10.2 (従来 0.5.10.2)

4.3.7. deepseq

  • バージョン 1.4.3.0 (従来 1.4.3.0)

4.3.8. directory

  • バージョン 1.3.0.2 (従来 1.3.0.0)

4.3.9. filepath

  • バージョン 1.4.1.2 (従来 1.4.1.2)

4.3.10. ghc

  • バージョン 8.2.2

4.3.11. ghc-boot

  • これは内部パッケージです.慎重に使ってください.

4.3.12. ghc-compact

ghc-compact パッケージは,不変のデータ構造をメモリの連続領域に配置するための実験的な API を提供します. このような領域に配置されたデータはガーベッジコレクション中に追跡されることはなく,ディスクまたはネットワーク上にシリアライズできます.

  • バージョン 0.1.0.0 (従来 0.1.0.0)

4.3.13. ghc-prim

  • バージョン 0.5.1.0 (従来 0.5.1.0)

4.3.14. hoopl

  • バージョン 3.10.2.2 (従来 3.10.2.2)

4.3.15. hpc

  • バージョン 0.6.0.3 (従来 0.6.0.3)

4.3.16. integer-gmp

  • バージョン 1.0.1.0 (従来 1.0.0.1)

4.3.17. process

  • バージョン 1.6.1.0 (従来 1.6.1.0)

4.3.18. template-haskell

  • バージョン 2.12.0.0 (従来 2.12.0.0)

4.3.19. time

  • バージョン 1.8.0.2 (was 1.8.0.2)

4.3.20. unix

  • バージョン 2.7.2.2 (従来 2.7.2.2)

4.3.21. Win32

  • バージョン 2.5.4.1 (従来 2.5.4.1)

4.4. 既知のバグ

幸いありません.