問題タブ [ghc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
881 参照

macos - OSXにALUTをインストールする

cabal パッケージ turing-music のインストールに興味がありますが、ALUT (http://hackage.haskell.org/package/ALUT) への haskell バインディングに必要な macports に ALUT ライブラリが見つかりません。

cabal パッケージ ALUT をコンパイルするために、OSX 10.6.3 の ALUT 開発ライブラリはどこにありますか。

0 投票する
1 に答える
710 参照

haskell - CabalライブラリをビルドしようとしたときにGHCビルドエラーが発生しました

システムにCabalをビルド/インストールしようとしていますが、次の依存関係エラーが発生しています。

GHC 6.6.1以降に「filepath」パッケージが付属していることを知っている限り、GHC 7.0.1をインストールしていますか?そして、私は「ベース」が何を指しているのか正確にはわかりませんか?

0 投票する
2 に答える
2045 参照

haskell - GHC IOマネージャーはどのIOアクティビティをサポートしていますか?

私はGHCの新しいIOマネージャーについて読んでいます。これは、非同期イベント通知を使用し、I/Oのブロックを回避して高スループットを実現します。

新しい非同期IOコードによる管理の対象となるIOアクティビティはどれですか?ファイルの読み取りと書き込み、およびネットワークアクティビティ?データベースアクセス?マネージャーがブロッキングに頼らなければならない種類のIOはありますか?

0 投票する
1 に答える
316 参照

haskell - Haskellのリスト内包表記の任意の入力セット

Haskellでリスト内包表記で任意の入力セットを使用するにはどうすればよいですか?

私が求めているものの例を示します。

0 投票する
1 に答える
309 参照

haskell - テキストライブラリを使用するプロファイリングを使用してプログラムを作成するにはどうすればよいですか?

テキストライブラリにリンクするプログラムを作成しています。プロファイリングせずにビルドすると、すべて正常に機能します。

プロファイリングを使用してビルドする、次のエラーが発生します。

カバールを介してtext-0.11.0.1のプロファイリングバージョンをインストールしましたが、見つからないようです。text-0.10.0.0はHaskellプラットフォームでインストールされたと思います。Aghc-pkg list textは私に次のことを与えます:

text-0.11.0.1のプロファイリングバージョンを使用してこのプログラムをコンパイルするにはどうすればよいですか?

0 投票する
2 に答える
229 参照

haskell - インライン化された関数は引き続き.profファイルに表示されます

私はいくつかのコードを最適化する方法を理解しようとしています。ここにあります:



ghc 6.12.1(i486マシン上のubuntu linux)でコンパイルする場合

ghc --make -O2 Vec.hs -prof -auto-all -fforce-recomp

実行します

Vec + RTS -p

Vec.profファイルを見ると、



関数vxとvyがかなりの時間を費やしていることがわかります。

何故ですか?SPECIALIZE INLINEプラグマを使用すると、これらの機能がなくなると思いました。

非多型を使用する場合

関数vx、vy、vzはコストセンターとして表示されません。

0 投票する
3 に答える
2308 参照

optimization - Haskell における自動並列処理の現状

重複の可能性:
Haskell でのマルチコア プログラミングの状況は?

特にGHCでのステータスは?まだ人気がありますか、それともまだ実験段階ですか?

コンパイラは、いつ、どのように並列化するかを決定する際に、どのくらい慎重/きめ細かいですか? ランタイムはスレッドプールのサイズを適切に選択しますか、それともコマンド ラインで指定する必要がありますか?

0 投票する
3 に答える
1602 参照

haskell - GHCでまだ実装されていないHaskellで可能な最適化?

したがって、純粋な関数型言語には、純粋なコードと不純なコードが明確に分離されているため、独自のクラスの可能性があります。Nested DataParallelismStreamFusionのように、Haskellで実装するのがいくらか簡単な機能をいくつか見てきました。

私の質問は、実現可能性/シンプルさの点でHaskellに多かれ少なかれユニークであるが、まだ実装されていない他の改善/最適化は何ですか?(私は主にGHCに関心がありますが、他の人のことも聞くのが大好きです)

0 投票する
2 に答える
822 参照

haskell - 格納可能な空データ宣言

C ライブラリの Haskell ラッパーを作成しようとしています。基礎となる構造体は複雑すぎて明示的な型として表現できず、実際には C 関数間の受け渡し以外には使用しないのでEmptyDataDecls、GHC に解決してもらうために使用しています。

必要なのは、これらのデータ型のいずれかへのポインターですが、それを使用して作成しようとするallocaと、データが type ではないと不平を言いStorableます。例えば:

GHC は、 のインスタンスがないと言って、これをコンパイルしませんStorable Struct。私はそれを自分で実装できます:

しかし、それは目的を打ち負かすことに近づいています-構造体の内容を気にしないのであれば、そのようなものを定義する必要はありません。

クラスPtrStorable. したがって、呼び出す前にpeekonを使用することで、目的を達成できます。ptrget_struct

ただし、これはハックのように感じます。

Storableインスタンスを定義せずに空のデータ宣言を考慮する方法はありますか?

0 投票する
2 に答える
1202 参照

performance - なぜ `(map digitToInt) 。show`はとても速いですか?

非負Integerを数字のリストに変換することは、一般的に次のように行われます。

文字列変換を行わずにタスクを実行するためのより直接的な方法を見つけようとしていましたが、より高速なものを思いつくことができません。

私がこれまで試してきたこと:

ベースライン:

StackOverflow に関する別の質問からこれを取得しました。

自分で巻こうとしている:

これは に触発されshowIntましたNumeric:

さてベンチマーク。注: を使用して評価を強制していfilterます。

これが参考です。今ではdigits2

それは3.46倍長いです。

digits34.89倍遅いです。楽しみのために、 revDigits3 のみを使用して、reverse.

奇妙なことに、これはさらに遅く、5.24倍遅いです。

そして最後のもの:

これは10.43倍遅いです。

算術演算とコンスのみを使用すると、文字列変換を伴うものよりも優れているという印象を受けました。どうやら、私には理解できない何かがあるようです。

それで、どんなトリックですか?なぜdigitsそんなに速いのですか?

GHC 6.12.3 を使用しています。