読者です 読者をやめる 読者になる 読者になる

テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(ocaml report) corebuildとutopを動かす

OCamlの基本的なチュートリアルを大体理解したので, Real World OCamlなる本を読んでいる. これはHaskellのRWHのOCaml版だ. ErlangでもH本にインスパイアされてE本が出たし, Haskell業界が関数型出版業界の中心にいることは間違いなさそう.

ネットでも読める. kindleも買った. 2000円もしない. ネットにいちいち繋がないと読めないというのは意外にストレス. E本(ja)もkindleが出たら欲しい.

https://realworldocaml.org/v1/en/html/

ここでも紹介されている: http://d.hatena.ne.jp/camlspotter/20130626/1372228771

Coreは, JaneStreetというOCamlバリバリ会社が作ってるOCamlの強化ライブラリだ. 強化ライブラリというのは, 関数型言語として当然あるべき機能を追加する目的であり, 便利なライブラリをしこたま詰め込むという発想ではない(PythonのBattery Includedとは思想が違う). RWOはJaneStreetの社員によって執筆されており, Coreを積極的に使ってサンプルが書かれている.

OCaml版のRVMであるOPAMをインストールして(これはGithubにある), ocamlの本体(4.01.0), core, utopをインストールする. 何のエラーも起きずにすいすい行くのが心地よい.

open Core.Std

のようなテストファイルをcore-test.mlという名前で保存して, corebuild core-test.nativeを実行する. これでCoreを使ったビルドが出来るはずとおもいきやこける. caml_ba_dim_1というのがないと言われている. ググるとすぐに解明(OCamlは楽だ・・)

http://www.robertjakob.de/posts/camlbadim.html

  • [要点] OPAMが設定するCAML_LD_LIBRARY_PATHから/usr/local/lib/ocaml/stublibsを削除すればOK

とのこと. 根本的な解決はこうではないだろうとは思うが分からないので従った. utopも同じ原因でこけていたが, これも同時に解決.

OCaml本体のセットアップは超簡単だが, Vimのセットアップが少し鬱陶しいように思う. Merlin, Omletなど色々と便利なソフトウェアがありそうだが, セットアップの仕方がよくわからない上に, QuickRunなど既存の環境と衝突しそうな感じがぷんぷんする.