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: |
+ | {{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>&</code> for conjunction, <code>:</code> for shuffle, <code>&:</code> for infiltration, <code>{c}</code> (postfix) for complement, and <code><+</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 |
||
⚫ | |||
+ | 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 |
* MacPorts |
||
: Run this command: |
: Run this command: |
||
: <syntaxhighlight lang="bash" enclose="div"> |
: <syntaxhighlight lang="bash" enclose="div"> |
||
− | sudo port sync && sudo port install |
+ | 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] ( |
+ | ** [{{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] ( |
+ | ** [{{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 |
||
⚫ | |||
− | mkdir ~/src/vcsn2 |
||
− | cd ~/src/vcsn2 |
||
− | wget {{SERVER}}/dload/vaucanson/2.0/Vagrantfile |
||
⚫ | |||
− | # Run Vagrant (first time will be slow: let it download the VM) |
||
⚫ | |||
− | cd ~/src/vcsn2 |
||
− | vagrant up |
||
⚫ | |||
− | #: Vaucanson is runnning! |
||
− | # Open http://localhost:8888 in your favorite browser. |
||
− | # Experiment! (Hit Shift-Enter to evaluate): |
||
⚫ | |||
− | import vcsn |
||
− | vcsn.context('lal_char(abc)_z').ratexp('(<2>a+<3>b)*').derived_term() |
||
⚫ | |||
− | # Turn your VM off when you are done |
||
− | #: <syntaxhighlight lang="bash" line enclose="div">vagrant halt</syntaxhighlight> |
||
− | --> |
||
== Requirements == |
== Requirements == |
Latest revision as of 15: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
- Documentation of the Python interface
- The News File contains many examples
- The C++ reference manual is poor, yet not empty
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
- Tarballs (sources to compile):
- vcsn-2.1.tar.bz2 (1.2MB)
- vcsn-2.1.tar.xz (968KB)
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.