mirror of
https://github.com/CatalaLang/catala.git
synced 2024-11-08 07:51:43 +03:00
edb8db9ada
This adds an optional pass that recursively expands equality tests across structures and enums, on lcalc. NOTE: this is a temporary solution. - all tests are completely inlined, which may be a bit bloated - due to the lack of primitives (and expressive pattern-matching), checking equality on enums generates a 2-level pattern matching, quadratic in the number of constructors - this is completely separate from the monomorphisation pass, which morally should take care of generating this code (as specific functions rather than inlined code) So, while this should work as a place-holder for now, it actually seems more reasonable mid-term (before we do it through monomorphisation) to do this translation at the backend level, i.e. when generating the C code, when we have full access to the representation of enums. |
||
---|---|---|
.. | ||
api_web.ml | ||
dune | ||
explain.ml | ||
json_schema.ml | ||
lazy_interp.ml | ||
plugins.mld | ||
python.ml | ||
README.md |
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.