dune1.0がリリースされたので、jbuilderからduneに置き換えました。
作業内容としてはそんなに修正箇所はありませんでした。
作業内容
- jbuildファイルの変更
- jbuildファイルをduneにリネーム
- 設定ファイルの変更
- コマンドをjbuilderからduneに変更
- Makefileの変更
- opamファイルの変更
- 依存しているパッケージをjbuilderからduneに変更
- コンパイル時のwarningメッセージを出ないように修正
- コンパイル時のオプションが変わったのか、warningがでるようになったのでソースを修正
1. jbuildファイルの変更
jbuildファイルをduneに名前を変えた後に、S式の()を一つ外します。
duneではいらなくなったようです。
削除し忘れていても、ビルド時にメッセージで()がいらないと言われるので、すぐ直せます。
不要な()を削除する
修正前
(library ( (public_name typesafety.misc) (name misc) ))
修正後
(library (public_name typesafety.misc) (name misc) )
パラメメータの置き換え
パラメータは${}で指定できましたが、duneからは%{}に変わったようです。
(rule ( (targets (github_t.ml github_t.mli)) (deps (github.atd)) (action (run ${bin:atdgen} -t ${<})) ))
(rule (targets github_t.ml github_t.mli) (deps github.atd) (action (run %{bin:atdgen} -t %{deps})) )
2. コマンドをjbuilderからduneに変更
これは単純にjbuilderをduneに置き換えるだけです。
修正前
build: jbuilder build
修正跡
build: dune build
3. opamファイルの変更
これも単純にjbuilderをduneに置き換えるだけです。
修正前
build: [ ["jbuilder" "build" "-p" name "-j" jobs] ] build-test: [ ["jbuilder" "runtest" "-p" name] ] depends: [ "jbuilder" {build} ]
修正後
build: [ ["dune" "build" "-p" name "-j" jobs] ] build-test: [ ["dune" "runtest" "-p" name] ] depends: [ "dune" {build} ]
4. コンパイル時のwarningメッセージを出ないように修正
使用していない式や型の定義などは、warningがでるようになりました。
これは単純に直していけばいいので、そんなに難しくないかと思います。