We are very happy to announce the release of Vcsn 2.2! This version,
code-named "the lazy release", concludes the work from Antoine and Valentin,
who left EPITA for their final internship.
In addition to the usual load of improvements (more doc and less bugs), this
version features some noteworthy changes:
- several algorithms now offer a lazy variant: compose, conjunction,
derived_term, determinize, insplit, and proper. Instead of completing the
construction on invocation, the result is built incrementally, on demand,
e.g., when requested by an evaluation.
This is especially useful for large computations a fraction of which is
actually needed (e.g., composition of two large automata and then with a
small one), or for computations that would not terminate (e.g.,
determinization of some weighted automata).
- the functions `automaton.lightest` and `automaton.lightest_automaton`
explore the computations (i.e., paths of accepted words) with the smallest
weights (dubbed "shortest paths" for tropical-min semirings). They
feature several implementations controlled via the `algo` argument.
- rational expressions now support UTF-8 operators in input and output.
They also learned a few tricks to be better looking (e.g., `aaa` => `a³`).
- several new algorithms or improvements or generalizations of existing ones.
- a number of performance improvements.
More details are available on Vcsn’s web site.
People who worked on this release:
- Akim Demaille
- Antoine Pietri
- Lucien Boillod
- Nicolas Barray
- Raoul Billion
- Sébastien Piat
- Thibaud Michaud
- Valentin Tolmer
People who have influenced this release:
- Alexandre Duret-Lutz
- Jacques Sakarovitch
- Luca Saiu
Vcsn 2.2: http://vcsn.lrde.epita.fr/Vcsn2.2
Everything about Vcsn: http://vcsn.lrde.epita.fr
Online Vcsn: http://vcsn-sandbox.lrde.epita.fr