Commit Graph

2888 Commits

Author SHA1 Message Date
Aymeric Fromherz
5f04e0efaf cleanup 2023-03-28 13:08:24 +09:00
Aymeric Fromherz
d0ef61219f Add expected outputs for tests 2023-03-28 13:03:44 +09:00
Aymeric Fromherz
8fdd39d15a Add negative test for let_in 2023-03-28 13:01:41 +09:00
Aymeric Fromherz
c711b0b1d7 cleanup 2023-03-28 13:00:07 +09:00
Aymeric Fromherz
71ebd3a2c7 Test for Z3 let_in 2023-03-28 12:49:14 +09:00
Aymeric Fromherz
082caae498 Add support for let_in in Z3 backend 2023-03-28 12:48:44 +09:00
Louis Gesbert
69be2f6ed8 Fix literate output of dates 2023-03-21 16:59:34 +01:00
Louis Gesbert
db09eb0c42
Add date rounding option in scope (#397) 2023-03-17 10:14:36 +01:00
Raphaël Monat
d5cd5b206a Show conflicting date rounding mode declarations when they happen 2023-03-16 18:51:01 +01:00
Raphaël Monat
8981b21edb Add test for date rounding option conflict 2023-03-16 17:20:14 +01:00
Raphaël Monat
51ea9d8cff Format code 2023-03-16 17:20:14 +01:00
Raphaël Monat
d3c27799de Raise exception when more than one rounding mode option has been specified 2023-03-16 17:20:13 +01:00
Raphaël Monat
1e1e3b538e Simplify format 2023-03-16 17:20:13 +01:00
Raphaël Monat
b013f4257d Update parser error message 2023-03-16 17:20:13 +01:00
Raphaël Monat
887ec00d0e Add explicit match 2023-03-16 17:20:13 +01:00
Raphaël Monat
8fe20e7fa2 Update syntax 2023-03-16 17:20:13 +01:00
Raphaël Monat
c4b0c6c107 Remove stale files 2023-03-16 17:20:13 +01:00
Raphaël Monat
1e0eddfa1f Update syntax 2023-03-16 17:20:13 +01:00
Raphaël Monat
ce858a74df Update syntax cheatsheet 2023-03-16 17:20:13 +01:00
Raphaël Monat
5cf6bdffb8 Add tests for date rounding option 2023-03-16 17:20:13 +01:00
Raphaël Monat
a09b4b82fd Updating french_law 2023-03-16 17:20:13 +01:00
Raphaël Monat
30c6f8e321 Change age check scope names 2023-03-16 17:20:13 +01:00
Raphaël Monat
64fa32392f Update generated files 2023-03-16 17:20:09 +01:00
Raphaël Monat
5fc1e8e5d5 Fix operator printing 2023-03-16 16:55:55 +01:00
Raphaël Monat
6dac7007f2 Tentative CI fix 2023-03-16 16:55:55 +01:00
Raphaël Monat
7021c41f93 Add date rounding option within scopes 2023-03-16 16:55:55 +01:00
Louis Gesbert
bdfb206650
Compile LaTeX code using minted without the Python venv (#430) 2023-03-16 15:18:06 +01:00
Louis Gesbert
ebf957008d Makefile: loading venv is no longer required for most rules 2023-03-14 17:35:22 +01:00
Louis Gesbert
abc5a00c2f Compile LaTeX code using minted without the Python venv
This is a hack, but not a dirty one: a new command `catala pygmentize` is added,
which is just a wrapper around `pygmentize` that calls it with the proper lexers
defined.

The point is that this needs no installation, just a stock `pygmentize`
installation and the `catala` binary.
2023-03-14 17:35:22 +01:00
Denis Merigoux
7f83a99daa
French law JS must be created with a dune release profile (#429) 2023-03-14 14:11:49 +01:00
Louis Gesbert
7914d9aaef Build: enforce "release" profile for website-assets
but make sure to keep a consistent dune profile otherwise for `make all`,
avoiding multiple rebuilds.

This saves 30s CPU time on a `make all` that doesn't specify
`DUNE_PROFILE=release`
2023-03-14 13:49:50 +01:00
Denis Merigoux
283d82bfce
French law JS must be created with a dune release profile 2023-03-14 11:53:27 +01:00
Denis Merigoux
43ad27037a
Embed the Pygments lexers in Catala (#428) 2023-03-14 10:25:52 +01:00
Louis Gesbert
f1e44619e0 LaTeX literate output: handle pygments coloration from within Catala
This leverages the embedded lexer already used for HTML output, and uses the
LaTeX pygments backend to colorise code directly, without the need for `minted`.
2023-03-13 22:33:48 +01:00
Louis Gesbert
5282aec400 LaTeX output: start refactor 2023-03-13 14:44:34 +01:00
Louis Gesbert
508992de33 Embed the Pygments Catala lexer
This enables the HTML output to work without a custom Pygments installation (or
the proper venv activated)
2023-03-13 14:41:24 +01:00
Louis Gesbert
b75910d087
fix(runtimes/ocaml): rename fun_call.inputs into fun_call.fun_inputs (#427) 2023-03-13 10:51:58 +01:00
adelaett
907244362d Update lock files 2023-03-13 00:23:53 +00: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
97b4ec8a6a CI: fix generation of manpage artifacts 2023-03-10 17:42:48 +01:00
Louis Gesbert
2a482c92fc
Fix colors in HTML literal output, add some HTML docs to the artifacts (#426) 2023-03-10 17:13:21 +01:00
Louis Gesbert
e7f44d71fe Update install instructions
* mention the need for Python venv
* it's no longer true that Catala isn't released on opam
* website assets should be generated in release mode (this affects js
  minification, among other things)
* cleanup stale API docs during `rsync`
2023-03-09 18:55:24 +01:00
Louis Gesbert
c054aa89c9 Add the HTML manpages to the artifacts 2023-03-09 16:27:04 +01:00
Louis Gesbert
16e72f0ba5 README: add note on nightly artifacts 2023-03-09 16:07:36 +01:00
Louis Gesbert
37d9a6cefd Add the HTML tutorials to the published artifacts 2023-03-09 15:47:41 +01:00
Louis Gesbert
e1fe37ad09 Fix coloration in HTML output 2023-03-09 15:46:00 +01:00
Louis Gesbert
e4408b1ba1
Prepare release 0.8.0 (#425) 2023-03-09 09:04:56 +01:00
Louis Gesbert
deb12d2c4a Bump version to 0.8.0
Changelog:
---

A lot has been going on, with more than 530 patches and 70 PRs merged since
0.7.0 last summer. In summary:

- Quite a lot of syntax improvements and changes. Checkout the latest
  [cheat-sheet](https://catalalang.github.io/catala/syntax.pdf) for an overview

- Allow local `let ... equals ... in ...` definitions

- Better error messages and positions throughout

- Added the ability to directly call a scope and retrieve its outputs, like a
  function

- Added disambiguation, allowing to access structure fields without specifying
  the structure type each time

- Added automated resolution of operators, allowing e.g. to write just `+` in
  place of all the type-specific operators `+.`, `+$`, `+@`, `+^`, etc.

- More consistent priority for operators. It is no longer allowed to write `a
  and b or c` without parenthesis.

- Added and changed some operators (`date + duration` now allowed either way,
  `int / int` now returns a decimal, added `duration / duration`)

- Added the ability to have variables and functions defined at
  top-level (outside of any scope). See annex A of the tutorial for details.

- Added support for functions with multiple arguments

- Some big refactors in the compiler, allowing much better code sharing between
  the different passes, and making it much easier to extend. Also added the
  possibility to run the type-checker earlier, etc.

- Countless bug-fixes

- Improvements to our proof backend with Z3

- A tool to automatically synchronise with the upstream French law from
  Legifrance
2023-03-08 18:07:53 +01:00
Louis Gesbert
88406072bb
Some small fixes, error message improvements, CI artifacts cleanup (#424) 2023-03-08 18:04:11 +01:00
Louis Gesbert
67ed7447b5 Cleanup the generated artifacts 2023-03-08 15:27:49 +01:00