B0.ml
file finding. Should we stop at the last B0.ml file upwards ? This would be nice if you operate in a vendored dir. But this also avoid problems like I do a checkout e.g. in a scratch directory in _b0
to build it. On the other hand we have --b0-file
for these cases.@@@B0.version
be added ? Think harder about it an especially with respect to B0_kit.V000
versioning. and coherence with @@@B0.include
s. Also we could require to specify say #require "b0.kit.v000"
. Write down a few properties we would like to have w.r.t. opam and/or inclusion and end-user support.lib
think may not be that good and rather confusing. Maybe devise a specific notation to access library definitions and allow dots in their name. ("/my.def.bla"
)For now we used 'a Fut B0_beta.key
.
The current implementations raises a few questions. It will need to be refined, see B0_unit.action
.
b0
toolb0 build
consider -x|-u
ordering ??meta
be the initial or override an initial meta done by the combinator. initial ensures get
s do not blow, but it could be nice to be able to override auto-derivationsAt the B0 level we need to expose build fragments. It seems the build procedures of units is a good candidate but for now it's a bit unconvient to do that. We need to clarify the configuration store and dynamic metadata see Unit dynamic meta.
For now as a temporary hack we add the wrap
parameter to units.
The signature of B00.Memo.write
looks wrong you want a fut. E.g. we don't want to the Fut.sync
here.
let crunch_file m file ~in_dir =
let open Fut.Syntax in
let mn = B00_ocaml.Mod.Name.of_mangled_filename (Fpath.basename file) in
let out = Fpath.(in_dir / String.Ascii.uncapitalize mn + ".ml") in
B00.Memo.write m out ~reads:[file] begin fun () ->
(* FIXME b0 the sig of write is wrong *)
let data = Fut.sync (B00.Memo.read m file) in
Ok (B00_ocaml.Crunch.string_to_string ~id:"file" ~data)
end;
Fut.return out