タグ

GHCに関するruiccのブックマーク (68)

  • Haskellコードの高速化

    Haskellで速いコードを書くためのヒントを無秩序に集積したもの。環境としてはGHCを想定する。私は高速化について詳しい訳ではないが、思い付いたことはなんでもかんでも書くように心がけたので、運が良ければ何か役に立つ情報があるかもしれない。 並列処理のパフォーマンスについてはこの文章では触れない。まったく経験がないので。同じ理由で、浮動小数点数を多用した数値計算コードの効率化と、書き換え規則を多用する高水準の最適化も扱わない。 お願い: 文中に間違いや分かりにくい部分があれば指摘いただけると有難いです。また、他に載せた方が良さそうな最適化テクニックや、その他の改善提案があれば教えてください。掲示板またはメールまたはTwitter(@mkotha)までお願いします。 目次 基的なこと 遅延評価の計算量見積もりの方法と、GHCの内部に依存しないテクニック集。入門書を読んだけれども、Haske

    ruicc
    ruicc 2010/12/24
    ghc内部の理解に。
  • 4.20. フラグ早見表

    この節はGHCのコマンド行フラグの早見表である。それぞれのフラグについて、動的/静的の区別(4.3. 静的オプション、動的オプション、モード指定オプションを見よ)と逆のフラグ(存在すれば)も載せられている。

    ruicc
    ruicc 2010/12/12
    ghcフラグ
  • GHCのビルド - あどけない話

    GHC 7.0.1がリリースされました。しかし、このページにも書いてあるように、cabal-install が古いとバイナリパッケージのインストールは失敗します。 でも、自分でビルドすれば、あなたがインストールしている cabal-install は使わないので、大丈夫です。 ビルドして、/ghc7.0.1 というディレクトリにインストールする方法は、以下の通りです。 まず、/ghc7.0.1 というディレクトリを作ります。 % sudo mkdir /ghc7.0.1 % sudo chown YOU /ghc7.0.1 次に、tar で展開したディレクトリで、ビルドします。 % cd ghc-7.0.1 % ./configure --prefix=/ghc7.0.1 % make % make install C のヘッダなどが足りなくて make が止まったら、エラーメッセージを見

    GHCのビルド - あどけない話
    ruicc
    ruicc 2010/11/16
    GHC7.0.1とHaskell-Platform2010.2.0.0との共存とか。
  • 1.5. Release notes for version 7.0.1

    The significant changes to the various parts of the compiler are listed in the following sections. There have also been numerous bug fixes and performance improvements over the 6.12 branch. GHC now defaults to the Haskell 2010 language standard. Libraries are not quite so straightforward. By default, GHC provides access to the base package, which includes the Haskell 2010 libraries, albeit with a

  • 7.19. アサーション

    標準Haskellのコードでアサーションを使いたいなら、次のような関数を定義することができるだろう。 assert :: Bool -> a -> a assert False x = error "assertion failed!" assert _ x = x これは動作するが、発生するエラーメッセージは全く役に立たない。アサーションが失敗した。よろしい。しかしどこのどれが失敗したのだ? 一つの解決策は、assertを拡張して、エラーメッセージに含める文字列を受け取るようにし、例えばソース中でassertが使われている場所にソース位置を挿入する前処理器と組み合わせることである。 GHCはこれに対して救いの手を差しのべる。これら全てを代わりに行うことによって。ユーザのソースにおいてassertが使われているところ全てに対して、以下の処理を行う。 kelvinToC :: Double

    ruicc
    ruicc 2010/11/10
    ghcではControl.Exception.assertの適用を見つけると、ファイル名と行番号を出力するように書き換える
  • 2.6. GHCiを起動する

    GHCiはghciまたはghc --interactiveというコマンドで起動される。一つまたは複数のモジュールやファイル名をコマンド行から指定することもできる。そうすると、GHCiは、プロンプトで:load moduleと入力されたときと同じように(2.7. GHCiのコマンド群を見よ)、指定されたモジュールやファイル(と、それらが依存するモジュール)をロードする。例えば、GHCiを起動して、プログラム(Main.hsに最上位モジュールがある)をロードするには、次のように打てば良い。 $ ghci Main.hs GHCが受け付けるコマンド行オプション(第4章. GHCを使うを見よ)の大部分は対話的モードでも有効であり、そうでないオプションは大抵明らかである。 大部分のパッケージ(4.9.1. パッケージを使う を見よ)は追加のフラグを指定することなく利用可能であり、初めて必要になったと

    ruicc
    ruicc 2010/11/10
    同名モジュールを持っている複数のパッケージがある場合、:set -hide-package {package-name} として隠せばいいと。もしくはghci立ち上げ時に-hide-packageフラグを用いる。
  • Glasgow Haskell Compiler — The Glasgow Haskell Compiler

    Latest News 1 July 2024 GHC 9.6.6 Released! [download] 10 May 2024 GHC 9.10.1 Released! [download] 16 April 2024 GHC 9.6.5 Released! [download] What is GHC? GHC is a state-of-the-art, open source compiler and interactive environment for the functional language Haskell. Highlights: GHC supports the entire Haskell 2010 language plus a wide variety of extensions. GHC has particularly good support for

  • 栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2

    栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2 The GHC Team 目次 The Glasgow Haskell Compiler License 1. 参考訳 1. GHCの紹介 1.1. GHCを入手する 1.2. メタ情報: ウェブサイト、メーリングリストなど 1.3. GHCのバグを報告する 1.4. GHCのバージョン番号付け規則 1.5. Release notes for version 7.8.1 1.5.1. Highlights 1.5.2. Full details 1.5.2.1. Language 1.5.2.2. Compiler 1.5.2.3. GHCi 1.5.2.4. Template Haskell 1.5.2.5. Runtime system 1.5.2.6. Build system 1.5.3. Lib