Vcsn 2.2 (February 19th, 2016)

From LRDE

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


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

Documentation

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 http://www.lrde.epita.fr/repo/debian/ 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

Downloads

Requirements

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.
Graphviz
The display of automata is made using AT&T Graphviz library. (On Ubuntu/Debian, install the following package: graphviz)
Boost
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).
Flex
The Flex scanner generater, 2.5.37 or better.
Ccache
Compiler cache.
Doxygen
To build the C++ reference manual.
IPython
Although not strictly needed, it is required if you want to enjoy the Vcsn interactive notebooks.