-.. Copyright 2005-2019
+.. Copyright 2005-2021
.. _install:
You should obviously install the ``boost-context`` library on your
machine, for example with ``apt``.
+Version numbering and deprecation
+---------------------------------
+
+SimGrid tries to be both a research instrument that you can trust, and
+a vivid project targeting the future issues. We have 4 stable versions
+per year, numbered 3.24 or 3.25. Backward compatibility is ensured for
+one year: Code compiling without warning on 3.24 will still compile
+with 3.28, but maybe with some deprecation warnings. You should update
+your SimGrid installation at least once a year and fix those
+deprecation warnings: the compatibility wrappers are usually removed
+after 4 versions. Another approach is to never update your SimGrid
+installation, but we don't provide any support to old versions.
+
+Interim versions (also called pre-versions) may be released between
+stable releases. They are numbered 3.X.Y, with even Y (for example,
+3.23.2 was released on July 8. 2019 as a pre-version of 3.24). These
+versions should be as usable as regular stable releases, even if they
+may be somewhat less tested and documented. They play no role in our
+deprecation handling, and they are not really announced to not spam
+our users.
+
+Version numbered 3.X.Y with odd Y are git versions. They often work,
+but no guarantee is given whatsoever (all releases are given "as is",
+but that's even more so for these unreleased versions).
+
.. _install_src:
Installing from the Source
^^^^^^^^^^^^^^^^^^^^^^^^
C++ compiler (either g++, clang, or icc).
- We use the C++11 standard, and older compilers tend to fail on
+ We use the C++14 standard, and older compilers tend to fail on
us. It seems that g++ 5.0 or higher is required nowadays (because of
boost). SimGrid compiles well with `clang` or `icc` too.
Python 3.
.. code-block:: shell
- tar xf SimGrid-3-XX.tar.gz
- cd SimGrid-*
+ tar xf simgrid-3-XX.tar.gz
+ cd simgrid-*
cmake -DCMAKE_INSTALL_PREFIX=/opt/simgrid .
make
make install
enable_debug (ON/off)
Disabling this option discards all log messages of severity
- debug or below at compile time (see @ref XBT_log). The resulting
- code is faster than if you discard these messages at
- runtime. However, it obviously becomes impossible to get any debug
- info from SimGrid if something goes wrong.
+ debug or below at compile time (see :ref:`outcome_logs`). The resulting
+ code is marginaly faster than if you discard these messages at
+ runtime, but it obviously becomes impossible to get any debug
+ info from SimGrid when things go wrong.
enable_documentation (on/OFF)
Generates the documentation pages. Building the documentation is not
version for now.
enable_java (on/OFF)
- Generates the java bindings of SimGrid.
+ Generates the java bindings of SimGrid. You must also enable MSG for
+ this to work.
enable_jedule (on/OFF)
Produces execution traces from SimDag simulations, which can then be visualized with the
simulation speed** even when the model checker is not activated at
run time.
+enable_msg (on/OFF)
+ Activates the :ref:`MSG <MSG_doc>` legacy interface.
+
enable_ns3 (on/OFF)
Activates the ns-3 bindings. See section :ref:`model_ns3`.
- **make**: Build the core of SimGrid that gets installed, but not any example.
- **make tests**: Build the tests and examples.
- **make simgrid**: Build only the SimGrid library. Not any example nor the helper tools.
-- **make s4u-app-pingpong**: Build only this example (works for any example)
+- **make s4u-comm-pingpong**: Build only this example (works for any example)
- **make java-all**: Build all Java examples and their dependencies
- **make clean**: Clean the results of a previous compilation
- **make install**: Install the project (doc/ bin/ lib/ include/)
Python-specific instructions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Recompiling the Python bindings from the source should be as easy as:
+Once you have the Python development headers installed as well as a
+recent version of the `pybind11 <https://pybind11.readthedocs.io/en/stable/>`
+module (version at least 2.4), recompiling the Python bindings from
+the source should be as easy as:
.. code-block:: shell