タグ

GHCに関するclavierのブックマーク (14)

  • GHCのバックエンドについて | 雑記帳

    先日リリースされたGHC 9.2.1で、64ビットArm(AArch64)向けのネイティブコード生成器(Native Code Generator; NCG)が実装された。これを機会にGHCのバックエンドについて簡単にまとめてみる。 概略 GHCでHaskellプログラムをコンパイルすると、いくつかの中間言語を経て最終的には機械語が出力される。 この工程の最後の部分を「バックエンド」と呼ぶ。 GHCには Native Code Generator (-fasm)LLVM backend (-fllvm)unregisterised via-C backend の3種類のバックエンドが存在する。このほか、バイトコードインタープリターと-fno-codeもデータ型的にはバックエンドの一種として扱われている。(参照:compiler/GHC/Driver/Backend.hs) Native C

  • https://www.cs.gunma-u.ac.jp/~hamana/Papers/ppltut.pdf

  • これから Haskell を書くにあたって - Speaker Deck

    2016/2/14 開催の第一回 hs.hs 勉強会で用いたスライドです。 流れは以下の通りです。 1. はじめに 自己紹介や発表の目的について 2. GHC 7.8 からの変更点 GHC 7.8 の前後で起きたライブラリの変化と、その変化への対処法について 3. Haskell が遅いと言われるワケとか 遅延評価や各種データ構造の内部表現に起因する諸問題と、その対処法について 4. 知らないと損する言語拡張たち 型の表現力を高めたり、計算速度を向上させる種々の言語拡張について 5. FFI の話 Haskell での FFI の扱いと、身近なライブラリから見る実装例について(※一部抜粋) 6. おまけ(その他便利グッズの話) あるとコーディングがある程度便利になる言語拡張について 一部訂正あり: http://qiita.com/func-hs/items/51b314a2323b83

    これから Haskell を書くにあたって - Speaker Deck
  • Haskell開発環境の構築 (Linux編) - Qiita

    はじめに この記事では、以下二点を目標に話を進める。 Linux 上に最低限の Haskell 開発環境を構築する vim で ghc-mod による入力補完が使えるようにする 以下の点は扱わない。 cabal ファイルの書き方 stack の使い方 vim プラグインの導入/使い方 stack 導入 Haskell 環境構築のため、まずは stack を導入する。 stack は最近登場した Haskell のパッケージ管理/ビルドツール1で、色々便利なので入れておく。 How To Install の項を参考に stack をインストール https://github.com/commercialhaskell/stack 筆者の利用する Arch Linux では yaourt で導入可能。

    Haskell開発環境の構築 (Linux編) - Qiita
  • 2015年5月のMac + Haskell + IntelliJ IDEAでことはじめる(改) - Qiita

    MacでHaskell+IntelliJ IDEAとなると、当然こちら Haskell - 2015年のMac + Haskell + IntelliJことはじめ、あるいはghcの再インストール にお世話になるわけですが、また状況に変化があったようですので、2015年5月版のアップデートを書いてみたいと思います。 ghcをインストールする brewあるいはHaskell Patformから自力インストールへと変遷を経たghcインストールメソッドですが、最近ではHaskell for Mac OS Xでインストールするのがイケてる感じです。 最新のGHC 7.10.1を含んでますし、cabalも入っていますので便利です。まずはこれをインストールしましょう。 こちらのページから ghc-7.10.1-r0.zipをダウンロードして、zipファイルを解凍したら、ghc-7.10.1という実行ファ

    2015年5月のMac + Haskell + IntelliJ IDEAでことはじめる(改) - Qiita
    clavier
    clavier 2015/05/11
    2015年5月のMac + Haskell + IntelliJ IDEAでことはじめる(改) - Qiita
  • GHC(STB,Cmm,asm) illustrated

    GHC(STG,Cmm,asm) illustrated for hardware persons Takenobu T. Rev. 0.05.0 exploring some mental models and implementations WIP “Any sufficiently advanced technology is indistinguishable from magic.” Arthur C. Clarke NOTE - This is not an official document by the ghc development team. - Please don't forget “semantics”. It's very important. - This is written for ghc 9.0. - Executable binary - Compil

  • 24 Days of GHC Extensions: Rebindable Syntax

    As the first week of 24 Days of GHC Extensions (or as I like to call it, 24 DOGE) comes to an end, it’s with great pleasure that I give the stage to our first guest poster - Benjamin Kovach. Ben has two posts lined up for us, so without further ado, lets look at his first extension. {-# LANGUAGE RebindableSyntax, NoMonomorphismRestriction #-} import Prelude hiding ((>>), (>>=), return) import Data

  • Mac OSX 10.9 (marvericks) に GHC 7.8.2 をインストールする方法 - Qiita

    GHC 7.8.1 の寿命 is 3日間… 型シノニムに bug があり急遽 7.8.2 がリリースになった。https://ghc.haskell.org/trac/ghc/ticket/8978 GHC 7.8 はけっこう新機能がはいったようで(pattern synonyms とか)けっこう界隈の盛り上がりを感じてたのではやくつかってみたい。 そのうち brew でもインストールできるようになるとおもう。(formula にパッチおくろうとしたけどぼくの力量だといろいろつらぽよが発生した) $PATH のこととか cabal のこととか知らない人はたぶんこの記事は関係ない。homebrew が対応してくれるのでそれを待ったほうが良いと思う。 GHC をいれる 公式がバイナリ配布してるのでありがたい。 https://www.haskell.org/ghc/download_ghc_7

    Mac OSX 10.9 (marvericks) に GHC 7.8.2 をインストールする方法 - Qiita
  • Lensを使うぜ! - モナドとわたしとコモナド

    パッケージをインストールするぜ!そしてさっそくghciを起動するぜ! $ cabal install lens $ ghci GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> import Control.Lens Prelude Control.Lens> タプルから値を取り出すぜ! > (1,1,4,5,1,4) ^. _3 4 リストの要素も取り出せるぜ!勿論範囲外の値は取れないけどな! > [1,1,4,5,1,4]

    Lensを使うぜ! - モナドとわたしとコモナド
  • Mac OS X 10.9 MavericksにHaskellをインストール - 城陽人の本棚

    Xcodeのインストール Haskell処理系をインストールする前にXcodeが必要なのでAppStoreからXcodeをインストール。 軽量版のCommand Line Tools for Xcodeでも構わないみたいですが、まぁXcodeはあって困らないので一式入れておきました。 現時点の最新版はXcode 5.0.2でした。 ‎「Xcode」をMac App Storeで インストールした後、一度Xcodeを起動してライセンス条項に同意しておきます。 Haskell Platformのインストール GHCコンパイラ単体でインストールするよりも、周辺ツール類もまとめて一式入れてくれるHaskell Platformを入れた方が便利なようなので、こちらを入れる。 Haskell Platformのインストーラを以下からダウンロード Haskell Platform for Mac OS

    Mac OS X 10.9 MavericksにHaskellをインストール - 城陽人の本棚
  • 関数型プログラミング言語のまとめ - ワザノバ | wazanova.jp

    http://funceng.com/2013/11/03/review-of-functional-languages/ Kevin Buellがブログの一連のエントリーで関数型プログラミング言語の概要をまとめています。 1) Haskell ラテン語がわかる人には親しみやすい。 [Background] 遅延評価の研究成果をとりまとめる委員会が1990年にHaskell 1.0の仕様をつくった。コンパイラはGlasgow Haskell Compiler (GHC)が最も有名。Haskellに関する研究はMicrosoft Researchで盛ん。.NETのための関数型言語であるF#もMicrosoft Researchの成果であるが、別の研究者グループの手により後年世にでてきた。 その他の項目は原文参照ください。 [Comparative Description] [Syntax H

  • GHCインストールからyesod入れるまで - 蟹は金、海老は銀

    プログラミング, Haskell環境はubuntu 12.04?(そこそこ新しかったはずです。 失敗した例 sudo apt-get install haskell-platform cabal update は、cabalが古いからか失敗しました。(cabal version 10.0.2 なのでGHCとPlatform をそれぞれmakeすることにします その際、Platformに対応してるバージョンのGHCを入れることに注意します Haskell Platform for Linux 2013/01/01 で GHC 7.4.2でビルドしてあるのでそれをまず入れます。 GHC: Download version 7.4.2 から tar.bz2 をダウンロードします 解凍したら解凍先ディレクリへcd ./configure make make install ここらへんで、もしつまづ

  • Introduction to Concurrent Haskell

    Sustainable Security Requirements with the ASVS Josh Grossman provides a brief overview of what the ASVS is, but takes a closer look at balancing trade-offs and prioritizing different security requirements. Josh shares how to make the process repeatable and how to implement it as part of your own organization's requirements process.

    Introduction to Concurrent Haskell
  • GHC でスタックトレース - あどけない話

    これまで 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

    GHC でスタックトレース - あどけない話
  • 1