adelaett
9a34ee95b1
equality program
2023-03-17 17:20:35 +01:00
adelaett
61ad00f277
unit test infrastructure for optimization
2023-03-17 17:19:50 +01:00
adelaett
850a1fdb56
more optimization on fold
2023-03-17 11:34:52 +01:00
adelaett
4038ea02be
rainbox parenthesis
2023-03-16 17:15:08 +01:00
adelaett
82af9e8305
unfolding more bugs
2023-03-16 17:14:33 +01:00
adelaett
26551434f2
correct monadic bind & map implementation
2023-03-14 18:36:05 +01:00
adelaett
91ed8e1f5d
special handling of the option constructor as a polymorphic one with custom typing rules
2023-03-14 18:31:32 +01:00
adelaett
366a0d952b
introducing new operators for handleing defaults
2023-03-14 18:30:58 +01:00
adelaett
4d3b021eef
finished the implementation, but a few issues are missing
2023-03-13 16:51:06 +01:00
adelaett
b891114b72
tentative at a fully monadic encoding
2023-03-10 15:35:03 +01:00
adelaett
a8f0155c6e
Revert "toying"
...
This reverts commit 841b14aa0f
.
2023-03-10 15:34:29 +01:00
adelaett
21577ff1ba
introducing usefull term in the shared ast
2023-03-10 15:33:58 +01:00
adelaett
1580272d7f
more precise invariant
2023-03-10 15:32:42 +01:00
adelaett
ba74bbc52a
adding MapLabels and SetLabels to the standard Uid definitions.
2023-03-10 15:32:27 +01:00
adelaett
841b14aa0f
toying
2023-03-06 18:26:46 +01:00
adelaett
6c0e04942f
corrected iota optimization
2023-03-06 16:00:41 +01:00
adelaett
78f121b44a
before any issues with mark on code_item
2023-03-03 11:39:55 +01:00
adelaett
73bd4b4064
finished to detect unpure subexpressions
2023-02-28 14:26:48 +01:00
adelaett
43b6595a09
Revert "not working fix for from_scopelang"
...
This reverts commit 1c837ec3b5
.
2023-02-28 09:32:25 +01:00
adelaett
1c837ec3b5
not working fix for from_scopelang
2023-02-28 09:32:10 +01:00
adelaett
178367efc0
adding invariant about App(EStructAccess)
2023-02-28 09:07:12 +01:00
adelaett
4cd3ec7cc3
Add an optimization pass to remove struct access of struct constructor
...
ie { e = x}.e -> x
2023-02-28 09:06:33 +01:00
adelaett
001a8205af
?
2023-02-28 08:39:30 +01:00
adelaett
631b6d77ff
Revert "Abandoning json conversion :("
...
This reverts commit 02780f5439
.
2023-02-28 08:37:50 +01:00
adelaett
02780f5439
Abandoning json conversion :(
2023-02-28 08:36:45 +01:00
adelaett
5fe09238c5
better error management when building with make_app
2023-02-28 08:36:45 +01:00
adelaett
2ae2ff7d50
adding a non-passing invariant
2023-02-28 08:36:34 +01:00
adelaett
75dc978fa9
remove logs from the no_partial_evaluation invariant
...
removed error_on_empty when functions
2023-02-27 11:20:59 +01:00
adelaett
b5f3621302
serialization wip
2023-02-27 11:20:59 +01:00
adelaett
9ec2b7785d
more work on invariants
2023-02-27 11:20:59 +01:00
adelaett
382150b513
new invariant option when launching the compiler
2023-02-27 11:20:59 +01:00
adelaett
6c3f0af9e0
invariant assertion checking
2023-02-27 11:20:59 +01:00
adelaett
173859d10e
invariant checking (untested)
2023-02-27 11:20:59 +01:00
adelaett
9319e94617
fix typo
2023-02-27 11:20:59 +01:00
adelaett
9a68563488
assert_internal & skeleton for the static pass
2023-02-27 11:20:59 +01:00
adelaett
8784ae6175
unpure detection in expressions
2023-02-27 11:20:59 +01:00
adelaett
214bc55aae
internal error message
2023-02-27 11:20:59 +01:00
adelaett
0262019d45
make app
2023-02-27 11:20:59 +01:00
adelaett
363ef39704
let case
2023-02-27 11:20:59 +01:00
adelaett
2a222f0aab
changed nix dependency from ocamlformat 24.1 to 21.0
2023-02-27 11:20:59 +01:00
adelaett
e765ee8a0c
requesting to have a typed tree
2023-02-27 11:20:59 +01:00
adelaett
44ce5a636b
fix tentative for functions applications
2023-02-27 11:20:59 +01:00
adelaett
5b33b39636
new helpers functions in lcalc's ast
2023-02-27 11:20:59 +01:00
Louis Gesbert
5bd140ae5f
Arrow List ( #404 )
2023-02-22 14:06:55 +01:00
adelaett
4f029db47b
explicitly don't accept multiple arguments from surface to desugared
2023-02-22 12:21:55 +01:00
adelaett
9f31715a47
style
2023-02-22 12:11:42 +01:00
adelaett
8553b9dd7e
Alternative printing of type TArrow
...
Changed the typing printing in the pretty printer to:
* () -> unit for empty lists
* a -> b for single elements lists
* (a, b, c, d) -> b for multiple elements lists
2023-02-22 11:52:22 +01:00
adelaett
bd0243359e
changed the invariant documentation of scopelang -> dcalc
...
Since functions inside catala can now have multiple arguments (while
not yet being user-definable) the invariant is now about partial
evaluation not being possible.
2023-02-22 11:42:48 +01:00
adelaett
576f21f69c
Added documentation for encoding constructors in the typing inference
2023-02-22 11:41:21 +01:00
adelaett
51b5ccb08e
change operator definition style to something more readable
2023-02-22 11:40:22 +01:00