タグ GHC
人気順 5 users 50 users 100 users 500 users 1000 usersHaskell でのデバッグ手法あれこれ | 雑記帳
プログラムにバグはつきものです。強力な型システムを備えている Haskell でもそれは同じです。この記事では、 Haskell プログラムのデバッグ手法をいくつか挙げてみます。 なお、使用している GHC は 8.2.2 です。より新しいバージョンで追加されるであろうより便利な機能は、この記事の対象外です。 心構え:処理を分割せよ Haskell は純粋な言語です。IOが絡まない関数であれば、同... 続きを読む
Haskellのパーサライブラリまとめ - Qiita
パーサライブラリの現状 Haskellではパーサライブラリは様々なところで使用されています.例えば,Haskellでのデファクト的なJSONパーサライブラリaesonは,JSONデータのパースにattoparsecというライブラリを使用しています.GHCはHaskellプログラムのパースにalex/happyというレクサーとパーサを利用しています.HTTPライブラリでは,parsecを軽量パーサと... 続きを読む
スレッドリーク - あどけない話
Haskell これは Haskellスペースリーク Advent Calendar 2015 の14日目の記事です。 スレッドリークとは一般的に、終了させることを忘れたスレッドが残り続けることを言う。これは終了させ忘れたのが悪いという他ない。一方で、GHC では、スレッドを終了させたにもかかわらず、スレッドのメモリ領域がCGに回収されない事態が起こりうる。この記事は、この二番目のスレッドリークに... 続きを読む
Stackでやる最速Haskell Hello world! (GHCのインストール付き!) - Qiita
昨日第23回Haskellもくもく会 @ 朝日ネットで初めてstackを触ったのですが、 あまりにも簡単・高速にパッケージ作りの準備ができたので、やったことを共有したいと思います。 GHCのインストールまでやってくれるので、これからHaskell始めます!みたいな人にもオススメです。 stack自体が何かは @tanakh さんのHaskellのビルドツール"stack"の紹介をご覧ください。 一... 続きを読む
【悲報】SIMカード会社がハッキングされ、日本の全ガラケー、スマホの情報が米国と英国に監視されていた事が判明 : IT速報
アメリカの国家安全保障局「NSA」とイギリスの「GHC」が世界一のSIMカードメーカーである「Gemelto」のネットワークをハックしていたとエドワード・スノーデン氏が英ニュースサイトに暴露しています。 携帯電話の利用者情報を登録する「SIMカード」を製造する企業のネットワークに米英の情報機関が侵入し、通信の秘密を守る暗号鍵を入手していたと英ニュースサイトが19日報じた。 日本を含む世界中の数十億... 続きを読む
マルチコアでスケールするようになった Haskell | 最新の技術・取り組み | IIJ
Glasgow Haskell Compiler(GHC)は、関数型言語Haskellの主要コンパイラです。GHCは(並列性に加えて)並行性を主要な目的として長年開発されてきました。そのため、GHCには、 軽量スレッド(グリーンスレッド) マルチコア用の軽量スレッド・スケジューラ マルチコア上での効率的なメモリアロケータ マルチコア用のガベージコレクタ など、マルチコアで簡潔に並行性を実現するため... 続きを読む
OutsideIn(X) と OCaml - Oh, you `re no (fun _ → more)
OCaml, HaskellHaskell の実装 GHC の新しめのバージョンでは 多相let の型付けが今までの HM (Hindley Milner) 方式から新しい OutsideIn(X) に変わっています。(言語拡張でどうたらあるらしいがシラネ) 詳しい動機はまあいろいろあるみたいですが GADT とか Type family の型推論の効率とか完全性とかそういう方面らしいです。正直両... 続きを読む
GHC でスタックトレース - あどけない話
Haskellこれまで GHC では、スタックトレースを取ることが有効なデバッグ方法ではなかった。なぜなら遅延評価では、(再帰であってもなくても)末尾呼び出しは単なるジャンプになるから、スタックを使わないのである。スタックに戻る場所を積むのは、case と of の中で評価される式だけだ。(つまり、ここは正格に評価される。)この問題を解決するために GHC 7.4.2 から、わざわざスタックにログ... 続きを読む
Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話
Haskell命令型言語の Java や Ruby がユーザスレッドからカーネルスレッドに移行したのとは対照的に、関数型言語の Erlang や Haskell では軽量なユーザスレッドを提供することに成功しています。僕は、この違いが何から生じているのか理解したいと思っています。ここには、これまで調べたことをメモしておきます。軽量なユーザスレッドは Erlang が有名ですが、Haskell (G... 続きを読む
2011年に Haskell を始める人のために - あどけない話
適切な一歩を踏み出すか否かは、大きな違いを生みます。この記事では、2011年に Haskell を始める人のために、著者が考える最適な入門方法を示します。Haskell Platform をインストールする昔人気のあった Hugs は、もう保守されていません。現在は、GHC の時代です。GHC とライブラリをパッケージ化した Haskell Platform をインストールして下さい。インタープリ... 続きを読む