VLE-1.1

= VLE 1.1.0 =

Download

 * VLE and VFL
 * Win32 for Windows 2000/XP/Vista/Seven/8
 * vle-1.1.0-Windows-x86.exe (107 MB)
 * Sources for Linux/Unix
 * vle-1.1.0.zip (< 1 MB)
 * vle-1.1.0.tar.gz (< 1 MB)


 * RVLE
 * Win32 for Windows 2000/XP/Vista/Seven/8
 * rvle_1.1.0-4.zip (< 1 MB)
 * Sources for Linux/Unix
 * rvle_1.1.0-4.tar.gz (< 1 MB)


 * Packages
 * Sources for Win2000/XP/Vista/Seven/8 and Linux/Unix
 * packages-1.1.0.zip (2 MB)
 * packages-1.1.0.tar.gz (1.4 MB)


 * PyVLE
 * Sources, for Linux/Unix
 * pyvle-1.1.0.zip (< 1 MB)
 * pyvle-1.1.0.tar.gz (< 1 MB)

Release highlights

 * From VLE 1.1, the extension (FSA, Petri net, Difference Equation, etc.) are provided into packages. A package can provides simulators, data, documentation, headers and static libraries. A package can depends of another package to be build and to be use at runtime of the simulation.
 * The package can now be installed from remote repositories with the command line interface or via GVLE. Packages and thiers build dependencies and runtime dependencies are automatically downloaded and builded.
 * To improve the stability of VLE, We merge all shared libraries of vle (libvleutils, libvlevpz, libvledevs etc.) into an unique shared library called libvle-1.1.so or vle-1.1.dll. We provide a archive called vle-1.1.a or vle-1.1.lib.
 * We remove the Eov program and the libvleeov shared library. Now, graphical output are available into the GVLE application.
 * Add a dependency to the Boost::Asio library. Now, VLE depends on Asio library to download data over http protocol.
 * Add a dependency to the libarchive library (http://libarchive.github.com/) to extract gzip, bzip2 tarball and Zip archives from the remote repositories.
 * Add an MPI mode with the command line interface MPI. For MPI, VLE depends of an MPI library.


 * We replace the init and finalize functions in old libvleutils, libvlevalue, libvlemanager with a new classical object.
 * Add a new RemoteMananger class to access remote repositories. The command line interface is inspirited from the apt-get debian's command:


 * Change the packages directory name. To allow the use of VLE 1.0 and 1.1 on the same $VLE_HOME directory, we need to clearly split the packages from the two versions. We add in the VLE's version.hpp file, a macro VLE_ABI_VERSION equal to VLE_VERSION_MAJOR.VLE_VERSION_MINOR. We use this macro to define the name of the pkgs directory. For example, in VLE 1.1, the package directory is defined as vle/pkgs-1.1 and in VLE 1.2, the package directory is defined as vle/pkgs-1.2. The current stable version of VLE is not change and use packages in vle/pkgs directory.


 * Remove Socket and Hosts classes. In VLE 1.1, we remove distant access to OOV and EOV. Thus, the utils::Socket and utils::Hosts are useless.


 * Rewrite the Manager system: Add a new Manager class to improve the stability of the API. The manager class allows to run in thread and MPI mode the experimental frames.
 * Add a Simulation class to replace JustRun and Run classes.
 * Update the Types available in Manager. We prefer use the Matrix value instead of the OutputMatrix of the Oov namespace. Add operator and, or, xor, equal and different between SimulationOptions and LogOptions to ensure correct type casting.


 * VPZ : Remove any reference to distant and local dynamics plugins and merge the libgraph.


 * extension, geometry, eov and graph are removed.

Linux
To use VLE 1.1 on linux, you need to build vle.

Windows

 * Upgrading (TO UPDATE)
 * Uninstall the previous version
 * Remove the remaining variable PKG_CONFIG_PATH (only earlies versions)
 * Follow the next sections for installation


 * Installation requirement for vle
 * Verify if the dependencies (mingw and cmake) are installed and if so, with the good versions (see the versions below). If the versions are not good, you can try to keep them as they are and install vle, but some compilation errors may happen. In that case, you can uninstall them in order to install the good versions, verifying at first that no others softwares need the cmake and mingw already installed versions.
 * to install mingw
 * download mingw at mingw-get-inst-20120426.exe
 * install the MinGW compiler in the default path (c:\mingw for instance). During installation you need to choose installation of "g++" and "fortran" compiler.
 * add the installation path in the MinGW environment variable PATH.You access this variable in the properties menu of the workstation icon, in advanced tab and select the button Environment Variables. Add to the value of this variable c:\mingw\bin in the front of the line. For instance, for a classical Win32 installation : c:\mingw\bin;%Systemroot%\system32;%systemroot%;%systemroot%\system32\wbem
 * to install cmake :
 * download cmake at cmake-2.8.11-win32-x86.exe
 * install it in the default path (C:\Program Files\CMake 2.8 for instance)
 * add the path to the environment variable PATH for all users (or for the current user).


 * Installation of vle
 * Download the binary file (vle-X.X.X-Windows-x86.exe see above). X.X.X is the last version.
 * Install VLE in the default path (e.g. c:\program files\vle X.X.X). WARNING: for 64 bits, errors arise when installing vle into c:\Program Files (x86), you can choose another directory such as c:\ or c:\Program Files\


 * Installation requirement for rvle
 * the installation of vle has to be achieved following the specific instructions for rvle (see above)
 * download R at R-3.0.1-win.exe and install it. To use rvle, you have to use the 32 bits application R i386
 * add an environment variable VLE_HOME with value c:\users\login\vle (replace login with your own login name). The directory must exist before launching application.
 * Install the R Package RUnit from CRAN : type install.packages("RUnit") or use the menu 'Packages'
 * Installation of rvle
 * download rvle (with the same version numbers as vle)
 * install rvle by choosing into the menu 'install packages from local zip file'

Debian Sid / Testing
Do not forget to remove $VLE_HOME/.vle/vle.conf before running VLE 1.1.

To install RVLE, if needed:

Ubuntu 12.04
Do not forget to remove $VLE_HOME/.vle/vle.conf before running VLE 1.1.

To install RVLE, if needed:

Ubuntu 12.10
Notes: TODO should be verified

VLE (native)

 * First, define default VLE_BUILD_ENV environment variable:

set VLE_BUILD_ENV=c:\buildenv


 * And downloads and pre install depends:
 * Download Boost into %VLE_BUILD_ENV%/boost_1_53_0.
 * Download VLE into %VLE_BUILD_ENV%/vle.
 * Download and install CMake.
 * Download and install NSIS.
 * Install Mingw (default) mingw-get-inst-20120426.exe</tt>.
 * Install gtkmm (default) gtkmm-win32-devel-2.22 .0-1.exa</tt>.


 * Install the libarchive</tt> package from MinGW command line:

mingw-get install libarchive


 * In as bat script set local variables:

set PKG_CONFIG_PATH=c:\gtkmm\lib\pkgconfig;C:\MinGW\lib\pkgconfig set boostversion=1_53 set builddir="%VLE_BUILD_ENV%\build" set sourcedir="%VLE_BUILD_ENV%\vle" set installdir="%VLE_BUILD_ENV%\install" mkdir %builddir%\vle mkdir %builddir%\boost mkdir %installdir%\vle mkdir %installdir%\boost set BOOST_ROOT=%VLE_BUILD_ENV%\install\boost


 * Now, build Boost:

cd %VLE_BUILD_ENV%\boost_%boostversion%_0\ bootstrap gcc bjam.exe --toolset=gcc --build-dir=%builddir%\boost --prefix=%installdir%\boost --without-signals --without-graph_parallel --without-mpi --without-python --without-serialization --without-atomic --without-math --without-wave variant=release threading=multi link=shared runtime-link=shared install


 * Finally, build VLE:

cd %builddir%\vle cmake.exe -G "MinGW Makefiles" -DWITH_MPI=OFF -DWITH_GTKSOURCEVIEW=OFF -DWITH_DOXYGEN=ON -DCMAKE_INSTALL_PREFIX=%installdir%\vle -DCMAKE_BUILD_TYPE=RelWithDebInfo -DVLE_MINGW_PATH="c:\mingw" -DVLE_GTK_PATH="c:\gtkmm" -DVLE_BOOST_INCLUDE_PATH="%VLE_BUILD_ENV%\install\boost\include\boost-%boostversion%" -DVLE_BOOST_LIBRARIES_PATH="%VLE_BUILD_ENV%\install\boost\lib" %sourcedir% mingw32-make install set PATH=%installdir%\vle\bin;%PATH% mingw32-make test cpack.exe -G NSIS

RVLE (native)
export PATH=/C/MinGW/msys/1.0/bin:/c/Program\ Files/R/R-3.0.1/bin/:/c/Rtools/bin:/c/gtkmm/bin:/c/buildenv/install/vle/bin:$PATH export PATH=/C/MinGW/msys/1.0/bin:/c/Program\ Files/R/R-3.0.1/bin/:/c/Rtools/bin:/c/gtkmm/bin:$PATH export PKG_CONFIG_PATH=/c/gtkmm/lib/pkgconfig:/C/MinGW/lib/pkgconfig:/c/buildenv/install/vle/lib/pkgconfig

export BOOST_ROOT=/C/buildenv/install/boost/include/boost-1_53

cd /c/buildenv/rvle echo "Running aclocal..." ; aclocal -I m4 $ACLOCAL_FLAGS echo "Running autoheader..." ; autoheader echo "Running autoconf..." ; autoconf echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) echo "Running automake..." ; automake --add-missing --copy --gnu ./configure cd .. R CMD INSTALL --build rvle

Windows (cross compilation) - deprecated
Deprecated

We use the MXE Environment to build the Windows 32 bits binaries.

To complete the compilation process, use one of the two solutions.

and a windows virtual machine drive (in this example: z:). On the windows virtual machine, one has to set the registry key used by vle:
 * For users (recommended), generate a windows installer which can be exuted
 * For developpers only, we rely on a shared directory (in this example: /cross/shared) between the linux host


 * For windows 32 bits, execute the .reg file:


 * For windows 64 bits, execute the .reg file:

Modifications to perform on a package
This part contains informations for model developpers who are interested in using vle 1.1 for packages developped with vle 1.0. First of all, you have to remove the vle configuration file Then, the modifications to perform on a package called mypackage are the following:


 * In the directory mypackage/cmake/ : copy the scripts VleCheckPackageConfig.cmake (TODO, give the file)


 * Into the file mypackage/CMakeLists.txt, look for the dependencies (in this example, there is only one dependency to the package vle.extension.difference-equation) :


 * 1. First, check for expected dependencies


 * 2. Then, for each DEVS extension used, declare functions for symplifying compilation of simulation plugins (here, we give an example with the extension vle.extension.difference-equation)


 * Into the file, mypackage/src/CMakeLists.txt, update compilation procedures with high level CMake functions given above.


 * 1. First: declare include and link directories using the dependencies, for example, with a depency on vle.extension.difference-equation:


 * 2. Then: for each Dynamic into "mypackage", use the high level functions for compiling the corresponding extension :


 * Into the cpp files, mypackage/src/mydynamic.cpp,


 * 1. remove DECLARE_NAMED_DYNAMICS, replace with DECLARE_DYNAMICS : only one dynamic can be defined into one library.
 * 2. If the dynamic uses a random number generator utils::Rand, the utils::Rand has to be a class member of the dynamic because PRNG is not provided at the level of the simulation. (WARNING should be replaced with something else soon).
 * 3. replace vle::devs::Time::infinity with vle::devs::infinity
 * 4. many includes haves changed : no more global include for value, utils, devs ... For example :
 * - replace #include <vle/value.hpp>  with #include <vle/value/Matrix.hpp> if you intend to use matrices.
 * - replace #include<vle/utils.hpp> with #include <vle/utils/DateTime.hpp> iy you need to convert dates
 * The modification can be required also for some extensions :
 * - replace #include <vle/extension/DifferenceEquation.hpp> 
 * with #include <vle/extension/difference-equation/Multiple.hpp>
 * 5. replace the call to output.addEvent(evt) by output.push_back(evt) (mainly in Decision extension)


 * Into the vpz files, mypackage/exp/mymodel.vpz,


 * 1. remove the xml tag replica. (WARNING should be replaced with something else soon).
 * 2. update the output tag to point output plugins to vle.output ; e.g :
 * replace plugin="file"  with package="vle.output" plugin="file" 
 * 3. update the dynamics : set the name of the package and the library. The tag "Model" is no more used because there is only one dynamic by library