catala/compiler
Louis Gesbert c63d74647d Optim: avoid extra translations in the interpreter
A recent patch introduced custom terms in expressions manipulated by the
interpreter. For typing reasons, a traversal is done to extend the supplied
expression with these custom terms — it's functionally the identity, but, due to
the fact that the type-checker can't infer covariance of our AST terms on their
phantom parameter, playing by the rules imposes a full traversal + rebuild.

Without resorting to a (constrained) `Obj.magic`, this patch avoids extra
intermediate conversions, which is enough to cut out the huge extra cost we were
incurring.

Closes #516
2023-09-19 18:22:43 +02:00
..
catala_utils Improvements to searching for libs at runtime (plugins, runtime, etc.) 2023-09-04 09:57:49 +02:00
dcalc replace let _ by let () or add type annotation 2023-09-09 22:02:39 +02:00
desugared Reformat 2023-09-01 16:24:27 +02:00
lcalc replace let _ by let () or add type annotation 2023-09-09 22:02:39 +02:00
literate Reformat 2023-09-01 16:24:27 +02:00
plugins Encapsulate by default all Web API calls with execute_or_throw_error 2023-09-15 10:29:31 +02:00
scalc Reformat 2023-09-01 16:24:27 +02:00
scopelang Reformat 2023-09-01 16:24:27 +02:00
shared_ast Optim: avoid extra translations in the interpreter 2023-09-19 18:22:43 +02:00
surface Improvements to the Polish translation (#499) 2023-09-13 16:19:06 +02:00
verification Reformat 2023-09-01 16:24:27 +02:00
catala_web_interpreter.ml replace let _ by let () or add type annotation 2023-09-09 22:02:39 +02:00
catala.ml replace let _ by let () or add type annotation 2023-09-09 22:02:39 +02:00
driver.ml Reformat 2023-09-01 16:24:27 +02:00
driver.mli Implement module lookups for scopes, structs, and enums 2023-08-31 17:54:39 +02:00
dune Add an explain plugin 2023-07-11 17:33:56 +02:00
index.mld More doc 2023-06-18 16:08:16 +02:00
plugin.ml Improvements to searching for libs at runtime (plugins, runtime, etc.) 2023-09-04 09:57:49 +02:00
plugin.mli Refacter the main Driver module 2023-07-03 16:42:54 +02:00
tests.ml replace let _ by let () or add type annotation 2023-09-09 22:02:39 +02:00