Louis Gesbert
f3164051cc
Allow "output subscopes" ; unify the internal representation of subscopes ( #597 )
2024-04-10 19:25:34 +02:00
Louis Gesbert
e19332522e
Output subscope: improvements following review
...
Thanks @denismerigoux
This renames the "ScopeDef" variant from `SubScope` to `SubScopeInput`, which is
much clearer and avoids confusion with the `SubScope` elements in the surface
AST (which are really subscopes and not variables at this point).
And improves some error message by specialising depending on whether we are
dealing with a subscope or an explicit structure.
2024-04-10 18:38:50 +02:00
Louis Gesbert
8ae9701a4f
Fix python name clash printing again, for non-ascii
2024-04-05 15:25:46 +02:00
Louis Gesbert
f71db385d5
Python backend: workaround func/var name clash
2024-04-05 14:45:17 +02:00
Louis Gesbert
75bf768264
Reformat
2024-04-04 10:56:56 +02:00
Louis Gesbert
0ec04c4925
Branch cleanup and test outputs update
...
Lots of tests have a new warning because they were calling subscopes without
using their outputs. A better solution could be to mark these subscopes as
`output`, now that it's possible !
2024-04-04 10:55:21 +02:00
Louis Gesbert
cde9a66295
Output scopes and subscope variable rework done
2024-04-04 10:24:18 +02:00
Louis Gesbert
852bebd357
Completely remove subscope input vars (use local vars)
2024-04-04 10:24:18 +02:00
Louis Gesbert
f151a9a794
Wip: handling subscope calls as normal definitions
...
- for the moment we still have specific vars for subscope inputs (in scopelang)
- this causes trouble with default-embedding of scope calls
2024-04-04 10:24:18 +02:00
Louis Gesbert
4eeb8221f4
Fix var bindings in desugared->scopelang
2024-04-04 10:24:18 +02:00
Louis Gesbert
7951661981
Turn subscope-vars into scope vars
...
They are to become citizens of the same class if we want to allow
output-subscopes (without unnecessary complications like deconstructing and
reconstructing the same structure). And it's reasonable to assume that they
share the same namespace.
With this we should shortly collapse the (internal) ambiguity between
- `subscope.subvar`: access to a variable within a subscope
- `subscope.subfield`: access to a field of the output structure contained in a
subscope variable
With the subscope a variable, these should now become strictly equivalent, so
the plan is that the first could be removed.
2024-04-04 10:24:18 +02:00
Louis Gesbert
eeaadef27c
Output subscopes: implement syntax
...
required a little generalisation and explicit parsing errors to avoid conflicts,
but it remains reasonable
2024-04-04 10:24:18 +02:00
Louis Gesbert
36eca9bf29
Temporary: switch to unreleased version of dates_calc to avoid str dep ( #595 )
2024-03-27 15:00:39 +01:00
Louis Gesbert
6ce9a6542e
CI: disable attempting to build the rescript bindings
...
Temporarily until we can find how to fix it on Github. At the moment the error
is impossible to reproduce locally...
All the rest from french-law is still tested (wrappers and benches in OCaml, js
and python)
2024-03-27 14:22:14 +01:00
Louis Gesbert
391ecb679c
Temporary: switch to unreleased version of dates_calc to avoid str dep
2024-03-26 15:54:29 +01:00
Louis Gesbert
60b2e6f205
Some tweaks helping with separate compilation of the examples ( #586 )
2024-03-25 16:54:10 +01:00
Louis Gesbert
c85e665650
CI: adjust script for new make rules & artifacts
2024-03-20 16:40:04 +01:00
Louis Gesbert
c9dca1fc6d
Fix multi-repo compilation and the 'make alltest' target
2024-03-20 14:41:10 +01:00
Louis Gesbert
adaaf735e6
'catala depends': allow multiple extensions
2024-03-20 14:41:10 +01:00
Louis Gesbert
619cafebb8
Reformat
2024-03-20 14:41:06 +01:00
Louis Gesbert
1a17098297
Move file functions that were in Cli to File
...
it's now possible because Globals where moved away
2024-03-19 15:26:32 +01:00
Louis Gesbert
0908ed85c3
Clerk: generate all .mli files as well
2024-03-19 15:26:32 +01:00
Louis Gesbert
36c8a7effc
Sort strings in natural order when they contain numbers
...
Seeing results sorted as 1 10 11 2 doesn't look nice.
2024-03-19 15:26:32 +01:00
Louis Gesbert
4cec981f62
Move global options of Cli to their own module
...
This resolves a dependency cycle that would forbid `Cli` from using the modue
`File`, which was annoying.
2024-03-19 15:18:35 +01:00
Louis Gesbert
77ba1b8b38
Clerk: split OCaml compiler & link rules
...
and fix call to `catala depends` for OCaml linking
2024-03-14 14:04:52 +01:00
Louis Gesbert
3c03da4a50
file.ml: add a function to cleanup relative paths
2024-03-14 14:04:52 +01:00
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
21a429bfcf
Jsoo runtime: fix over-wrapping of event manager callbacks
2024-03-12 16:05:38 +01:00
Louis Gesbert
959a49ee92
Jsoo runtime: expose the event manager to JS
2024-03-12 16:04:59 +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
c5b09d55b4
OCaml runtime: expose the dates_rounding
type for direct access from the backend
2024-03-08 17:36:00 +01:00
Louis Gesbert
05625daf0e
Repair the 'explain' plugin ( #588 )
2024-03-05 11:14:03 +01:00
Louis Gesbert
8b3d7fb64b
Repair the 'explain' plugin
2024-03-05 10:07:25 +01:00
Denis Merigoux
db508a006a
Fix R compilation ( #587 )
2024-03-04 14:01:02 +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
eac5f1271c
Support externals in scalc, correctly output them in Python ( #584 )
2024-02-27 11:41:28 +01:00
Louis Gesbert
c1cd32a8f8
Clerk: skip unchanged tests when running with '--test-flags'
...
To avoid duplicating runs of identical tests: other tests are unaffected by the
flags.
Also tweak the Makefile to avoid multiple dune runs
2024-02-26 14:56:43 +01:00
Louis Gesbert
b43cc04e16
Clerk tests: use separate dirs for different flags, to preserve caching
...
The default output remains at the top of _build if no specific flags have been
given, the others are in `_build/test<flags>`
2024-02-26 14:56:43 +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