GHC 開発者チームは、GHC 9.14.1 のリリースを謹んでお知らせいたします。 バイナリ配布版、ソース配布版、およびドキュメントは、以下の URL から入手可能です:downloads.haskell.org。
GHC 9.14 では、以下のような数多くの新機能と改良が加えられています:
-
特殊化機能の大幅な改善:
SPECIALISEプラグマで型適用構文を使用可能になりましたSPECIALISEプラグマは、型引数だけでなく式引数に対しても- 特殊化を適用できるようになりました
newtypesが存在する環境においても、特殊化の信頼性が大幅に向上しました
-
GHC インタラクティブシェル(GHCi)の大幅な改良:
- バイトコードインタプリタの正確性とパフォーマンスが向上しました
- GHCi デバッガに新たな機能が追加されました
- GHCi 環境で複数のホームユニットをサポートしました
-
Explicit Level Imports 提案の実装
-
RequiredTypeArgumentsプラグマをより多様な文脈で使用可能になりました -
x86 ネイティブコード生成バックエンドにおける SSE/AVX2 サポートが大幅に強化されました
-
LoongArch アーキテクチャ向けネイティブコード生成バックエンドの初期サポートを追加しました
-
WebAssembly バックエンドでは、インタプリタ経由の評価が可能になり、これにより GHCi や TemplateHaskell の評価、さらにはブラウザ内での
foreign import javascriptの使用が実現しました -
スタックトレースを解読する際に任意のデータを呼び出しスタックにプッシュするための新しいプリミティブ
annotateStack#が追加されました -
-Wincomplete-record-selectorsオプションが-Wall警告グループの一部となりました-Werrorオプションでコンパイルしたライブラリを使用する場合、必要に応じて調整が必要になる可能性があります -
Windows ツールチェーンの主要なアップデートを実施しました
-
macOS Tahoe 環境との互換性が向上しました
-
... その他多数の改良点があります
変更点の完全な一覧はリリースノートに記載されています。このリリースへのプログラム移行方法については、移行ガイドを参照してください。なお、このリリースでは特殊化最適化において多くの改善が行われていますが、#26329 で報告されたような回帰の懸念から、多相的特殊化はデフォルトで無効のままとなっていますのでご注意ください。より積極的な特殊化を必要とするユーザーは、-fpolymorphic-specialisation フラグを明示的に指定することでこの機能を有効にできます。9.14.1 の運用状況を踏まえ、今後のマイナーリリースでデフォルトで有効化する可能性もあります。
GHC 開発は以下のスポンサーによって支援されています:
- Juspay
- QBayLogic
- Channable
- Haskell Foundation
- Serokell
- Well-Typed
- Tweag
- Dotcom-Monitor
- LoadView
- Web Hosting Buddy
- Find My Electric
- Standard Chartered
- UpCloud
これらのスポンサーの皆様、および継続的な資金的・現物的支援を提供してくださっている匿名の貢献者の皆様に心より感謝申し上げます。最後に、このリリースの実現には、数百名に及ぶオープンソース貢献者の方々の多大なる貢献が不可欠でした。
いつものように、このリリースを実際にお試しいただき、何か問題がございましたらチケットをご提出ください。