nDiki : GHC

GHC: The Glasgow Haskell Compiler

ワンライナーを実行する

 ghc -e 'putStr "Hello, World!"'

コンパイルしないで実行する

 echo 'main = putStr "Hello, World!"' > hello.hs
 
 ghc -e main hello.hs
 または
 ghc hello.hs -e main

shebang

hello.hs に

 #!/usr/bin/runghc
 main = putStr "Hello, World!"

と書いて chmod 755 hello.hs して ./hello.hs

スポンサード リンク

2013年7月2日 (火)

Fedora 17 の home 以下に GHCHaskell Platform をインストール

Fedora 17 の home 以下に GHCHaskell Platform をインストールの、ちょっと手を入れる必要があったのでメモ

libgmp.so.3

GHC で libgmp.so.3 が必要だけれど無いので libgmp.so.10 にシンボリックリンクを作ってごまかす。

 mkdir ~/lcoal/lib
 cd ~/local/lib
 ln -s /usr/lib64/libgmp.so.10 libgmp.so.3
 export LD_LIBRARY_PATH=$HOME/local/lib

GHC 7.6.3

 cd ~/install
 wget http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-x86_64-unknown-linux.tar.bz2
 tar jxvf ghc-7.6.3-x86_64-unknown-linux.tar.bz2
 cd ghc-7.6.3
 ./configure --prefix=$HOME/local/ghc-7.6.3
 make install
 ~/local/ghc-7.6.3/bin/ghci           # インタプリタ起動してみる。
 PATH=$PATH:$HOME/local/ghc-7.6.3/bin

Haskell Platform 2013.2.0.0

 cd ~/install
 wget http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz
 tar zxvf haskell-platform-2013.2.0.0.tar.gz
 cd haskell-platform-2013.2.0.0
 ./configure --prefix=$HOME/local/haskell-platform-2013.2.0.0

OpenGL 関連のライブラリが入っていないホストで、かつとりあえず必要無さそうので適当に消す(なんで OpenGL いるのー)。

  • configure.ac の Check for OpenGL and GLUT のところを全部コメントアウト。
  • packages/platform.packagesから以下を削除。
    • GLURaw-1.3.0.0
    • OpenGL-2.8.0.0
    • GLUT-2.4.0.0
    • OpenGLRaw-1.3.0.0
  • packages/haskell-platform-2013.2.0.0/haskell-platform.cabal の build-depends からも上記のパッケージ名を削除。

あとこのままだと GHC_PACKAGE_PATH 云々とエラーが出て止まるので script/build.sh をいじる。 以下をコメントアウト。

 GHC_PACKAGE_PATH="${ORIG_GHC_PACKAGE_PATH}" \

あとは configure を作り直してビルド

 ./autoconf
 ./configure --prefix=$HOME/local/haskell-platform-2013.2.0.0
 make
 make install
 PATH=$PATH:$HOME/local/haskell-platform-2013.2.0.0/bin
スポンサード リンク

今日のさえずり: ごめんカエル踏んだ……

2013年07月02日

[ 7月2日全て ]

2013年7月5日 (金)

Haskell GHC で #!/usr/bin/runghc とか

ぼちぼち Haskell を実行してみたり。すごいH本だと ghci で対話モードでの例示が多いんだけれど、個人的にかったるい。

UNIX ならワンライナーでしょ shebang でしょ。で確認したら GHC の ghci の方じゃなくて ghc の方でワンライナーはできるのね。

 ghc -e 'putStr "Hello, World!"'

それと shebang での実行は runghc を使えば OK だった。

 #!/usr/bin/runghc
 main = putStr "Hello, World!"

みたいな感じ。

[ 7月5日全て ]

2013年7月24日 (水)

【日記】reveal.js とか、Windows 7 BOX に GHC 入れるとか

reveal.js でスライド作ったんだけれど、そういえばと思って FirefoxInternet Explorer で表示確認したらまともじゃなかった。Google Chrome で確認しながら作っていたので気がつかなかった。むむむ。もしかしたら HTML 的にシンタックスエラーがあって崩れている部分があるのかもしれないけれど。

あと Windows 上で Python スクリプトを(そのまま、あるいは実行可能ファイル(exe)化して)動かすのがちょっと流行っているので、GHC インストールした。Haskell の。Windows 版の GHCMinGW 使ってるのか。インストールは基本アーカイブを展開するだけ OK。

普段 Perl 使っているので、必要無いならあえて自分で Python 書くっていう気にならないのですよね。

今日のさえずり: ラジオ体操の深呼吸は第2のやつの方が好き

2013年07月24日

[ 7月24日全て ]

2013年12月16日 (月)

プレゼンテーションスライドを Markdown で書いて pandoc で reveal.js なページを生成する

ちょっとした勉強会などの資料は Markdown とかで軽く書いて、Web ブラウザプレゼンテーションするための HTML ファイルと、参照用のシンプルな HTML ファイルを生成したいなと思ってちょっとチェックしてみた。pandoc を使うと Markdown から reveal.js を使ったスライドページを作れるし、普通に HTML5 なページにも変換できるので良さそげ。

pandoc をインストール

pandoc は Haskell で書かれている。 GHC + Haskell Platform が入っている環境なら

 cabal update
 cabal install pandoc

を実行すればインストールできる(Fedora 17 の home 以下に GHC + Haskell Platform をインストールした時のメモ)。Debian GNU/Linux sid にも pandoc Debian パッケージはあるのだけれど、まだちょっと古めなので cabal で入れた。

スライド原稿を用意する

 mkdir pandoc-sample
 cd pandoc-sample
 emacs source.md

してサンプルを Markdown で書く。

できたら reveal.js をとってくる。

 git clone https://github.com/hakimel/reveal.js.git

CSS の微調整が必要なら reveal.js/css/reveal.min.css に手を入れる(自分の場合 text-align: center を left にしたり、.reveal h<n> のサイズを小さくしたりする)。

reveal.jsHTML を生成する

 ~/.cabal/bin/pandoc -s -t revealjs -V theme:default -o slide.html source.md

でスライド HTML ファイルが生成される。

HTML のテンプレートを変更したい場合は、例えば

 cp -a ~/.cabal/share/pandoc-1.12.2.1/data/templates/default.revealjs .

とコピーしてきて編集後、

 ~/.cabal/bin/pandoc -s -t revealjs -V theme:default --template=default.revealjs -o slide.html source.md

とする。

シンプルな HTML5 版を生成する

 ~/.cabal/bin/pandoc -s -t html5 --toc -c /path/to/bootstrap.min.css -o doc.html source.md

などとしてシンプルな HTML5 版も作っておける。

今日のさえずり: 10:30 にお腹が空くのなんとかしたい

2013年12月16日

[ 12月16日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.123115s / load averages: 1.11, 1.29, 0.96
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker