2022-05-31 17:56:12 +03:00
|
|
|
{ lib
|
|
|
|
, buildDunePackage
|
|
|
|
, odoc
|
|
|
|
, re
|
|
|
|
, ansiterminal
|
2023-02-24 17:06:50 +03:00
|
|
|
, cmdliner
|
2022-05-31 17:56:12 +03:00
|
|
|
, ninja_utils
|
|
|
|
, alcotest
|
2022-06-07 09:54:03 +03:00
|
|
|
, catala
|
2023-02-24 17:06:50 +03:00
|
|
|
, ninja
|
|
|
|
, colordiff
|
2022-05-31 17:56:12 +03:00
|
|
|
}:
|
|
|
|
|
2023-02-24 17:06:50 +03:00
|
|
|
buildDunePackage {
|
2022-06-07 09:36:15 +03:00
|
|
|
pname = "clerk";
|
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 15:27:16 +03:00
|
|
|
version = "0.8.0"; # TODO parse `catala.opam` with opam2json
|
2022-05-31 17:56:12 +03:00
|
|
|
|
|
|
|
minimumOCamlVersion = "4.11";
|
|
|
|
|
|
|
|
src = ../.;
|
|
|
|
|
2022-09-05 13:47:52 +03:00
|
|
|
duneVersion = "3";
|
2022-05-31 17:56:12 +03:00
|
|
|
|
|
|
|
propagatedBuildInputs = [
|
|
|
|
odoc
|
|
|
|
re
|
|
|
|
ansiterminal
|
2023-02-24 17:06:50 +03:00
|
|
|
cmdliner
|
2022-05-31 17:56:12 +03:00
|
|
|
ninja_utils
|
|
|
|
alcotest
|
2022-06-07 09:54:03 +03:00
|
|
|
catala
|
2022-05-31 17:56:12 +03:00
|
|
|
];
|
2023-02-24 17:06:50 +03:00
|
|
|
|
|
|
|
# todo: the current colordiff in nixpkgs always prints the banner. This make the logs totally unreadable.
|
|
|
|
nativeBuildInputs = [ catala ninja colordiff ];
|
|
|
|
doCheck = true;
|
2022-05-31 17:56:12 +03:00
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
homepage = "https://github.com/CatalaLang/catala";
|
|
|
|
description =
|
|
|
|
"Build system for Catala, a specification language for tax and social benefits computation rules";
|
|
|
|
license = licenses.asl20;
|
|
|
|
maintainers = with maintainers; [ ];
|
|
|
|
};
|
|
|
|
}
|