catala/compiler
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
..
catala_utils Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
dcalc More precise positions for operators throughout 2024-04-30 16:35:08 +02:00
desugared Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
lcalc Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
literate Rewriting message calls to use the new intf 2024-04-10 19:26:23 +02:00
plugins Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
scalc Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
scopelang Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
shared_ast Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
surface Fix lexing of verbatim blocks 2024-05-16 15:46:39 +02:00
verification More precise positions for operators throughout 2024-04-30 16:35:08 +02:00
catala_web_interpreter.ml Rewriting message calls to use the new intf 2024-04-10 19:26:23 +02:00
catala.ml replace let _ by let () or add type annotation 2023-09-09 22:02:39 +02:00
driver.ml Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
driver.mli Move global options of Cli to their own module 2024-03-19 15:18:35 +01:00
dune Update opam file according to opam-repository reviews 2024-05-06 21:39:58 +02:00
index.mld More doc 2023-06-18 16:08:16 +02:00
plugin.ml Rewriting message calls to use the new intf 2024-04-10 19:26:23 +02:00
plugin.mli Move global options of Cli to their own module 2024-03-19 15:18:35 +01:00
tests.ml Generalise the definition of lists of nested binders 2024-02-09 18:33:41 +01:00