私は新しい OCaml ユーザーです。基本的な OCaml プロジェクトのセットアップ方法について質問しましたが、まだ問題があります。TL;DR の最後にジャンプ
たとえば、Irmin を学習しようとしています。Irminのホームページで、私がしなければならないことが分かります
opam install irmin git cohttp
そうすることで、Irmin のバージョンは 0.8.3 になりました。残念ながら、Irmin のバージョンは 0.9.4 で、API が変更されているように見えるため、彼らの例を追うことはできません。そこで、依存関係として Irmin 0.9.4 だけを持つクリーンなプロジェクトを開始したいと思います。
まず、opam スイッチをセットアップしました。
opam switch install playground -A 4.02.1
必ず白紙の状態で作業してください。次に、_oasis
このような基本的なファイルを作成しました
OASISFormat: 0.4
Name: Playground
Version: 0.1.0
Synopsis: OCaml playground
Authors: Andrea Ferretti
License: Apache-2.0
BuildTools: ocamlbuild
BuildDepends:
irmin,
irmin.unix,
lwt,
lwt.unix
次に、Irmin のホームページから例をコピーしましたexample.ml
。
open Lwt
open Irmin_unix
let store = Irmin.basic (module Irmin_git.FS) (module Irmin.Contents.String)
let config = Irmin_git.config ~root:"/tmp/irmin/test" ~bare:true ()
let prog =
Irmin.create store config task >>= fun t ->
Irmin.update (t "Updating foo/bar") ["foo"; "bar"] "hi!" >>= fun () ->
Irmin.read_exn (t "Reading foo/bar") ["foo"; "bar"] >>= fun x ->
Printf.printf "Read: %s\n%!" x;
return_unit
let () = Lwt_main.run prog
私がそうするoasis setup
とocamlbuild example.ml
、たくさんのエラーが発生します
W: Cannot get variable ext_obj
W: Cannot get variable ext_lib
W: Cannot get variable ext_dll
W: Cannot get variable ocamlfind
つまり、私の質問は次のとおりです。
Irmin 0.9.4 に依存するクリーンなプロジェクトをセットアップする最も簡単な方法は何ですか?