The Haskell programming language community. Daily news and info about all things Haskell related: practical stuff, theory, types, libraries, jobs, patches, releases, events and conferences and more...
GHC の並列化について調査していたところ、 GHC のバージョン 6 と 7 との間に並列化の方法に関わる大きな変更が入っていたことを知りました。 GHC には、 Haskell プログラムを SMP (Symmetric Multiprocessing, 対称型マルチプロセッシング) 環境で効率よく実行するための拡張機能が含まれており、 "Parallel Haskell" と呼称されています。この Parallel Haskell の実装には、 Spark と呼ばれる構造が使用されます。 Haskell コード上で、以下の様に記述すると: x `par` y GHC のランタイムに、 「 x を(できれば)並列に評価しながら、y の値を評価して返してくれ」 と伝える効果があります。例えば、 y の評価の過程で x の値が必要ならば、 あらかじめ x を並行して評価するようにランタイム
プログラムを実行する際、コマンド行の+RTS ... -RTSの間で。(4.17.1.1. コマンド行でRTSオプションを設定する) コンパイル時に、--with-rtsoptsを使って。(4.17.1.2. コンパイル時にRTSオプションを設定する) 環境変数GHCRTSで。(4.17.1.3. RTSOPTSでRTSオプションを設定する) ランタイムシステムの“フック”を上書きすることによって。(4.17.1.4. RTSの振る舞いを変更するためのフック) リンク時に-rtsoptsフラグを適切に設定していたなら、プログラムを実行するときにRTSオプションをコマンド行で与えることができる。 Haskellプログラムの実行が開始されるとき、RTSはコマンド行引数から+RTSと-RTSで囲まれた部分を自分用に抽出する。以下のような例を考える。 $ ghc prog.hs -rtsopts
GHCのコンパイル速度は、お世辞にも速いとは言えないのだが、一番イライラするのはリンクが遅いこと。これは GNU ld が遅いからである。という訳で、速いと言われる gold を使うためのメモ。 GHC 7.6.3 までは gold が使えない。なぜなら、GNU ld 固有のオプションである --hash-size と --reduce-memory-overheads がハードコードされており、これらを gold がサポートしてないからだ。 GHC 7.8 以降からは、リンカーに応じてオプションを変えるようになる。僕は GHC head で試した。以下のいずれかをやると、gold が使える。 ld のシンボリックリンクを ld.gold に向ける (Linux で binutils-gold をインストールするとこうなる。) cabal に --with-ld=ld.gold を指定する
In my opinion, GHC may very well be the best documented open source project. And despite this, lots of folks still ask “How can I get started?” or “Has anyone written a guide on how to contribute to GHC?” and similar questions. The goal of this article is two fold: Get the message out that there is documentation for getting started with hacking on GHC and contributing back to GHC HQ. Provide a tem
ThreadScope is a tool for performance profiling of parallel Haskell programs. The ThreadScope program allows us to debug the parallel performance of Haskell programs. Using ThreadScope we can check to see that work is well balanced across the available processors and spot performance issues relating to garbage collection or poor load balancing. Getting Started Have gtk on your machine? (Note that
理解が深まれば、適宜更新します。 G-machine グラフ簡約のためのスタックマシン 関数適用が連なる spine (背骨)を持ち、愚直にカリー化を実現する 簡約のたびに、それぞれの項を更新 ローカル関数はラムダリフティングしてグローバル関数に直す必要がある ラムダリフティングされた関数はスーパーコンビネータと呼ばれる Gコード push/enter 方式 Spineless G-machine Spineless: 引数が充足している関数は、一気に呼び出す このころまでに標準の G-machine も spineless だったらしい サンクは共有されているときだけ更新 (これが重要) G コードに対して 5 つの新しいコードを追加 push/enter 方式 Spineless Tagless G-machine Tagless: 統一された書式になって、先頭の tag がなくなった
Apakah Anda ingin mengetahui lebih lanjut tentang Slot UUS777 dan apa yang membedakannya dari platform perjudian online lainnya? Dalam artikel ini, kami akan mengeksplorasi fitur, aspek unik, dan kesalahpahaman umum seputar Slot UUS777. Dari manfaat bermain hingga kemungkinan kekurangan, kami akan mencakup semua yang perlu Anda ketahui sebelum memulai. Jika Anda penasaran tentang apa yang ditawark
Note Some of the information here is outdated. Follow the installation instructions in the README. Using a virtual machine is no longer recommended and the ghcjs-build repository is no longer maintained. Updated examples can be found in the ghcjs-examples repository, or click the source link. The safety specifications in the JavaScript foreign function interface have been changed slightly, see GHC
Note Some of the information here is outdated. Follow the installation instructions in the README. Using a virtual machine is no longer recommended and the ghcjs-build repository is no longer maintained. Updated examples can be found in the ghcjs-examples repository, or click the source link. The safety specifications in the JavaScript foreign function interface have been changed slightly, see GHC
Intel Functional Language compiler (Was: PSA: GHC can now be built with Clang) Ryan Newton rrnewton at gmail.com Wed Jul 3 20:48:08 CEST 2013 Previous message: [commit: base] master: Remove uses of RecordWildCards in GHC.Event.TimerManager (1f81187) Next message: Intel Functional Language compiler (Was: PSA: GHC can now be built with Clang) Messages sorted by: [ date ] [ thread ] [ subject ] [ aut
What I Wish I Knew When Learning Haskell Version 2.5 Version This is the fifth major draft of this document since 2009. HTML Version Screen PDF Printable PDF EPUB Version Kindle Version Pull requests are always accepted for changes and additional content. This is a living document. The only way this document will stay up to date is through the kindness of readers like you and community patches and
今年もよろしくおねがいします. 大晦日にghcjsのREADMEが更新され,ghc-7.6ベースになったり,これまで煩雑だったインストール作業がスクリプト化されたりするなど,いろいろと変更があった.実にはタイミングの悪いことに,このREADME更新が行われる直前,半年振り?くらいにghcjsをビルドしてみようか*1と作業し初めてしまっており,何かインストール手順に記載されてないパッケージに依存するようになってるなぁとかで試行錯誤したりしてイロイロとハマっていたのだが,なんのことはない,ちょっと大きな変更の過渡状態で作業していたと知ってガックリ. で,例によって?hardened profileなGentooだとインストーラスクリプトそのまま走らせてもビルドエラーで入らないので,どうしたかについて備忘録として記載しておく.ちなみに実験環境はVirtualBox上のGentoo amd64 h
これまで GHC では、スタックトレースを取ることが有効なデバッグ方法ではなかった。 なぜなら遅延評価では、(再帰であってもなくても)末尾呼び出しは単なるジャンプになるから、スタックを使わないのである。スタックに戻る場所を積むのは、case と of の中で評価される式だけだ。(つまり、ここは正格に評価される。) この問題を解決するために GHC 7.4.2 から、わざわざスタックにログを残して、スタックトレースが取れるようになった。すなわち、最新の Haskell Platform をインストールしていれば、この機能を使えるということだ。 例として、以下のプログラムを考えよう。 module Main where main :: IO () main = print $ foo 3 + 1 foo :: Int -> Int foo x = x * 2 + bar x bar :: In
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く