Difference between revisions of "Vcsn/Vcsn2.1"

From LRDE

(Vcsn 2.1)
 
(Available on MacPorts)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Vaucanson 2.0 (October 11th, 2015)}}
+
{{DISPLAYTITLE:Vcsn 2.1 (October 11th, 2015)}}
 
__NOTOC__
 
__NOTOC__
  +
Vcsn 2.1 is a full rewrite of the Vaucanson platform. While it mostly
 
  +
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!
ressembles Vaucanson 1 in many regards, it is also very different in
 
  +
many others: it is much faster, far easier to use, and provides a
 
  +
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 [https://www.lrde.epita.fr/wiki/Vcsn/News_File#2015-10-11 NEWS since 2.0]. However, here are a few headlines:
richer feature-set.
 
  +
  +
* Many pages of documentation and examples have been written (see http://www.lrde.epita.fr/dload/vcsn/2.1/notebooks).
  +
* Now http://vcsn-sandbox.lrde.epita.fr/ 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: <code>&amp;</code> for conjunction, <code>:</code> for shuffle, <code>&amp;:</code> for infiltration, <code>{c}</code> (postfix) for complement, and <code>&lt;+</code> for deterministic choice.
  +
* When entering an automaton (e.g., with <code>%%automaton</code> 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
   
 
== Documentation ==
 
== Documentation ==
Line 13: Line 40:
   
 
== Available Ports ==
 
== Available Ports ==
  +
  +
* Docker
  +
: Run this command to pull and start the Vcsn docker image on port 8888
 
: <syntaxhighlight lang="bash" enclose="div">
  +
docker run -d -p 8888:8888 lrde/vcsn:2.1
 
</syntaxhighlight>
  +
  +
* Debian Jessie
  +
: Run this command
 
: <syntaxhighlight lang="bash" enclose="div">
  +
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
 
</syntaxhighlight>
  +
  +
* Archlinux (AUR)
  +
: Run this command:
 
: <syntaxhighlight lang="bash" enclose="div">
  +
yaourt -S vcsn
 
</syntaxhighlight>
  +
 
* MacPorts
 
* MacPorts
 
: Run this command:
 
: Run this command:
 
: <syntaxhighlight lang="bash" enclose="div">
 
: <syntaxhighlight lang="bash" enclose="div">
sudo port sync && sudo port install vaucanson
+
sudo port sync && sudo port install vcsn
 
</syntaxhighlight>
 
</syntaxhighlight>
   
Line 22: Line 73:
   
 
* Tarballs (sources to compile):
 
* Tarballs (sources to compile):
** [{{SERVER}}/dload/vcsn/2.1/vcsn-2.1.tar.bz2 vcsn-2.1.tar.bz2] (745KB)
+
** [{{SERVER}}/dload/vcsn/2.1/vcsn-2.1.tar.bz2 vcsn-2.1.tar.bz2] (1.2MB)
** [{{SERVER}}/dload/vcsn/2.1/vcsn-2.1.tar.xz vcsn-2.1.tar.xz] (633KB)
+
** [{{SERVER}}/dload/vcsn/2.1/vcsn-2.1.tar.xz vcsn-2.1.tar.xz] (968KB)
 
<!--
 
== Virtual Machine ==
 
 
To install a Vaucanson virtual machine, please follow this procedure:
 
 
# Install VirtualBox from your distro, or from https://www.virtualbox.org/wiki/Downloads.
 
# Install Vagrant from your distro, or from http://www.vagrantup.com/downloads.html
 
# Download this [{{SERVER}}/dload/vaucanson/2.0/Vagrantfile Vagrantfile] and save it somewhere. For instance
 
#: <syntaxhighlight lang="bash" line enclose="div">
 
mkdir ~/src/vcsn2
 
cd ~/src/vcsn2
 
wget {{SERVER}}/dload/vaucanson/2.0/Vagrantfile
 
</syntaxhighlight>
 
# Run Vagrant (first time will be slow: let it download the VM)
 
#: <syntaxhighlight lang="bash" line enclose="div">
 
cd ~/src/vcsn2
 
vagrant up
 
</syntaxhighlight>
 
#: Vaucanson is runnning!
 
# Open http://localhost:8888 in your favorite browser.
 
# Experiment! (Hit Shift-Enter to evaluate):
 
#: <syntaxhighlight lang="python" line enclose="div">
 
import vcsn
 
vcsn.context('lal_char(abc)_z').ratexp('(<2>a+<3>b)*').derived_term()
 
</syntaxhighlight>
 
# Turn your VM off when you are done
 
#: <syntaxhighlight lang="bash" line enclose="div">vagrant halt</syntaxhighlight>
 
-->
 
   
 
== Requirements ==
 
== Requirements ==

Latest revision as of 14:49, 29 January 2016


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 http://www.lrde.epita.fr/dload/vcsn/2.1/notebooks).
  • Now http://vcsn-sandbox.lrde.epita.fr/ 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

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

Requirements

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