Vcsn 2.2 (February 19th, 2016)
From LRDE
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
andautomaton.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 thealgo
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.
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
- Documentation of the Python interface
- The News File contains many examples
- The C++ reference manual
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
- Tarballs (sources to compile):
- vcsn-2.2.tar.bz2 (1.3MB)
- vcsn-2.2.tar.xz (1.1MB)
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.