alain
ec40de83fc
Merge branch 'master' into adelaett-withoutexceptionsfix
2023-04-06 13:57:22 +02:00
Denis Merigoux
7d278caa30
Update OCaml assets
2023-04-04 15:19:08 +02:00
adelaett
6dee3874cc
Merge branch 'master' into adelaett-withoutexceptionsfix
2023-03-30 10:50:32 +02:00
Raphaël Monat
7021c41f93
Add date rounding option within scopes
2023-03-16 16:55:55 +01:00
Emile Rolley
b2383d33bc
fix(runtimes/ocaml): rename fun_call.inputs into fun_call.fun_inputs
2023-03-11 17:37:24 +01:00
Louis Gesbert
42b8adb968
Add a duration / duration
overload
...
Interstingly enough, it was already implemented in the Python backend.
Required to implement *pro rata temporis*, which the US tax section 121 does
make use of.
Only allowed for durations expressed in days (as returned by `<date> - <date>`),
of course.
2023-03-08 15:17:58 +01:00
adelaett
b5f3621302
serialization wip
2023-02-27 11:20:59 +01:00
adelaett
13685b3fce
correct logs parsing in the runtime
2023-02-24 12:04:45 +01:00
adelaett
5000057dde
new parser/formater in runtimes/ocaml/runtime.ml
2023-02-23 17:17:25 +01:00
Denis Merigoux
830ec0e60c
Python runtime: Fix source positions linked to run-time errors ( #401 )
2023-02-21 10:27:01 +01:00
Rohan Padhye
940485dca4
Python runtime: Money division can simply use Integer division to remain rational
...
This is cleaner than referencing `mpq` explicitly, as it still returns a `Decimal` with full rational (non-floating) precision.
2023-02-20 22:40:05 -05:00
Rohan Padhye
6c1963e7dd
Python runtime: Money division should remain rational
...
Fixes #402
2023-02-20 22:34:03 -05:00
Rohan Padhye
e7a331a2ae
Python runtime: Fix source positions linked to run-time errors
2023-02-20 15:49:53 -05:00
Rohan Padhye
4c9bff1b74
Python backend: Date difference should always return duration in days
2023-02-14 13:48:19 -05:00
Denis Merigoux
b3057e1d7c
Continue cleaning
2023-01-07 20:42:42 +01:00
Denis Merigoux
2f4a51ce64
Bug fixed! It was tricky
2023-01-07 20:22:36 +01:00
Denis Merigoux
c723249337
Managed to find a MWE of the bug
2023-01-06 17:07:43 +01:00
Louis Gesbert
f236e2cfb2
Replace the type conversion and rounding operators with overloads
...
Ref. #366
Also updates `CONTRIBUTING.md`.
This was pretty straight-forward :)
2022-12-13 15:32:49 +01:00
Louis Gesbert
c94509e0bb
Remove integer division from the language
...
it's unlikely to be used in any law, and likely to be cause for confusion.
best of all, the new operator has a different return type, which
ensures no inconsistency with the change can get overlooked.
2022-12-13 12:35:02 +01:00
Louis Gesbert
9b939d07a4
New syntax for collection operations
2022-12-13 12:30:40 +01:00
Louis Gesbert
fea01cfe4c
Add overloaded operators for the common operations
...
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-12-13 11:55:24 +01:00
Denis Merigoux
0beaf6eb31
Comparing with Catala!
2022-09-26 17:29:05 +02:00
Denis Merigoux
32c89cc3a2
Fix Python backend for housing benefits
2022-09-26 13:28:07 +02:00
Denis Merigoux
89b625642f
Money from int and not from float
2022-09-26 13:28:06 +02:00
Denis Merigoux
01e333b833
Use dates_calc
library ( #306 )
...
This is a WIP. Current version 0.0.2 of `dates_calc` is in the process of being published, so I guess the CI should fail currently.
- [x] Test current implementation
- [x] I commented out the `duration / duration` operator, can we remove it?
- [x] Need to add support for first and last day of month
- [x] Finish porting the Z3 backend to dates_calc
2022-09-05 15:57:08 +02:00
Denis Merigoux
6130151c8e
Fix bug and typos
2022-09-05 14:50:37 +02:00
Raphaël Monat
bd17857e90
Format
2022-09-05 13:51:24 +02:00
Raphaël Monat
973c346328
Add support for is_leap_year in z3 backend and runtime
2022-09-05 09:28:58 +02:00
Denis Merigoux
755b1212a2
Remove division durations
2022-08-19 15:21:29 +02:00
Raphaël Monat
0b73fbbac4
Add support for first and last day of month operators
2022-08-18 21:22:50 +02:00
Raphaël Monat
3e71f25bfe
Post merge fixes on using dates_calc
2022-08-06 17:49:06 +02:00
Raphaël Monat
ffd2e1dec3
Merge branch 'master' into dates_calc_lib
2022-08-06 17:26:55 +02:00
Emile Rolley
ba620fca28
ocamlformat: new break-infix rule
2022-08-05 10:55:48 +02:00
Louis Gesbert
c964495c59
Generate website assets through dune
2022-08-03 19:04:13 +02:00
Emile Rolley
1a6934b538
feat(build): add the generation of json schemas to the build workflow
2022-07-29 18:47:42 +02:00
Emile Rolley
26663f227d
fix(plugins/web): fix enum payload + retrieve all required types
2022-07-29 18:42:47 +02:00
Emile Rolley
8e3fd34424
refactor(plugins/jsoo): encode Catala date in JS string object instead of date
2022-07-29 18:42:41 +02:00
Denis Merigoux
4845196b5b
Add source positions in all backends exceptions
2022-07-29 18:42:14 +02:00
Emile Rolley
6e825906de
refactor(api_web): factorizes the api_web code + updates .gitattributes
2022-07-28 15:02:43 +02:00
Denis Merigoux
974c2b8d58
Fix bug in Python backend
2022-07-28 15:02:43 +02:00
Denis Merigoux
fa55a83fb4
Merge branch 'master' into 290-jsoo-wrapper-plugin
2022-07-22 17:54:51 +02:00
Emile Rolley
d9045499c0
refactor(french_law/ocaml): refactor the api_web.ml
2022-07-22 17:01:33 +02:00
Emile Rolley
231f327efb
feat(jsoo): v1 jsoo plugin
2022-07-22 16:52:56 +02:00
Emile Rolley
3ab5129572
feat(jsoo): add conversion fun generation (except mutiple cons args)
2022-07-22 16:52:56 +02:00
Emile Rolley
7ad81158eb
feat(runtime/jsoo): add date conversion functions
2022-07-22 16:52:56 +02:00
Emile Rolley
b2bba6eaf0
feat(jsoo): factorize log events related function to the object eventManager
2022-07-22 16:52:56 +02:00
Emile Rolley
d3d254033c
feat(runtimes/jsoo): add a new class type duration with conv functions
2022-07-22 16:52:56 +02:00
Emile Rolley
0c180e12f9
refactor(runtimes): add runtime_ocaml and runtime_jsoo in the catala package
2022-07-22 16:52:56 +02:00
Emile Rolley
c09b457988
refactor(runtimes): add move the OCaml runtime into runtimes/ocaml
2022-07-22 16:52:56 +02:00
Denis Merigoux
dcf80f4bec
Adding first_day_of_month and last_day_of_month
2022-07-21 14:14:04 +02:00