Vcsn 2.3 (July 8th, 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.


About four hundred commits and five months after Vcsn 2.2, we are proud to announce the release of Vcsn 2.3, code-named "the tuple release"!

As usual, many bugs were fixed (some quite old yet unnoticed so far!). Noteworthy changes include:

  • a particular effort was put on the documentation: there are thirty-five new documentation pages, and about forty others were improved.

  • full support for a "tuple" operator on all entities: expressions, polynomials, automata, etc.

    In [13]: aut = lambda e: vcsn.context('lan, q').expression(e).automaton()
     
    In [14]: a = aut('[ab]*') | aut('x')
    
    In [15]: a.shortest(6)
    Out[15]: |x + a|x + b|x + aa|x + ab|x + ba|x
  • It is also available in the rational expressions themselves:

    In [16]: c = vcsn.context('lat<lan, lan>, q'); c
    Out[16]: {...}? x {...}? -> Q
    
    In [17]: e = c.expression('[ab]*|x'); e
    Out[17]: (a+b)*|x
    
    In [18]: e.shortest(6)
    Out[18]: \e|x + a|x + b|x + aa|x + ab|x + ba|x

    The derived-term algorithm supports this operator, and generates equivalent multitape automata.

  • many error messages were improved, to help users understand their mistakes. For instance, instead of

    In [2]: vcsn.Q.expression('a**').derivation('a')
    RuntimeError: q: star: invalid value: 1
  • we now display:

    In [2]: vcsn.Q.expression('a**').derivation('a')
    RuntimeError: Q: value is not starrable: 1
      while computing derivative of: a**
                    with respect to: a
  • in addition to %automaton a, which allows interactive edition of automata, the notebooks now feature two new interactive editors: %context c to edit/create context c, and %expression e for expressions (with an interactive display of the generated automata).
  • one may now generate random rational expressions and control the operators and their probabilities.
  • a lot of code improvement and consistency enforcement, both in C++ and in Python.

People who worked on this release:

  • Akim Demaille
  • Clément Gillard
  • Lucien Boillod
  • Raoul Billion
  • Sébastien Piat
  • Thibaud Michaud

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.3
  • 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):

Requirements

In order to compile Vcsn 2.3, 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.
Python
Python 3 is required
IPython
Although not strictly needed, it is required if you want to enjoy the Vcsn interactive notebooks.