GHC 7.0.2 リリース

63 views
Skip to first unread message

shelarcy

unread,
Mar 3, 2011, 12:52:36 PM3/3/11
to haske...@haskell.jp, haske...@googlegroups.com
こんにちは。

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/

shelarcy

unread,
Mar 3, 2011, 1:05:25 PM3/3/11
to haske...@googlegroups.com
アーカイブ先が変わったので、これだけだと分かり難いかもしれませんね。


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 機能について全く説明のない古いものとなってしまっています。)

shelarcy

unread,
Mar 5, 2011, 11:29:33 PM3/5/11
to haske...@googlegroups.com
On Fri, 04 Mar 2011 02:52:36 +0900, shelarcy <shel...@gmail.com> wrote:
> * 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 版の好きな方を選んで使ってみてください。


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) への移行をためらっていた方は、この機会に乗り換えるべきなんでしょうね……。

shelarcy

unread,
Mar 11, 2011, 10:25:50 AM3/11/11
to haske...@googlegroups.com
2011年3月4日3:05 shelarcy <shel...@gmail.com>:

> あと、Cabal の test
> 機能にいくつかの修正が加わっています。現在の実装での使い方について知りたい場合には、こちらのドキュメントを参照してください。
>
> http://darcs.haskell.org/ghc-7.0/packages/Cabal/doc/Cabal.markdown
>
> (このファイルは Cabal のドキュメントの元となるものだと思うのですが、おそらく手違いがあって、現在の Cabal のドキュメントは、新しい
> test 機能について全く説明のない古いものとなってしまっています。)

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

shelarcy

unread,
Mar 12, 2011, 5:44:03 AM3/12/11
to haske...@googlegroups.com
こちらでは書いていなかったので、念のためメールしておきますね。

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

shelarcy

unread,
Mar 14, 2011, 3:56:27 AM3/14/11
to haske...@googlegroups.com
2010年11月16日10:13 shelarcy <shel...@gmail.com>:
> * GADTs や型族(TypeFamilies)を使用する場合の、MonoLocalBinds の有効化
>
>  前のメールで書いたように、GHC 7.0.1 では "OutsideIn(X): Modular type inference
> with local assumptions" という論文のアイデアに基づいて型検査器が書き直されました。
> この結果、GADTs や型族を利用する場合には MonoLocalBinds が強制的に有効化されてし
> まうようになったので注意して下さい。(先のメールとは違い、関数従属性はこの対象か
> ら外されました。)
>
> http://www.sampou.org/cgi-bin/w3ml.cgi/haskell-jp/msg/585
> http://www.haskell.org/pipermail/cvs-ghc/2010-September/055894.html
> http://www.haskell.org/pipermail/cvs-ghc/2010-September/056216.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

shelarcy

unread,
Mar 27, 2011, 4:23:25 PM3/27/11
to haske...@googlegroups.com
こんにちは。

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

shelarcy

unread,
Jun 15, 2011, 9:24:47 AM6/15/11
to haske...@googlegroups.com
こんにちは。

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 のリリースを待つと良いでしょう。

shelarcy

unread,
Jun 26, 2011, 12:58:35 AM6/26/11
to haske...@googlegroups.com
あとで気がついたのですが、共有ライブラリのドキュメントが更新され、現在の GHC 7.0.x に沿った内容となっていますね。
というわけで、Linux 以外の環境で共有ライブラリを使いたい方は、7.0.3 以前を使っていても 7.0.4 のドキュメントを参照した方が良いと思います。

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

shelarcy

unread,
Sep 2, 2011, 3:41:30 AM9/2/11
to haske...@googlegroups.com
numSparks が返すのは spark の id ではなくて、spark pool にある spark 数ですね。

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

Reply all
Reply to author
Forward
0 new messages