そんな話はいつでもできる このページをアンテナに追加 RSSフィード

ひま〜じ〜ん! きっと何者にもなれないfu7mu4が告げる!

2017-11-03 definetly no logic

[][] opam install core で失敗する

こんな人はほぼいないと思うが、opam install coreOCamlcore パッケージをインストールすると失敗することがありえる。


原因は macport でインストールした gccデフォルトになっているから。


できなかったので、とりあえず、PATH環境変数から /opt/local/bin を削除して /opt/local/bin/gcc を見付けられないようにしてから、opam install coreインストールするとうまくいった。


CC, CPP, CXX環境変数


export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
opam install core

CC=/usr/bin/clang CXX=/usr/bin/clang++ opam install core





Xcodeは最新のものひとつだけだったがこれを指定した。しかしやはり gcc が呼出されてしまう。

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Resource/Develop



2017-08-09 そして月と躍る歩道橋

[][] debian 9 に Real World OCaml 環境をセットアップ

https://github.com/realworldocaml/book/wiki/Installation-Instructions には debian 8 にこうやって準備しろとある

sudo apt-get update
sudo apt-get install m4 ocaml-native-compilers camlp4-extra opam


opam install async yojson core_extended core_bench cohttp async_graphics cryptokit menhir



sudo apt-get pkg-config zlib1g zlib1g-dev

なお、macOSでは re2 のインストールで失敗するが回避方法がみつからなかった。

2017-08-05 Kill me softly with his song

[][][] OCaml の re2 が macOSに入らないので Debian を使う

まだ Real World OCamlで遊ぼうとしている。


それはまあ、別にいいのかもしれないんだけど、このmacOSには docker も vagrant も VirtualBoxもインストールされている。macOSがダメならLinuxがあるじゃない。

ということで、ちょっと前に試しにいれてみたDebian 9を起動してみた。



Real World OCamlのInstallの項目を進めていくとエラー。


しかたがないので、Debian 9を再インストールすることに。


2017-07-28 The car, my cdr, my everything -- lisp

[] opam update したら re2 のビルドに失敗した

opam helpしたら、opam update と opam upgradeというのがあるのがわかったのでやってみた。

opam update すると、インストール 28、再ビルド 12、更新 61件もあるらしい。

=-=- Updating package repositories =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 🐫

[default] synchronized from https://opam.ocaml.org

Updates available for 4.04.0, apply them with 'opam upgrade':

===== ∗ 28 ↻ 12 ↗ 61 =====

opam upgrade すると、いろいろと更新できたが、

=-=- lwt.3.1.0 installed successfully -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 🐫

=> Lwt 4.0.0 will make some breaking changes to packaging in late 2017. See


=-=- tuareg.2.0.10 installed successfully -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 🐫

=> If you have not yet done so, please add in ~/.emacs.d/init.el or

in ~/.emacs to following line:

(load "/Users/fu7mu4/.opam/4.04.0/share/emacs/site-lisp/tuareg-site-file")

You should consider installing "merlin" (completion, displaying types,...)

or "caml-mode" (displaying types).

=-=- re2.v0.9.0 troobleshooting -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 🐫

=> This package relies on external (system) dependencies that may be missing.

`opam depext re2.v0.9.0' may help you find the correct installation for your


The former state can be restored with:

opam switch import "~/.opam/4.04.0/backup/state-20170627154855.export"

となってre2 v0.9.0のインストールに失敗した。うーん?これが原因らしい。macOS なのに、so というのはなにかおかしい。dylibでは?

[ERROR] The compilation of re2 failed at "jbuilder build -p re2 -j 4".

#=== ERROR while installing re2.v0.9.0 ========================================#

# opam-version 1.2.2

# os darwin

# command jbuilder build -p re2 -j 4

# path /Users/fu7mu4/.opam/4.04.0/build/re2.v0.9.0

# compiler 4.04.0

# exit-code 1

# env-file /Users/fu7mu4/.opam/4.04.0/build/re2.v0.9.0/re2-28258-91ed58.env

# stdout-file /Users/fu7mu4/.opam/4.04.0/build/re2.v0.9.0/re2-28258-91ed58.out

# stderr-file /Users/fu7mu4/.opam/4.04.0/build/re2.v0.9.0/re2-28258-91ed58.err

### stderr ###

# [...]

# cp libre2/obj/libre2.a libre2_c_stubs.a

# cp libre2/obj/so/libre2.so dllre2_c_stubs.so

# /opt/local/bin/gmake -s -C libre2 clean

# ')

# Undefined symbols for architecture x86_64:

# "operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, re2::StringPiece const&)", referenced from:

# -exported_symbol[s_list] command line option

# ld: symbol(s) not found for architecture x86_64

# collect2: error: ld returned 1 exit status

# gmake: *** [Makefile:181: obj/so/libre2.so] エラー 1


opam depext re2.v0.9.0

# Detecting depexts using flags: x86_64 osx macports

# No extra OS packages requirements found.


2017-02-26 遠いキオクの遊び場

[] Real World OCaml をゲット

Real World OCaml


なぜ OCaml なの?

Lispについて某所で語ってみたときに、Lispの本をお勧めして悦にいっていたら、MLいいよといわんばかりにStandard MLの本を頂いた。ML?と思いながらちらみしていたが、やや古い模様。うーん。


  • 某ブログでReal World OCamlを褒めていた。
  • Amazonのポイントが溜っていた。
  • リアル店舗にMLの本っておいてなさそう(偏見)


[][] macport ユーザーの OCamlインストールあれこれ

twitterで Real World OCamlOcaml始めたら、OCamlだよ、Ocamlではないよと


とりあえず、Real World OCamlインストール

sudo port install ocaml
sudo port install opam
opam init


In normal operation, OPAM only alters files within ~/.opam.

During this initialisation, you can allow OPAM to add information to two

other files for best results. You can also make these additions manually

if you wish.

If you agree, OPAM will modify:

- ~/.bash_profile (or a file you specify) to set the right environment

variables and to load the auto-completion scripts for your shell (bash)

on startup. Specifically, it checks for and appends the following line:

. /Users/fu7mu4/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true

- ~/.ocamlinit to ensure that non-system installations of `ocamlfind`

(i.e. those installed by OPAM) will work correctly when running the

OCaml toplevel. It does this by adding $OCAML_TOPLEVEL_PATH to the list

of include directories.

If you choose to not configure your system now, you can either configure

OPAM manually (instructions will be displayed) or launch the automatic setup

later by running:

opam config setup -a

Do you want OPAM to modify ~/.bash_profile and ~/.ocamlinit?

(default is 'no', use 'f' to name a file other than ~/.bash_profile)


Global configuration:

Updating ~/.opam/opam-init/init.sh

Updating ~/.opam/opam-init/init.zsh

Updating ~/.opam/opam-init/init.csh

Updating ~/.opam/opam-init/init.fish


1. To configure OPAM in the current shell session, you need to run:

eval `opam config env`

2. To correctly configure OPAM for subsequent use, add the following

line to your profile file (for instance ~/.bash_profile):

. /Users/fu7mu4/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true

3. To avoid issues related to non-system installations of `ocamlfind`

add the following lines to ~/.ocamlinit (create it if necessary):

let () =

try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")

with Not_found -> ()


eval `opam config env`


おっとしまった、そこからOCamlを opam switchで更新しないと

opam switch

で一覧を出して最新に切り替えよう。(2017年2月で 4.04.0 が最新のもよう)

opam switch 4.04.0


eval `opam config env`


それから Real World OCamlの実行環境用に core と utopをインストールするらしい。

opam install core utop
Read the top page of this blog in English (Translated by Google) ここの文章は無断リンク(トラックバック含む)、無断引用可。トラックバックは無断で削除することもあります。 All code on this blog without some notation is released Creative Commons 0 v1 or MIT License.