Aminata-Dev
10d147a8b1
Messages renamed to Message (lighter syntax)
2023-06-13 11:50:56 +02:00
Denis Merigoux
7072369b2d
Starting to work
2023-06-13 11:43:13 +02:00
Denis Merigoux
926c9436e3
Fix some bugs
2023-06-13 11:15:32 +02:00
Denis Merigoux
0e99d1598b
Continue closure conversion
2023-06-13 10:49:46 +02:00
Denis Merigoux
45375dd7b5
Fix a bug in closure conversion
2023-06-12 15:21:06 +02:00
Denis Merigoux
cdae3e43ac
Improve names of temp variable in monadic pass
2023-06-12 15:02:08 +02:00
Louis Gesbert
16c93fbb0c
Reformat
2023-06-08 12:14:11 +02:00
Louis Gesbert
deaf40761e
Use ocolor instead of ANSITerminal
2023-06-08 12:11:55 +02:00
Denis Merigoux
79801292e9
Fix most doc errors
2023-06-02 17:17:45 +02:00
Denis Merigoux
4e6efe08da
All renamings done, on with actual refactor
2023-06-02 10:50:33 +02:00
Denis Merigoux
0faa97b8fc
Abstract messages interface
2023-06-02 10:50:29 +02:00
Denis Merigoux
8987d358e7
Implement the rest
2023-05-26 16:54:52 +02:00
Louis Gesbert
209be6b758
Improve integration of marks into the main AST
...
Two interdependent changes here:
1. Enforce all instances of Shared_ast.gexpr to use the generic type for marks.
This makes the interfaces a tad simpler to manipulate: you now write
`('a, 'm) gexpr` rather than `('a, 'm mark) gexpr`.
2. Define a polymorphic `Custom` mark case for use by pass-specific annotations.
And leverage this in the typing module
2023-05-17 17:37:00 +02:00
Louis Gesbert
fc531777c0
Rework and normalise the Marked
interface
...
The module is renamed to `Mark`, and functions renamed to avoid redundancy:
`Marked.mark` is now `Mark.add`
`Marked.unmark` is now `Mark.remove`
`Marked.map_under_mark` is now simply `Mark.map`
etc.
`Marked.same_mark_as` is replaced by `Mark.copy`, but with the arguments
swapped (which seemed more convenient throughout)
Since a type `Mark.t` would indicate a mark, and to avoid confusion, the type
`Marked.t` is renamed to `Mark.ed` as a shorthand for `Mark.marked` ; this part
can easily be removed if that's too much quirkiness.
2023-05-17 17:37:00 +02:00
Louis Gesbert
558fcb6fef
Build: remove unnecessary ppx on dcalc, lcalc
...
we only use `visitors` for positions on the surface AST
2023-05-17 14:08:32 +02:00
Louis Gesbert
ba52aae401
Cleanup: definitions.ml
is not for values
...
A module without mli is ok as long as it only contains types
Here we already stretch it a bit with some functor applications, but having
toplevel values defeats the expectation that you can safely `open` this module.
2023-05-17 13:26:47 +02:00
Louis Gesbert
b1955bd9d4
Don't use a debug printing function for OCaml output
2023-05-02 16:48:01 +02:00
Louis Gesbert
5e26c5c83d
Yet more printer improvements
...
- Fix the printer for scopes
- Improve the printer for struct types
- Remove `Print.expr'`. Use `Expr.format` as the function with simplified arguments instead.
2023-05-02 16:33:23 +02:00
Louis Gesbert
83e7a845fe
Cleanup expr printer interface
...
- `Print.expr` no longer needs the context
- This removes the need for `expr ~debug` + `expr_debug` ;
use `Print.expr` for normal (non-debug) output,
and `Print.expr' ?debug ()` for possibly debug output.
- This improves consistency of debug expr output in many places
- Prints simplified operators (without type suffix) in non-verbose mode
(this patch also fixes some cases of `Expr.skip_wrappers` and leverages the
binder equality provided by Bindlib)
2023-05-02 13:32:16 +02:00
adelaett
ba6fb5d405
fix documentation
2023-04-24 14:00:12 +02:00
Denis Merigoux
32ee2a0c72
Various small fixes to resolve conversations
2023-04-21 14:54:07 +02:00
Denis Merigoux
22b24a8634
Fusion of all optimizations done correctly
2023-04-21 12:32:09 +02:00
Denis Merigoux
067c7b9155
Merge branch 'master' into adelaett-withoutexceptionsfix
2023-04-21 10:55:36 +02:00
Denis Merigoux
107ff95dc4
Remove dependency on ppx_expect and use alcotest instead
2023-04-21 10:37:31 +02:00
Denis Merigoux
f9a6644da3
Cleanliness and aesthetics
2023-04-18 15:45:30 +02:00
Denis Merigoux
0b0451862e
Correct temp variable names
2023-04-18 14:29:22 +02:00
Denis Merigoux
732e058712
Fix typos
2023-04-18 11:42:33 +02:00
adelaett
b642bdbc54
update optimizations
2023-04-14 17:16:01 +02:00
adelaett
cffcdd7cf9
move monad_* to lcalc/Ast.ml
2023-04-14 14:36:28 +02:00
adelaett
02eeb4ad11
Include Bindlib_ext to Expr.Box
2023-04-14 14:18:28 +02:00
adelaett
ddeaa67ff7
Expr.eid -> Expr.fun_id
2023-04-14 14:07:51 +02:00
adelaett
920bd29835
documentation and deadcode elim
2023-04-14 13:59:06 +02:00
adelaett
f21cb1ff69
adding comment
2023-04-14 12:18:28 +02:00
adelaett
6b6272b0f2
adding an nicer error message
2023-04-14 12:16:09 +02:00
adelaett
123ae9e4c1
rename functions to make the code more readable
2023-04-14 12:15:16 +02:00
adelaett
0c357d2972
adding typing information for monad_* functions
2023-04-14 12:13:33 +02:00
adelaett
167ec9189f
adding a todo related to handle_default and handle_default_opt for
...
the closure conversion.
2023-04-14 12:02:03 +02:00
adelaett
5833608179
deadcode elim
2023-04-14 10:56:15 +02:00
adelaett
a53bc27d23
documentation
2023-04-14 10:48:31 +02:00
adelaett
cc66023e51
Thunking justifications and conclusion in avoid_translation pass
2023-04-12 10:58:21 +02:00
adelaett
49e9846386
fix a bug in the translation
2023-04-11 16:14:25 +02:00
adelaett
0cfc446455
implementing the behavior of handle_exceptions_opt for the lcalc interpretor
2023-04-11 14:09:57 +02:00
adelaett
3e35d4b826
Merge branch 'master' into adelaett-withoutexceptionsfix
2023-04-11 11:49:22 +02:00
adelaett
0e8eed7ee1
program equality function
2023-04-07 12:10:08 +02:00
adelaett
6c7ac061d4
fix identation and use new formatting functions as default
2023-04-07 11:57:14 +02:00
adelaett
12d85570e8
fix printing boxes & merge issues
2023-04-07 10:51:21 +02:00
adelaett
9b63743c2f
documentation
2023-04-07 10:49:48 +02:00
alain
ec40de83fc
Merge branch 'master' into adelaett-withoutexceptionsfix
2023-04-06 13:57:22 +02:00
adelaett
7ebfb2e66a
typo
2023-04-06 13:42:40 +02:00
Louis Gesbert
0098f00512
Yet some more small improvements to the AST encoding
2023-04-05 10:32:58 +02:00
adelaett
82992e9858
documentation
2023-04-04 17:02:26 +02:00
adelaett
60f8c229d5
fix to_ocaml new handledefault and handledefault opt operator
2023-04-04 15:57:33 +02:00
adelaett
06f2e56c74
fix closure conversion non-existent variable
2023-04-04 15:57:11 +02:00
adelaett
8ef3db005f
clean deadcode
2023-04-04 15:56:49 +02:00
adelaett
b6cf552913
lcalc optimization documentation
2023-04-04 15:17:59 +02:00
adelaett
685785eaa3
adding assert_closed function
2023-04-03 11:20:19 +02:00
adelaett
e9ead93f3f
fix typing errors
2023-03-31 16:01:05 +02:00
adelaett
573df8416f
Merge branch 'master' into adelaett-withoutexceptionsfix
2023-03-31 15:52:06 +02:00
adelaett
272dc9e8b3
optimization reorg
2023-03-31 15:37:18 +02:00
adelaett
beeecce091
correcting filter definition
2023-03-31 15:31:43 +02:00
adelaett
69ac8ca929
implementation of fold, reduce, map & filter in without exceptions
...
Work in progress: not working for filter & map
2023-03-31 11:24:43 +02:00
Louis Gesbert
038861a52c
Generic mapping function across different ASTs
...
Used in lcalc/compile_with_exceptions only at the moment
2023-03-30 18:57:51 +02:00
Louis Gesbert
1208744c6b
EmptyError is no longer a literal
...
it's much simpler to handle it as an AST node, as that makes the literal
identical across all AST passes.
2023-03-30 18:54:50 +02:00
Louis Gesbert
4973c74410
Remove date rounding mode from Operator.translate
2023-03-30 15:33:00 +02:00
adelaett
61830bc348
fixing runtime merge errors
2023-03-30 11:02:35 +02:00
adelaett
6dee3874cc
Merge branch 'master' into adelaett-withoutexceptionsfix
2023-03-30 10:50:32 +02:00
adelaett
7174480153
start of the translation of fold
2023-03-30 10:39:23 +02:00
adelaett
3e8aae99fe
typo in the traslation of lets
2023-03-30 10:39:07 +02:00
adelaett
729d634744
fixing translation of arrays
2023-03-30 10:38:54 +02:00
adelaett
df740eed05
fixing with-exceptions
2023-03-28 10:07:01 +02:00
adelaett
f3abc23c32
fixings tests (90% atm)
2023-03-28 09:54:44 +02:00
adelaett
c3d9ee299f
without exception: removing thunking
2023-03-28 09:54:04 +02:00
adelaett
9806eb7e0f
format for program
2023-03-23 13:46:17 +01:00
adelaett
72ceafd67c
scopes does not return optional terms
2023-03-23 10:45:44 +01:00
adelaett
78c0842dc6
optimization tests
2023-03-21 14:31:45 +01:00
Denis Merigoux
aa8ab3be3d
Merge branch 'master' into c_backend
2023-03-21 12:14:10 +01:00
adelaett
d2da1c3e43
advancing
2023-03-17 17:24:51 +01:00
adelaett
7c39ad953b
fix iota optmi
2023-03-17 17:23:10 +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
82af9e8305
unfolding more bugs
2023-03-16 17:14:33 +01:00
Raphaël Monat
7021c41f93
Add date rounding option within scopes
2023-03-16 16:55:55 +01:00
adelaett
26551434f2
correct monadic bind & map implementation
2023-03-14 18:36:05 +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
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
001a8205af
?
2023-02-28 08:39:30 +01:00
adelaett
6c3f0af9e0
invariant assertion checking
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
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
adelaett
839a7ffd83
finished refactoring
2023-02-20 17:58:29 +01:00