問題タブ [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.
macos - OSXにALUTをインストールする
cabal パッケージ turing-music のインストールに興味がありますが、ALUT (http://hackage.haskell.org/package/ALUT) への haskell バインディングに必要な macports に ALUT ライブラリが見つかりません。
cabal パッケージ ALUT をコンパイルするために、OSX 10.6.3 の ALUT 開発ライブラリはどこにありますか。
haskell - CabalライブラリをビルドしようとしたときにGHCビルドエラーが発生しました
システムにCabalをビルド/インストールしようとしていますが、次の依存関係エラーが発生しています。
GHC 6.6.1以降に「filepath」パッケージが付属していることを知っている限り、GHC 7.0.1をインストールしていますか?そして、私は「ベース」が何を指しているのか正確にはわかりませんか?
haskell - GHC IOマネージャーはどのIOアクティビティをサポートしていますか?
私はGHCの新しいIOマネージャーについて読んでいます。これは、非同期イベント通知を使用し、I/Oのブロックを回避して高スループットを実現します。
新しい非同期IOコードによる管理の対象となるIOアクティビティはどれですか?ファイルの読み取りと書き込み、およびネットワークアクティビティ?データベースアクセス?マネージャーがブロッキングに頼らなければならない種類のIOはありますか?
haskell - Haskellのリスト内包表記の任意の入力セット
Haskellでリスト内包表記で任意の入力セットを使用するにはどうすればよいですか?
私が求めているものの例を示します。
haskell - テキストライブラリを使用するプロファイリングを使用してプログラムを作成するにはどうすればよいですか?
テキストライブラリにリンクするプログラムを作成しています。プロファイリングせずにビルドすると、すべて正常に機能します。
プロファイリングを使用してビルドすると、次のエラーが発生します。
カバールを介してtext-0.11.0.1のプロファイリングバージョンをインストールしましたが、見つからないようです。text-0.10.0.0はHaskellプラットフォームでインストールされたと思います。Aghc-pkg list text
は私に次のことを与えます:
text-0.11.0.1のプロファイリングバージョンを使用してこのプログラムをコンパイルするにはどうすればよいですか?
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はコストセンターとして表示されません。
optimization - Haskell における自動並列処理の現状
重複の可能性:
Haskell でのマルチコア プログラミングの状況は?
特にGHCでのステータスは?まだ人気がありますか、それともまだ実験段階ですか?
コンパイラは、いつ、どのように並列化するかを決定する際に、どのくらい慎重/きめ細かいですか? ランタイムはスレッドプールのサイズを適切に選択しますか、それともコマンド ラインで指定する必要がありますか?
haskell - GHCでまだ実装されていないHaskellで可能な最適化?
したがって、純粋な関数型言語には、純粋なコードと不純なコードが明確に分離されているため、独自のクラスの可能性があります。Nested DataParallelismやStreamFusionのように、Haskellで実装するのがいくらか簡単な機能をいくつか見てきました。
私の質問は、実現可能性/シンプルさの点でHaskellに多かれ少なかれユニークであるが、まだ実装されていない他の改善/最適化は何ですか?(私は主にGHCに関心がありますが、他の人のことも聞くのが大好きです)
haskell - 格納可能な空データ宣言
C ライブラリの Haskell ラッパーを作成しようとしています。基礎となる構造体は複雑すぎて明示的な型として表現できず、実際には C 関数間の受け渡し以外には使用しないのでEmptyDataDecls
、GHC に解決してもらうために使用しています。
必要なのは、これらのデータ型のいずれかへのポインターですが、それを使用して作成しようとするalloca
と、データが type ではないと不平を言いStorable
ます。例えば:
GHC は、 のインスタンスがないと言って、これをコンパイルしませんStorable Struct
。私はそれを自分で実装できます:
しかし、それは目的を打ち負かすことに近づいています-構造体の内容を気にしないのであれば、そのようなものを定義する必要はありません。
クラスPtr
がStorable
. したがって、呼び出す前にpeek
onを使用することで、目的を達成できます。ptr
get_struct
ただし、これはハックのように感じます。
Storable
インスタンスを定義せずに空のデータ宣言を考慮する方法はありますか?
performance - なぜ `(map digitToInt) 。show`はとても速いですか?
非負Integer
を数字のリストに変換することは、一般的に次のように行われます。
文字列変換を行わずにタスクを実行するためのより直接的な方法を見つけようとしていましたが、より高速なものを思いつくことができません。
私がこれまで試してきたこと:
ベースライン:
StackOverflow に関する別の質問からこれを取得しました。
自分で巻こうとしている:
これは に触発されshowInt
ましたNumeric
:
さてベンチマーク。注: を使用して評価を強制していfilter
ます。
これが参考です。今ではdigits2
:
それは3.46倍長いです。
digits3
4.89倍遅いです。楽しみのために、 revDigits3 のみを使用して、reverse
.
奇妙なことに、これはさらに遅く、5.24倍遅いです。
そして最後のもの:
これは10.43倍遅いです。
算術演算とコンスのみを使用すると、文字列変換を伴うものよりも優れているという印象を受けました。どうやら、私には理解できない何かがあるようです。
それで、どんなトリックですか?なぜdigits
そんなに速いのですか?
GHC 6.12.3 を使用しています。