Denis Merigoux
4f7b678cd7
Making progress and fixing bugs
2023-12-11 11:31:51 +01:00
Denis Merigoux
192e50540b
Correctly compile function pointer types
2023-12-11 11:31:51 +01:00
Denis Merigoux
4d969e13c5
Enum type
2023-12-11 11:31:51 +01:00
Denis Merigoux
2eaac39bb1
Some progress
2023-12-11 11:31:51 +01:00
Denis Merigoux
ad3e140e88
Progress on C backend
2023-12-11 11:31:51 +01:00
Denis Merigoux
5f045110b9
Add tuples to Scalc
2023-12-11 11:31:51 +01:00
Denis Merigoux
6652dc8df2
Add C backend command
2023-12-11 11:31:45 +01:00
Denis Merigoux
6f3679d8ca
Refactor AL example and improve the website-assets generation workflow ( #550 )
2023-12-11 11:31:07 +01:00
Denis Merigoux
e2aeb49a9b
Correct fix
2023-12-11 10:44:25 +01:00
Emile Rolley
a809410338
refactor(build): run example.js after compiling french_law.js
2023-12-08 16:10:18 +01:00
Louis Gesbert
11654d88b8
Small module-handling fixes ( #545 )
2023-12-08 15:35:41 +01:00
Louis Gesbert
5b1462d529
Clerk: allow to include non-yet-existing directories
...
Useful when you have wide `-I` options that not all targets may depend on.
2023-12-08 13:56:31 +01:00
Louis Gesbert
a988ad473b
Fix handling of embedded context through modules
...
Exceptions raised by the interpreter from within the native modules were not
handled correctly.
2023-12-08 13:56:18 +01:00
Denis Merigoux
08661a50d3
More explanation-friendly code
2023-12-08 11:24:56 +01:00
Louis Gesbert
509ce9788a
Document and first test for externals ( #538 )
2023-12-07 16:06:25 +01:00
Louis Gesbert
10ba1d6e7b
Adelaett invariant typing default ( #541 )
2023-12-07 15:02:20 +01:00
adelaett
b5e7b297aa
typo fixing
2023-12-07 13:48:46 +01:00
adelaett
9f4a238a4a
Fix error messages for unexpected types.
...
do not retype the terms in the cases where checking invariant is not mandatory.
2023-12-07 13:45:50 +01:00
adelaett
f63c3d3fc3
fix error in a test
2023-12-07 11:27:14 +01:00
adelaett
d7327e53c0
/!\ problematic tests
2023-12-07 11:27:14 +01:00
adelaett
a69776e6b5
checking invariants on all tests as well as on social benefits of french law
2023-12-07 11:27:14 +01:00
adelaett
934ab328ec
invariant checking is now available without printing the ast using the typecheck subprogram
2023-12-07 11:27:14 +01:00
adelaett
e1bda33e07
fmt
2023-12-07 11:27:14 +01:00
adelaett
030705eacd
Make the typing invariant more precise.
2023-12-07 11:27:14 +01:00
adelaett
67e36dcf42
Adding Typing Invariant for TDefault
...
Added a new type safety invariant to ensure that the type `TDefault` can only appear in certain positions,
* On the left-hand side of an arrow with arity 1, as the type of a scope (for scope calls).
* At the root of the type tree (outside a default).
* On the right-hand side of the arrow at the root of the type (occurs for rentrant variables).
This is crucial to maintain the safety of the type system, as demonstrated in the formal development.
The invariant was checked on all tests cases and on family and housing benefits.
Adjusted inversion invariant about app to handle external objects as well.
2023-12-07 11:27:14 +01:00
Denis Merigoux
2486fbcfb5
Fix LaTeX weaving failing with code blocks ( #544 )
2023-12-07 11:08:04 +01:00
Denis Merigoux
628cbc4fec
Fix #543
2023-12-06 16:58:38 +01:00
Louis Gesbert
7160093682
Allow scope execution in compiled ocaml executables
2023-12-06 11:06:54 +01:00
Louis Gesbert
54d956823b
Some module fixes
2023-12-06 11:06:54 +01:00
Louis Gesbert
9a255522be
Document and first test for externals
...
Also some fixes for Clerk to properly support them
2023-12-06 11:06:54 +01:00
Louis Gesbert
0d5759d99c
Allow pre-declarations without an expression for topdefs
...
it allows for better splitting between metadata and code (even if the type has
to be repeated at the moment)
2023-12-05 16:21:04 +01:00
Louis Gesbert
14cbe07d18
Clerk and testing improvements, rework resolution of module elements ( #535 )
2023-12-05 16:18:46 +01:00
Louis Gesbert
e689f0c47b
Small cleanup and doc on the module handling refactor
2023-12-05 16:01:56 +01:00
Denis Merigoux
f71f253cb5
Update CI badge
2023-12-05 15:19:42 +01:00
Louis Gesbert
cc8ca9682e
Remove the nix CI ( #542 )
2023-12-05 14:01:27 +01:00
adelaett
f2f13270c6
Remove the nix CI
2023-12-05 13:44:01 +01:00
Denis Merigoux
956b03c035
fix(build): correctly manage the aides_logement example ( #537 )
2023-12-04 09:16:53 +01:00
Emile Rolley
0dea917d23
pkg(french_law): @catala-lang/french-law@0.8.10
...
AL: Mise à jour arrêté du 22 septembre 2023 (https://github.com/CatalaLang/catala/pull/530 )
2023-12-01 15:31:29 +01:00
Emile Rolley
f320b503b7
fix(build): correctly manage the aides_logement example
2023-12-01 15:06:47 +01:00
Emile Rolley
f81561449a
build(assets): remove the ocaml doc generation from website-assets-base
2023-12-01 11:20:47 +01:00
Louis Gesbert
1ae955b504
Reformat
2023-11-30 23:53:38 +01:00
Louis Gesbert
8df49dcea2
More tests and some fixes
2023-11-30 23:49:19 +01:00
Louis Gesbert
3649f92975
Rework resolution of module elements
...
This changes the `decl_ctx` to be toplevel only, with flattened references to
uids for most elements. The module hierarchy, which is still useful in a few
places, is kept separately.
Module names are also changed to UIDs early on, and support for module aliases
has been added (needs testing).
This resolves some issues with lookup, and should be much more robust, as well
as more convenient for most lookups.
The `decl_ctx` was also extended for string ident lookups, which avoids having
to keep the desugared resolution structure available throughout the compilation
chain.
2023-11-30 21:14:12 +01:00
Louis Gesbert
86b7f80e90
Clerk improvements
...
- Add a `-I` option that allows defined modules to be available from other
directories
- Add reporting of the number of successful / failed tests
- Locate the project root, and always run the commands from there
2023-11-30 21:14:12 +01:00
Louis Gesbert
c019d1568f
Clerk: fix handling of dependency on the catala exec
2023-11-30 17:46:38 +01:00
Louis Gesbert
d4198f52b4
Reformat
2023-11-28 17:22:46 +01:00
Louis Gesbert
f3dd1c06d0
Interpreter: handle lcalc with exceptions ( #533 )
2023-11-28 15:43:29 +01:00
Louis Gesbert
d256cf5eec
Update minimum OCaml version
2023-11-28 15:41:27 +01:00
Louis Gesbert
5b5790b95b
Fix compilation of the clerk opam package
2023-11-28 15:33:30 +01:00
Louis Gesbert
326ee07f5d
Interpreter: handle lcalc with exceptions
2023-11-28 15:02:11 +01:00