Louis Gesbert
99004ab1d9
catala depends fixes
...
- automatically include the directories of listed files
- work for files that don't define modules
2024-03-13 18:15:50 +01:00
Louis Gesbert
9bf441ae31
'catala depends': allow specifying multiple files
...
The return is a topological order over their joint dependencies.
NOTE: the specified files are now included in the returns
2024-03-12 16:04:59 +01:00
Louis Gesbert
dc6bfae75c
Fixes for linking modules in the backends (in particular, Python)
2024-03-08 17:36:00 +01:00
Louis Gesbert
26c28bbd35
Fix line overflow message, and line offset errors
2024-03-08 17:36:00 +01:00
Louis Gesbert
95e3c4bedd
Ensure we create the necessary target directories before opening output files
2024-03-08 17:36:00 +01:00
Louis Gesbert
e68e1244a5
Fix complexity of some string functions
2024-03-08 17:36:00 +01:00
Louis Gesbert
ff06ddf40c
Fixing linking across modules for backends
...
- This adds a `catala depends` command that recursively tracks module dependency.
It can then be used by Clerk for linking.
- Generation of cmo object files are added for OCaml (we only built native
objects, but jsoo requires bytecode).
- Some fixes to the generation of value embed/deembed shims (related to types
coming from different modules ; add support for options ; etc.)
2024-03-08 17:36:00 +01:00
Louis Gesbert
70cbfdb9ac
Add a CATALA_INCLUDE env variable
...
It'll help while we wait for the implementation of project-wide specifications.
2024-03-08 17:36:00 +01:00
Louis Gesbert
bc3add57ec
Fix plugins lookup dir when Catala is installed to PATH
2024-03-08 17:36:00 +01:00
Louis Gesbert
346f401523
Disambiguate enum constructors from current module in priority
2024-03-08 17:36:00 +01:00
Louis Gesbert
8b3d7fb64b
Repair the 'explain' plugin
2024-03-05 10:07:25 +01:00
Denis Merigoux
c2c46c431e
Adress @altgr's suggestion
2024-03-04 13:30:25 +01:00
Denis Merigoux
ad5dd6f2f6
Fix R compilation
2024-03-03 18:36:50 +01:00
Louis Gesbert
1ea77201ff
Lcalc interpreter: fix passing of context arguments
2024-02-26 14:56:43 +01:00
Louis Gesbert
07b71656e7
Native/interpreter interface: handle option types
2024-02-26 14:56:43 +01:00
Louis Gesbert
ba9fc85b84
Make exception output consistent across the interpreters
2024-02-26 14:56:43 +01:00
Louis Gesbert
4a049080a4
CLI: replace interpret_lcalc
by interpret --lcalc
...
This will make it easier when running tests to just toggle the different flags
2024-02-26 14:56:43 +01:00
Louis Gesbert
97ae62384e
Add externals to scalc, working test with Python backend
2024-02-26 14:56:43 +01:00
Louis Gesbert
589833bca7
Make plugin load failures less verbose
...
In general you don't care unless you may have attempted to use one.
2024-02-26 14:56:43 +01:00
Louis Gesbert
e0928677b1
Small ocaml/js output rehaul
...
Print to json directly rather than depend on yojson and a ppx.
Note: this should be tested with the website in order to validate that the Json
output is 1-to-1.
(a second step could be to simplify this output, now that it's manual)
2024-02-21 11:28:56 +01:00
Louis Gesbert
4ee4992b54
Tweak multi-module LaTeX output
2024-02-16 16:36:15 +01:00
Louis Gesbert
f09edf443e
Fix typo
2024-02-16 16:12:35 +01:00
Louis Gesbert
60371189ab
Allow generation of one latex file from multiple sources
2024-02-15 20:54:24 +01:00
Louis Gesbert
5128da2ebe
Correctly fail if extra arguments are supplied
2024-02-15 20:54:14 +01:00
Louis Gesbert
18ec4b3dd3
LaTeX backend: fix module name escaping
2024-02-15 20:54:14 +01:00
Louis Gesbert
eb4ba114d2
Add test for literate LaTeX output
2024-02-15 14:53:26 +01:00
Louis Gesbert
a2d82d01f5
pandoc: disable highlight of custom fenced blocks for now
2024-02-15 13:54:44 +01:00
Louis Gesbert
23287ef817
Literate output: add info about modules
2024-02-15 13:54:44 +01:00
Louis Gesbert
2f2924944a
Syntax: add keywords in front of list filtering / arg-extremum
...
Closes #574
2024-02-14 13:55:03 +01:00
Louis Gesbert
bf0ef0b1f5
Allow access to intermediate variable states
...
Through the syntax `var_name state state_name`.
Addresses #567 , but
- requires documentation
- explicitely accessing states of the variable being defined is not allowed at
the moment (warning proposed in #567 requires a whole-expression check, which
is better done some place else entirely)
2024-02-12 18:15:48 +01:00
Louis Gesbert
afcc435593
CI: fix the check for bad promoted files
2024-02-12 16:44:14 +01:00
Louis Gesbert
721597a70d
Small additional simplification
2024-02-12 15:39:29 +01:00
Louis Gesbert
9ca952b518
Fix building of plug-ins
2024-02-12 10:48:12 +01:00
Louis Gesbert
e308ff8d02
Generalise the definition of lists of nested binders
2024-02-09 18:33:41 +01:00
Louis Gesbert
c124943a6e
Repair broken unit-test
2024-02-09 18:32:19 +01:00
Louis Gesbert
12974b089f
Printer: skip unit variables for conciseness
2024-02-07 17:54:12 +01:00
Louis Gesbert
a56d95d790
Typing: add a "assume operator types" mode
...
This allows for retyping after monomorphisation: a new function just extracts
the return type of the operator, without checking the operand types.
Also to avoid multiplying function arguments around the typer, the flags have
been gathered in a record that is included in the typing environment; it's ok to
give them default values as long as these are the strictest.
2024-02-07 17:41:04 +01:00
Louis Gesbert
ea512bfd5b
The typer doesn't handle monomorphised code yet
...
so don't retype after monomorphisation, which is now possible as the pass itself
correctly preserves types.
In time the typer will need a special case to get knowledge of the new types and
modified operator types.
2024-02-06 18:00:45 +01:00
Louis Gesbert
df70c5dd57
Simplify monomorphisation, and preserve type annotations
2024-02-06 18:00:25 +01:00
Louis Gesbert
e5fe02fd84
Interpreter: avoid rebuilding unchanged values
...
Closes #540 ; it was a leftover from when we were still exploring how best to
type this function.
2024-02-05 16:28:56 +01:00
Louis Gesbert
7f5b56e8f2
Interpreter: remove no longer needed empty propagations
2024-02-05 16:28:56 +01:00
Louis Gesbert
870716a3f8
Factorise a bit more with more arguments to Expr.map
...
allowing a safer way to translate types both in expressions and annotations, and
clarifying the code of the dcalc->lcalc translation
2024-02-05 16:28:56 +01:00
Louis Gesbert
61c105c365
Add one more trivial optimisation
2024-02-05 11:01:55 +01:00
Louis Gesbert
5cb8ba805b
List detuplification: better intermediate vars namings
...
for more readable code
2024-02-05 11:01:55 +01:00
Louis Gesbert
7b43f393c5
Add some optimisations to nested maps
2024-02-05 11:01:55 +01:00
Denis Merigoux
afa8ee44bf
Delete duplicate code from 9d3550374d
2024-02-01 17:23:31 +01:00
Denis Merigoux
d7e71885c1
Formatting
2024-02-01 17:22:42 +01:00
Louis Gesbert
f90de90299
Monomorphisation: access types directly
2024-02-01 12:27:54 +01:00
Louis Gesbert
2dba54b906
Monomorphisation: simplify type collection
2024-02-01 12:22:31 +01:00
Louis Gesbert
9d3550374d
Remove constructor matching on strings
2024-02-01 12:17:51 +01:00