catala/runtimes
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
..
c Unify runtime error handling 2024-04-26 18:31:26 +02:00
jsoo JSOO runtime fix 2024-05-03 09:35:20 +02:00
ocaml Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
python Another fix to Python runtime 2024-05-15 09:08:53 +02:00
r Add (internally) a map2 operator 2024-01-26 11:22:12 +01:00
rescript Bump version in package descriptions to 0.10.0 2024-05-06 13:51:05 +02:00
dune Fix multi-repo compilation and the 'make alltest' target 2024-03-20 14:41:10 +01:00