Commit Graph

3715 Commits

Author SHA1 Message Date
Denis Merigoux
91f8451899
Better beta-reduction 2023-12-18 14:49:43 +01:00
Denis Merigoux
35f829cd65
Fix default optimisation 2023-12-18 14:42:58 +01:00
Denis Merigoux
10d8c0b19f
Ignore files 2023-12-13 17:13:25 +01:00
Denis Merigoux
fe5b842a03
Simple example compiles and runs fine 2023-12-13 16:58:02 +01:00
Denis Merigoux
1f91c16e43
Fix little bug 2023-12-13 16:40:22 +01:00
Denis Merigoux
5c49581207
Compiling simple program correctly to C 2023-12-13 11:07:08 +01:00
Denis Merigoux
827fcef469
More progress but enums also require no struct literals 2023-12-12 18:21:20 +01:00
Denis Merigoux
adfb9297d3
Progress on compiling 2023-12-12 16:25:02 +01:00
Denis Merigoux
d88f67bb2c
Progress 2023-12-12 16:08:40 +01:00
Denis Merigoux
9198fe2514
Restore tests: more typing now 2023-12-12 13:52:57 +01:00
Denis Merigoux
7e221b29eb
Gets C89 struct initialization right 2023-12-11 17:28:32 +01:00
Denis Merigoux
37ab4187bd
Almost there with structs 2023-12-11 17:08:32 +01:00
Denis Merigoux
aca1d0e712
Fields in AST nodes 2023-12-11 15:59:47 +01:00
Denis Merigoux
3711026a4f
Beginning to compile 2023-12-11 14:47:09 +01:00
Denis Merigoux
5b7470fd0d
Compile HandleDefaultOpt specially 2023-12-11 14:34:31 +01:00
Denis Merigoux
f072694e50
Trying to progress 2023-12-11 13:56:13 +01:00
Denis Merigoux
1d4119c3a3
Simple test 2023-12-11 13:26:13 +01:00
Denis Merigoux
79a261bb47
Restore CI 2023-12-11 11:44:25 +01:00
Denis Merigoux
c61bdbc5d7
Setting up special compilation 2023-12-11 11:31:51 +01:00
Denis Merigoux
4e8d2ef219
Beginning to compile specially HandleDefaultOp, Map, Fold, etc. for C 2023-12-11 11:31:51 +01:00
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