Vcsn 2.3 (July 8th, 2016)

From LRDE

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

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
```

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