deb12d2c4a
Changelog: --- A lot has been going on, with more than 530 patches and 70 PRs merged since 0.7.0 last summer. In summary: - Quite a lot of syntax improvements and changes. Checkout the latest [cheat-sheet](https://catalalang.github.io/catala/syntax.pdf) for an overview - Allow local `let ... equals ... in ...` definitions - Better error messages and positions throughout - Added the ability to directly call a scope and retrieve its outputs, like a function - Added disambiguation, allowing to access structure fields without specifying the structure type each time - Added automated resolution of operators, allowing e.g. to write just `+` in place of all the type-specific operators `+.`, `+$`, `+@`, `+^`, etc. - More consistent priority for operators. It is no longer allowed to write `a and b or c` without parenthesis. - Added and changed some operators (`date + duration` now allowed either way, `int / int` now returns a decimal, added `duration / duration`) - Added the ability to have variables and functions defined at top-level (outside of any scope). See annex A of the tutorial for details. - Added support for functions with multiple arguments - Some big refactors in the compiler, allowing much better code sharing between the different passes, and making it much easier to extend. Also added the possibility to run the type-checker earlier, etc. - Countless bug-fixes - Improvements to our proof backend with Z3 - A tool to automatically synchronise with the upstream French law from Legifrance |
||
---|---|---|
.. | ||
catala_legifrance | ||
js | ||
ocaml | ||
python | ||
README.md |
French Law Libraries
This folder presents a working example of how Catala could be distributed and deployed inside existing applications. Each sub-folder is specialized for a particular programming language, and features a ready-to-use library of all the French public algorithms coded up using Catala so far.
General principles
Let us say you want to deploy a Catala program inside an application written
in programming language X. The Catala compiler will translate the source
Catala program into X, yielding a new .x
source code file. This .x
file
will export functions corresponding to the scopes of the original Catala
program. You can then reuse those exported functions in your application written
in X.
OCaml
To see how to deploy Catala programs as an OCaml library, see the dedicated readme.
JS
To see how to deploy Catala programs as a JS library, see the dedicated readme.
Python
To see how to deploy Catala programs as a Python library, see the dedicated readme.