Vcsn 2.1 (October 11th, 2015)


About 10,000 hours (on the calendar, not of work!) after its first public release, the Vcsn team is very happy to announce the release of Vcsn 2.1!

It is quite hard to cherry-pick a few new features that have been added in Vcsn 2.1, as shown by the 4k+ lines of NEWS since 2.0. However, here are a few headlines:

  • Many pages of documentation and examples have been written (see
  • Now provides a live demo.
  • Transducers are much better supported, with improved syntax and several algorithms (e.g., letterize, synchronize, partial_identity, is_functional, etc.)
  • Expressions now offer several sets of identities specifying how they should be normalized. More generally, input/output of expressions have been improved to match most users' expectations. New operators are accepted: & for conjunction, : for shuffle, &: for infiltration, {c} (postfix) for complement, and <+ for deterministic choice.
  • When entering an automaton (e.g., with %%automaton in IPython) user state names are preserved.
  • Of course, many bugs were fixed, many algorithms were sped up, and internal details have been cleaned up.
  • As Easter eggs, many features have also been added, but not advertised, until we are sure of how we want them to look like.

People who worked on this release:

  • Akim Demaille
  • Antoine Pietri
  • Canh Luu
  • Clément Démoulins
  • Lucien Boilod
  • Nicolas Barray
  • Sébastien Piat
  • Sylvain Lombardy
  • Valentin Tolmer
  • Yann Bourgeois--Copigny

People who influenced this release:

  • Alexandre Duret-Lutz
  • Jacques Sakarovitch
  • Luca Saiu


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.1
  • 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.1, 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.