GHC 7.0.2 がリリースされました。
http://www.haskell.org/ghc/download_ghc_7_0_2
既に Haskell Platform 2011.1.0.0 の Release Candidate がリリースされていることからわかるように、近いうちに GHC 7.0.2 を含んだ Haskell Platform の新バージョンがリリースされる予定です。既に GHC 7.0.1 (や 7.0 branch のビルド)を使っているなどの特別な理由がなければ、できれば Haskell Platform のリリースを待ってください。
http://groups.google.com/group/haskell-jp/browse_thread/thread/e7028b99140e3a25
http://projects.haskell.org/pipermail/haskell-platform/2011-February/001419.html
今回のリリースでは、型検査器や I/O manager 等、GHC 7.0.1 のリリースに伴い大きく書き変わった部分のバグが修正されています。また,他に以下の変更が加わっています。
* QuasiQuote の [$pads| ...blah... |] という構文が一時的に復活
GHC 7.0.1 で QuasiQuote を $マークを使用せずに [pads| ...blah... |] と書けるように変更したのですが,手違いがあり,非推奨化を経ずにこれまでの [$pads| ...blah... |] という構文が使用できなくなってしまっていました。そこで GHC 7.0.2 では後方互換性のため、一時的にこれまでの [$pads| ...blah... |] という構文を復活させました。
http://www.haskell.org/pipermail/cvs-ghc/2010-November/057458.html
ただし、これまでの [$pads| ...blah... |] という構文は非推奨扱いになっています。将来のバージョンの GHC では [$pads| ...blah... |] という書式は使えなくなるので、GHC 7.0.2 のリリースを期にできるだけ早く新しい [pads| ...blah... |] という構文に変更してみてください。
QuasiQuote の構文についてまとめると、以下の通りです。
| GHC のバージョン
-----------------------|-----------------------------------
構文 | ~ 6.12.3 | 7.0.1 | 7.0.2
| | |
[$pads| ...blah... |] | O | X | △(非推奨)
| | |
[pads| ...blah... |] | X | O | O
* Mac OS X 64 bit に正式対応
今回のリリースから Mac OS X の 64 bit 版バイナリが、正式に提供されるようになりました。(今は GHC 7.0.1 の Mac OS X 64 bit 版バイナリも提供されていますが、GHC 開発チームが用意したバイナリではなく、ユーザーが独自にビルドして提供したものです。)
http://www.haskell.org/ghc/download_ghc_7_0_2#macosx_x86_64
Mac OS X では今回初めて 64 bit 版が正式提供されたため、64 bit 版にはいくつか潜在的なバグが潜んでいると思います。そういうことも考慮した上で、32 bit 版と 64 bit 版の好きな方を選んで使ってみてください。
* Hoogle のデータベースを同梱
ライブラリのドキュメントに、Hoogle で使用されるデータベースを同梱するようになりました。これで Hoogleを少し使いやすくなったと思います。
目につく変更はこのくらいでしょうか?
他にもいくつかのバグ修正や機能の追加が行われています。リリースノートなども参考にしてください。
http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/release-7-0-2.html
--
shelarcy <shelarcy hotmail.co.jp>
http://page.freett.com/shelarcy/
GHC 7.0.1 での変更については、こちらのスレッドなどを参照してください。
http://www.sampou.org/cgi-bin/w3ml.cgi/haskell-jp/msg/595
また、GHC 7.0.1 での非同期例外 API についてはこちらのページで書きましたので、そちらを参照すると良いと思います。
http://itpro.nikkeibp.co.jp/article/COLUMN/20110112/355997/?ST=develop&P=4
あと、Cabal の test 機能にいくつかの修正が加わっています。現在の実装での使い方について知りたい場合には、こちらのドキュメントを参照してください。
http://darcs.haskell.org/ghc-7.0/packages/Cabal/doc/Cabal.markdown
(このファイルは Cabal のドキュメントの元となるものだと思うのですが、おそらく手違いがあって、現在の Cabal のドキュメントは、新しい test 機能について全く説明のない古いものとなってしまっています。)
Mac OS X 10.6 Snow Leopard 64 bit 環境に対応した代わりに、Haskell.org の提供するバイナリでは Mac OS X 10.5 Leopard でリンク時にエラーが出てバイナリを作成できなくなったみたいです。
(いけがみさんによると、10.5 上で自分で GHC をビルドした場合には問題ないそうです。
http://twitter.com/ikegami__/status/44233839807184896
http://twitter.com/ikegami__/status/44234434618204161 )
GHC 7.0.2 からは Mac OS X 10.6 を公式サポートのバージョンとするため、GHC 開発チームはこの問題を解決しないそうです。(ただし、ユーザーから patch が送られてくれば対応するとのこと。)
http://hackage.haskell.org/trac/ghc/ticket/4996
64 bit 対応を問題として 10.6 (Snow Leopard) への移行をためらっていた方は、この機会に乗り換えるべきなんでしょうね……。
Haskell-Cafe で、Cabal の test 機能使い方について聞くやり取りがありました。
http://www.haskell.org/pipermail/haskell-cafe/2011-March/thread.html#90055
それによると、HTML 形式でのきちんとしたドキュメントは Cabal のサイトにあるそうです。
http://www.haskell.org/cabal/release/cabal-1.10.1.0/doc/users-guide/#test-suites
http://www.haskell.org/cabal/release/cabal-1.10.1.0/doc/users-guide/#building-test-suites
また、以下のメールで使用例が示されています。
http://www.haskell.org/pipermail/haskell-cafe/2011-March/090057.html
ただし、現在の Cabal 1.10.1.0 には .cabal ファイル内でフラグを使っていると、test
機能がうまく働かなくなるというバグがあるそうです。既に問題を修正する patch が出ているので、早く修正が取り込まれると良いですね。
http://hackage.haskell.org/trac/hackage/ticket/811
GHC 7.0.1 のリリースから取り除かれた DPH ライブラリですが、GHC 7.0.1
での型検査器や最適化機能に対する変更などに伴い、一度壊れてしまっていました。
http://practical-scheme.net/chaton/haskell-ja/a/2010/11/17
目下この問題を解決するための修正作業を行なっているところで、GHC 側を修正しなければ直らない問題もあることから、現在 HackageDB
への DPH ライブラリのアップロードも行なわれていません。
DPH ライブラリの修正の完了は、GHC 7.2.1 のリリースに間に合わせることを目標にしているそうです。
http://hackage.haskell.org/trac/ghc/wiki/DataParallel/Dec2010Release
2010年11月16日10:13 shelarcy <shel...@gmail.com>:
> * DPH ライブラリの削除
>
> 残念ながら、諸事情から DPH ライブラリ(dph-* パッケージ)は GHC のリリースから
> 取り除かれてしまいました。
>
> http://www.haskell.org/pipermail/cvs-ghc/2010-September/thread.html#56128
> http://www.haskell.org/pipermail/cvs-ghc/2010-September/056170.html
> http://www.haskell.org/pipermail/cvs-ghc/2010-September/056213.html
>
> DPH ライブラリをインストールせずに DPH ライブラリを使ったプログラムをビルドしよ
> うとすると、以下のように DPH ライブラリが入っていないことを指摘し、DPH ライブラリ
> を別途インストールするよう促すメッセージが出力されることになります。
>
> $ ghc -threaded -fdph-par -Odph VectTest.hs -with-rtsopts="N"
> <command line>: the dph-prim-par package is not installed.
> To install it: "cabal install dph".
>
> このメッセージにあるように、DPH ライブラリは GHC に同梱されなくなった代わりに近
> いうちに HackageDB上にアップロードされ、"cabal install dph" コマンドを使うことで
> 後からインストールできるようになります。今後 DPH ライブラリを使いたい方は、cabal
> を使って別途インストールするようにして下さい。
>
> なお、(GHC の機能テストの都合上)ソースコードから自分でビルドするのであれば、
> DPH ライブラリ入りの GHC を作ることも可能です。./darcs-all コマンドに --dph オプ
> ションを渡し、DPH ライブラリ及び依存パッケージを取ってくるよう指定すれば DPH ライ
> ブラリ入りの GHC を作ることができると思います。
>
> darcs get --lazy http://darcs.haskell.org/ghc-7.0/ghc/
> ./darcs-all --dph get --lazy
> perl boot
> make
> make install (あるいは make binary-dist)
>
>
> 目につく変更はこのくらいでしょうか? 全ての変更点についていちいち挙げていくとき
> りがないので、その他の変更について興味のある方はリリースノートやマニュアル内の記
> 述などを参考にしてください。
>
>
> http://new-www.haskell.org/ghc/docs/7.0.1/html/users_guide/release-7-0-1.html
MonoLocalBinds の有効化によってこれまでのコードがコンパイルできなくなってしまった場合の対処方法について、追記しておきます。
GADTs や TypeFamilies の使用によって暗黙に有効化される MonoLocalBinds
は、NoMonoLocalBinds を陽に与えることで無効化することができます。ただ、こうして NoMonoLocalBinds
を後から与えてコンパイルしたプログラムでは、型推論がちゃんとうまく働くという保証はないようです。
このため NoMonoLocalBinds と一緒に -fwarn-missing-local-sigs オプションを使い、
-fwarn-missing-local-sigs オプションから出てくる警告メッセージを頼りに型シグネチャを加えるという手順で GHC
7.0.x に対応するようプログラムを書き換える、ことが推奨されています。
http://hackage.haskell.org/trac/ghc/blog/LetGeneralisationInGhc7#HowcanIfixmyprogram
GHC 7.0.3 がリリースされました。
http://www.haskell.org/ghc/download_ghc_7_0_3
http://www.haskell.org/pipermail/haskell/2011-March/022673.html
今回のリリースは純粋にバグ修正を目的としたものです。
http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/release-7-0-3.html
http://www.haskell.org/pipermail/glasgow-haskell-users/2011-March/020186.html
挙がっているバグのうち Windows と Mac OS X でのドキュメントの欠落に関するものは、Haskell Platform で独自に修正しています。
http://groups.google.com/group/haskell-jp/browse_thread/thread/2a34be9acfdd069c
なので、現在使っている環境で特に問題ないなら、無理に GHC 7.0.3 を使おうとはせずに今出ている Haskell Platform の方を使ってください。近いうちに GHC 7.0.3 を使用した新しい Haskell Platform も出ると思います。
http://www.haskell.org/pipermail/glasgow-haskell-users/2011-March/020187.html
GHC 7.0.4 がリリースされました。
http://www.haskell.org/ghc/download_ghc_7_0_4
http://www.mail-archive.com/has...@haskell.org/msg23584.html
今回のリリースは純粋にバグ修正を目的としたものです。
http://www.haskell.org/ghc/docs/7.0.4/html/users_guide/release-7-0-4.html
http://permalink.gmane.org/gmane.comp.lang.haskell.glasgow.user/20190
http://hackage.haskell.org/trac/ghc/query?status=closed&group=resolution&milestone=7.0.4
修正されたバグの中にはいくつか致命的なものもあります。ですが、近いうちに GHC 7.0.4 を使った新しい Haskell Platform がリリースされると思うので、Windows や Mac OS X 環境で現状特に問題がないという方は更新を急がずに次の Haskell Platform のリリースを待つと良いでしょう。
http://www.haskell.org/ghc/docs/7.0.4/html/users_guide/using-shared-libs.html
http://www.haskell.org/ghc/docs/7.0.4/html/users_guide/win32-dlls.html
日本語訳:
http://www.kotha.net/ghcguide_ja/7.0.4/using-shared-libs.html
http://www.kotha.net/ghcguide_ja/7.0.4/win32-dlls.html
http://www.haskell.org/ghc/docs/7.0.4/html/libraries/base-4.3.1.0/GHC-Conc.html#v:numSparks
大きな間違いなので、念のため訂正しておきます。
On Tue, 16 Nov 2010 10:13:39 +0900, shelarcy <shel...@gmail.com> wrote:
> * numSparks 関数
>
> GHC.Conc モジュールに、par 関数で生成される spark の id を調べるための numSpark
> 関数が追加されました。
>
> "x `par` numSparks >>= y" のように書くことで、「変数 x を並列化して処理する
> spark の id を、yに渡すことができます。(forkIO などを使ってスレッドを作成した場
> 合の、myThreadId に相当する関数です。)
>
> http://new-www.haskell.org/ghc/docs/7.0.1/html/libraries/base-4.3.0.0/GHC-Conc.html#v:numSparks
> http://www.haskell.org/pipermail/cvs-ghc/2010-July/055060.html
>
> この numSparks があれば、どの spark を使っているかという情報を元にプログラムの
> 並列性を制御できるようになります。結果、speculation パッケージをより効率的なもの
> としたり、Manticore という言語で使われている "Lazy Tree Splitting" のような手法を
> Haskell 上で実装することが可能になるそうです。
>
> http://hackage.haskell.org/trac/ghc/ticket/4167
> http://hackage.haskell.org/package/speculation
>
> http://manticore.cs.uchicago.edu/
> http://people.cs.uchicago.edu/~jhr/papers/2010/icfp-lts.pdf