1

テンプレート Haskell を使用した GADT の生成に問題があります。問題は、コードを完全にコンパイルできないことです。ファイルのロード時に GHCI が終了せず、ghc プロセスが大量のメモリと CPU を使用します (2.4GB、50~70%)。

私はそれがまだ起こる最小限の例を作ろうとしました。[| |]オックスフォード表記 ( ) を使用するか、TH データ型を手動で適用して関数を作成するかは問題ではありません。次の単純なモジュールを検討してください。

{-# LANGUAGE GADTs, TemplateHaskell #-}
module Test where
$( [d| data Test a where
         T :: Test String
     |] )

Haskell Platform for x64 の OSX Mountain Lion で GHC 7.4.2 を使用しています。

なぜこれが起こるのか誰にも分かりますか?多分私はいくつかのコードを間違って使用していますか?

4

1 に答える 1

0

GHC 7.4.2 32ビットを搭載した32ビットUbuntuマシンでは、コードが正しく実行されることがわかりました。だから私の推測では、問題はOSまたはプロセッサアーキテクチャの違いにあると思いました。

32ビットHaskellプラットフォームをインストールした後、コードがコンパイルされます。これはコンパイラのバグだと思います。これについてもバグを報告しようと思います。これはGHCまたはテンプレートhaskellで行う必要がありますか?

于 2013-01-25T16:15:08.403 に答える