Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion bench/irmin-pack/bench_common.ml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,13 @@ let with_progress_bar ~message ~n ~unit =
in
with_reporter ~config bar

module Conf = Irmin_tezos.Conf
module Conf = struct
let entries = 32
let stable_hash = 256
let contents_length_header = None
let inode_child_order = `Seeded_hash
let forbid_empty_dir_persistence = true
end

module Schema = struct
open Irmin
Expand Down
12 changes: 12 additions & 0 deletions bin/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
(executable
(public_name irmin-inlined)
(name main)
(package irmin-pack)
(libraries unix eio eio_main irmin irmin-pack irmin-pack.unix lavyek)
(preprocess
(pps ppx_irmin.internal)))

(env
(dev
(flags
(:standard -warn-error -A))))
77 changes: 77 additions & 0 deletions bin/main.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
module Contents = Irmin.Contents.String

module Conf = struct
let entries = 4
let stable_hash = 256
let contents_length_header = Some `Varint
let inode_child_order = `Seeded_hash
let forbid_empty_dir_persistence = true
end

let root = "/tmp/irmin-db"

let config ~fresh ~sw ~fs =
Irmin_pack.config ~fresh ~sw ~fs Eio.Path.(fs / root)

module StoreMaker = Irmin_pack_unix.KV (Conf)
module Store = StoreMaker.Make (Contents)

let date = ref 0L

let info () =
let info = Store.Info.v ~author:"foo" ~message:"bar" !date in
date := Int64.add !date 3600L;
info

let set sw fs =
let conf = config ~fresh:true ~sw ~fs in
Fmt.pr "Store.Repo.v@.";
let repo = Store.Repo.v conf in
Fmt.pr "Store.main@.";
let main = Store.main repo in
let tree = Store.tree main in
let tree = Store.Tree.add tree [ "a"; "b" ] "Hello" in
let tree = Store.Tree.add tree [ "a"; "c" ] "!" in
(* let tree = Store.Tree.add tree [ "a"; "d"; "e" ] "World" in
let tree = Store.Tree.add tree [ "a"; "f" ] "!" in *)
Store.set_tree_exn ~info main [] tree;
Fmt.pr "Store.close@.";
Store.Repo.close repo

(* let get sw fs =
let conf = config ~fresh:false ~sw ~fs in
Fmt.pr "Store.Repo.v@.";
let repo = Store.Repo.v conf in
Fmt.pr "Store.main@.";
let main = Store.main repo in
let value = "Hello" in
Fmt.pr "Store.get_exn %S@." value;
let s = Store.get main [ "a"; "b"; "c" ] in
assert (s = value);
let value = "World" in
Fmt.pr "Store.get_exn %S@." value;
let s = Store.get main [ "a"; "b"; "d" ] in
assert (s = value);
let value = "!" in
Fmt.pr "Store.get_exn %S@." value;
let s = Store.get main [ "a"; "e" ] in
assert (s = value);
Fmt.pr "Store.close@.";
Store.Repo.close repo *)

let () =
Eio_main.run @@ fun env ->
Eio.Switch.run @@ fun sw ->
let fs = Eio.Stdenv.fs env in
Fmt_tty.setup_std_outputs ();
Fmt_tty.setup_std_outputs ~style_renderer:`Ansi_tty ();
(* Logs.set_reporter (Logs_fmt.reporter ()); *)
Logs.(set_level @@ Some Debug);
set sw fs
(* get sw fs *)

(*
"a" |-> "b" |-> "c" = "Hello"
| |-> "d" = "World"
|-> "e" = "!"
*)
11 changes: 2 additions & 9 deletions dune
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,10 @@

(env
(dev
(flags :standard -w -unused-functor-parameter)))
(flags :standard -w -unused-functor-parameter -warn-error -A)))

(mdx
(files README.md)
(deps %{bin:irmin})
(libraries
irmin
irmin-cli
irmin-git
irmin-git.unix
eio
eio_main
eio.unix
(libraries irmin irmin-cli irmin-git irmin-git.unix eio eio_main eio.unix
lwt_eio))
Loading