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)
- 型エラーのメッセージを大幅に改善しました.(Trac #11198, Trac #12373, Trac #13530, Trac #13610)
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 import
でByteArray#
引数があってもコンパイラがパニックを起さないようになりました.
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. 既知のバグ¶
幸いありません.