catala/compiler/lcalc
Louis Gesbert 403156b36e Computation and checking of module hashes
This includes a few separate changes:

- pass visibility information of declarations (depending on wether the
  declaration was in a ```catala-metadata block or not)

- add reasonable hash computation functions to discriminate the interfaces. In
  particular:
  * Uids have a `hash` function that depends on their string, but not on their
    actual uid (which is not stable between runs of the compiler) ; the existing
    `hash` function and its uses have been renamed to `id`.
  * The `Hash` module provides the tools to properly combine hashes, etc. While
    we rely on `Hashtbl.hash` for the atoms, we take care not to use it on any
    recursive structure (it relies on a bounded traversal).

- insert the hashes in the artefacts, and properly check and report those (for
  OCaml)

**Remains to do**:

- Record and check the hashes in the other backends

- Provide a way to get stable inline-test outputs in the presence of module
  hashes

- Provide a way to write external modules that don't break at every Catala
  update.
2024-05-28 11:43:50 +02:00
..
ast.ml AST change: more specific application 2023-12-19 17:27:40 +01:00
ast.mli AST change: more specific application 2023-12-19 17:27:40 +01:00
closure_conversion.ml More precise positions for operators throughout 2024-04-30 16:35:08 +02:00
closure_conversion.mli Mark closure conversion as untyped 2024-01-31 17:52:06 +01:00
compile_with_exceptions.ml More precise positions for operators throughout 2024-04-30 16:35:08 +02:00
compile_with_exceptions.mli Improve translation of typing upon dcalc -> lcalc 2024-01-31 19:15:27 +01:00
compile_without_exceptions.ml More precise positions for operators throughout 2024-04-30 16:35:08 +02:00
compile_without_exceptions.mli Improve translation of typing upon dcalc -> lcalc 2024-01-31 19:15:27 +01:00
dune Build: remove unnecessary ppx on dcalc, lcalc 2023-05-17 14:08:32 +02:00
from_dcalc.ml Register the option type in ctx when used in lcalc 2023-12-19 17:30:28 +01:00
from_dcalc.mli Improve translation of typing upon dcalc -> lcalc 2024-01-31 19:15:27 +01:00
lcalc.mld More doc 2023-06-18 16:08:16 +02:00
monomorphize.ml Generalise the definition of lists of nested binders 2024-02-09 18:33:41 +01:00
monomorphize.mli Simplify monomorphisation, and preserve type annotations 2024-02-06 18:00:25 +01:00
to_ocaml.ml Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
to_ocaml.mli Computation and checking of module hashes 2024-05-28 11:43:50 +02:00