タグ GHC
人気順 10 users 50 users 100 users 500 users 1000 usersApple Silicon MacでのHaskell/GHCの現状・2021年末編 - Qiita
この記事は Haskell Advent Calendar 2021 の21日目の記事です。 昨年発表されたApple Silicon (Arm) Macは、今年も新製品と新チップ “M1 Pro/Max” が登場し、ますます勢いを増しています。Mac使いの皆さんはもう手にされましたか? 新しいアーキテクチャーにはハードウェアだけではなくソフトウェアの対応も重要です。... 続きを読む
GHCのIOマネージャの歴史と僕の苦悩 - あどけない話
これは、Haskell Advent Calendar 2021 の8日目の記事です。 Haskellのコンパイラとして事実上一択となったGHCには、「軽量スレッド」が実装されています。軽量スレッドは、ネイティブスレッドよりも軽量なスレッドで、他の言語では「グリーンスレッド」とも呼ばれています。Haskellerが並行プログラミングをするときは... 続きを読む
GHCのバックエンドについて | 雑記帳
先日リリースされたGHC 9.2.1で、64ビットArm(AArch64)向けのネイティブコード生成器(Native Code Generator; NCG)が実装された。これを機会にGHCのバックエンドについて簡単にまとめてみる。 概略 GHCでHaskellプログラムをコンパイルすると、いくつかの中間言語を経て最終的には機械語が出力される。 この工程の最... 続きを読む
Haskell でのデバッグ手法あれこれ | 雑記帳
プログラムにバグはつきものです。強力な型システムを備えている 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 をインストールして下さい。インタープリ... 続きを読む