catala/.nix/clerk.nix
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

46 lines
867 B
Nix

{ lib
, buildDunePackage
, odoc
, re
, ansiterminal
, cmdliner
, ninja_utils
, alcotest
, catala
, ninja
, colordiff
}:
buildDunePackage {
pname = "clerk";
version = "0.8.0"; # TODO parse `catala.opam` with opam2json
minimumOCamlVersion = "4.11";
src = ../.;
duneVersion = "3";
propagatedBuildInputs = [
odoc
re
ansiterminal
cmdliner
ninja_utils
alcotest
catala
];
# todo: the current colordiff in nixpkgs always prints the banner. This make the logs totally unreadable.
nativeBuildInputs = [ catala ninja colordiff ];
doCheck = true;
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; [ ];
};
}