catala/compiler/catala_utils
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.mld Match the compiler code to the new type of error message content 2023-07-12 11:55:11 +02:00
cli.ml Add env variables to set flags -O, --avoid-exceptions, --trace 2024-04-19 15:30:51 +02:00
cli.mli Reformat 2024-03-20 14:41:06 +01:00
dune Messages: adjust to terminal width 2024-04-26 15:40:55 +02:00
file.ml Fix adjustment of format width to terminal 2024-05-06 21:39:58 +02:00
file.mli Reformat 2024-03-20 14:41:06 +01:00
get_version.ml Better version handling 2024-01-24 11:41:34 +01:00
global.ml Reformat 2024-03-20 14:41:06 +01:00
global.mli Reformat 2024-03-20 14:41:06 +01:00
hash.ml Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
hash.mli Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
map.ml Reformat 2023-11-30 23:53:38 +01:00
mark.ml Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
mark.mli Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
message.ml Fix adjustment of format width to terminal 2024-05-06 21:39:58 +02:00
message.mli Fix adjustment of format width to terminal 2024-05-06 21:39:58 +02:00
pos.ml Message formatting: final touches 2024-05-03 15:14:51 +02:00
pos.mli Cleaner message printing 2024-05-03 12:21:34 +02:00
string.ml Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
string.mli Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
suggestions.ml Cleaner message printing 2024-05-03 12:21:34 +02:00
suggestions.mli Better indications for the user : 2023-07-12 16:32:55 +02:00
uid.ml Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
uid.mli Computation and checking of module hashes 2024-05-28 11:43:50 +02:00
version.mli Better version handling 2024-01-24 11:41:34 +01:00