Objective Caml コンパイラ v3.11.2 で hevea-2.19 をコンパイルする

Objective Caml コンパイラ v3.11.2 で hevea-2.19 をコンパイルする

HeveaはLaTeXからHTMLへのコンバーターで、以下から入手可能です。http://pauillac.inria.fr/~maranget/hevea/index.html

CentOS マシンで hevea をコンパイルしようとしていますが、yum リポジトリにパッケージがないようです (失敗しています)。パッケージ化された Objective Caml コンパイラを次のようにインストールしました。

$ uname -a
Linux ppserver 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 21:36:05
UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ sudo yum install ocaml
...
$ /usr/bin/ocamlc.opt -v
The Objective Caml compiler, version 3.11.2
Standard library directory: /usr/lib64/ocaml

hevea をコンパイルしようとすると、次の結果が出力されます。

$ wget http://pauillac.inria.fr/~maranget/hevea/distri/hevea-2.19.tar.gz
$ tar -zxvf hevea-2.19.tar.gz
$ cd hevea-2.19
[hevea-2.19]$ make
sh ocb.sh opt
/usr/bin/ocamldep.opt -modules hevea.ml > hevea.ml.depends
/usr/bin/ocamldep.opt -modules auxx.mli > auxx.mli.depends
...
/usr/bin/ocamlc.opt -c -w +a-4-9-41-45 -annot -o videoc.cmi videoc.mli
/usr/bin/ocamlc.opt -c -w +a-4-9-41-45 -annot -o zyva.cmi zyva.mli
+ /usr/bin/ocamlc.opt -c -w +a-4-9-41-45 -annot -o infoRef.cmo infoRef.ml
File "infoRef.mll", line 127, characters 2-12:
Error: Unbound value String.map
Command exited with code 2.
make: *** [ocb-opt] Error 10

これはエラーを引き起こすコードです。

let verifie name =
  String.map
    (fun c -> match c  with
    | '\t'
    | ','
    | '\n' -> ' '
    | '.' -> '-'
    |  _ -> c)
    name
;;

私の推測では、Objective Caml コンパイラーに何か変更があり、hevea コードを少し更新する必要があるのではないでしょうか。Luc Maranget にメールを送りました。返信があればここに投稿します [下記参照]。

答え1

リュック・マランジェからのメール返信より

必要なのは3.11.2より新しいocamlコンパイラ、理想的には現在のバージョンです... String.mapはOCaml 4.00.0で導入されました

いずれにせよ、OCaml を最新バージョンにアップグレードすることをお勧めします。Linux ディストリビューションで提供されている ocaml は、OCaml 3.11.2 が 2010 年 1 月にリリースされたため、古いものになっています。OCaml をインストールする便利な方法は、opam を使用することです。翻訳元:

この Q&A が将来他の誰かの役に立つことを願っています。

関連情報