catala/compiler/plugins
Louis Gesbert 9d07015864 Unify runtime error handling
- Clearly distinguish Exceptions from Errors. The only catchable exception
  available in our AST is `EmptyError`, so the corresponding nodes are made less
  generic, and a node `FatalError` is added

- Runtime errors are defined as a specific type in the OCaml runtime, with a
  carrier exception and printing functions. These are used throughout, and
  consistently by the interpreter. They always carry a position, that can be
  converted to be printed with the fancy compiler location printer, or in a
  simpler way from the backends.

- All operators that might be subject to an error take a position as argument,
  in order to print an informative message without relying on backtraces from
  the backend
2024-04-26 18:31:26 +02:00
..
api_web.ml Allow trace w/ avoid-exceptions, fix options in api_web 2024-04-23 16:01:23 +02:00
dune Rework module includes CLI in Catala 2023-09-27 13:14:40 +02:00
explain.ml Unify runtime error handling 2024-04-26 18:31:26 +02:00
json_schema.ml Rewriting message calls to use the new intf 2024-04-10 19:26:23 +02:00
lazy_interp.ml Unify runtime error handling 2024-04-26 18:31:26 +02:00
plugins.mld Remove generated files from git 2023-07-10 15:48:11 +02:00
python.ml Rewriting message calls to use the new intf 2024-04-10 19:26:23 +02:00
README.md Documentation about plugins 2022-08-09 15:00:13 +02:00

Catala compiler plugins

You want to add a customized backend for the Catala compiler but don't want to modify its source code? Thanks to dynamic linking, it is possible to do so. The advantage of creating a customized backend is the possibility to craft a generated target code that perfectly matches the naming conventions, module structure or coding style of your application.

See the online documentation for more details on how to create them, or look at the existing plugins in this directory for inspiration.