Vcsn 2.3 (July 8th, 2016)
From LRDE
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.
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
%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).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
- 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.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):
- vcsn-2.3.tar.bz2 (1.4MB) (md5sum: 67b07dfdfe627d87b6ba9e6522d07453)
- vcsn-2.3.tar.xz (1.2MB) (md5sum: 23ac4a05186aaf907b4dc3a85250fa2f)
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.