Vcsn 2.2 (February 19th, 2016)


Revision as of 11:29, 11 January 2017 by Akim Demaille (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 => ).
  • several new algorithms or improvements or generalizations of existing ones.
  • a number of performance improvements.

For more details, see the NEWS file.

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
  • Sylvain Lombardy


Available Ports

  • Docker
Run this command to pull and start the Vcsn docker image on port 8888
docker run -d -p 8888:8888 lrde/vcsn:2.2
  • Debian Jessie
Run this command
echo 'deb stable/' >/etc/apt/sources.list.d/lrde.list
apt-get update
apt-get install vcsn
# Jupyter is not currently available on Debian
apt-get install python3-pip python3-dev libzmq3-dev
pip3 install jupyter
  • Archlinux (AUR)
Run this command:
yaourt -S vcsn
  • MacPorts
Run this command:
sudo port sync && sudo port install vcsn



In order to compile Vcsn 2.2, you need:

C++ compiler
Clang 3.6 or newer and GNU G++ 4.9 or newer are known to work properly.
The display of automata is made using AT&T Graphviz library. (On Ubuntu/Debian, install the following package: graphviz)
Boost (version 1.49 or later) provides free peer-reviewed portable C++ source libraries (at least the Boost.Python and Boost.Regex components, and probably others).
The Flex scanner generater, 2.5.37 or better.
Compiler cache.
To build the C++ reference manual.
Although not strictly needed, it is required if you want to enjoy the Vcsn interactive notebooks.