Using dune in OCaml, does promote overwrite manual changes?

75 Views Asked by At

The nice thing about Rust and generated code, is that it can live in the target directory and rust-analyzer makes it easy to go and see what's there. But in OCaml, with dune, if I have a rule to generate some code, for example:

(rule
 (target kimchi.ml)
 (deps
  Cargo.toml
  rust-toolchain.toml
  ../../../../.ocamlformat
  (source_tree src)
  (source_tree binding_generation)
  (source_tree ../../proof-systems))
 (action
  (chdir
   binding_generation
   (progn
    (run rm -rf ./target)
    (run rm -f ./Cargo.lock)
    (run cargo run ../kimchi.ml)
    (run ocamlformat --impl -i ../kimchi.ml)))))

The file it generates seems to be inaccessible from ocaml-lsp in vscode without knowing the exact path. So what I can do is add:

 (mode promote)

but now, I run the risk of manually overwriting a generated file. Does building overwrites my manual changes again?

0

There are 0 best solutions below