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がでるようになりました。
これは単純に直していけばいいので、そんなに難しくないかと思います。