Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Ignore ASan warnings about odr-violation with Activity_T::on_completion.
[simgrid.git] / ChangeLog
index 99a7e6a..1b96e01 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,26 +1,48 @@
 SimGrid (3.32.1) not released yet (target december 22)
 
 General:
+ - SimGrid now requires a compiler with C++17 support for public headers too.
+   Sibling projects should upgrade their FindSimGrid.cmake
  - Remove the MSG API: its EOL was scheduled for 2020.
  - Remove the Java bindings: they were limited to the MSG interface.
  - On Windows, you now need to install WSL2 as the native builds are now disabled.
    It was not really working anyway.
  - Support for 32bits architecture is not tested anymore on our CI infrastructure.
    It may break in the future, but we think that nobody's using SimGrid on 32 bits.
+ - Remove the surf module. It was replaced by the kernel/models module, and that
+   refactoring took almost 10 years to properly complete.
 
 S4U:
  - Activity::set_remaining() is not public anymore. Use for example
    Comm::set_payload_size() to change the size of the simulated data.
  - New function: Engine::flatify_platform(), to get a fully detailed vision of the
    configured platform.
+ - Full simDAG integration: Activity::start() actually starts only when all dependencies
+   are fullfiled. If it cannot be started right away, it will start as soon as it becomes
+   possible.
+ - Allow to set a concurrency limit on disks and hosts, as it was already the case for links.
+ - Rename Link::get_usage() to Link::get_load() for consistency with Host::
+ - Every signal now come with a static version that is invoked for every object of that class,
+   and an instance version that is invoked for this specific object only. For example, 
+   s4u::Actor::on_suspend_cb() adds a callback that is invoked for the suspend of any actor while
+   s4u::Actor::on_this_suspend_cb() adds a callback for this specific actor only.
+ - Activity::on_suspended_cb() is renamed to Activity::on_suspend_cb(), and fired right before the suspend.
+ - Activity::on_resumed_cb() is renamed to Activity::on_resume_cb(), and fired right before the resume.
+
+New S4U plugins:
+ - Operation: They are designed to represent workflows, i.e, graphs of repeatable Activities.
+   See the examples under examples/cpp/operation-* and the documentation in the Plugins page.
+ - Battery: Enable the management of batteries on hosts.
+   See the examples under examples/cpp/battery-* and the documentation in the Plugins page.
 
 Kernel:
- - optimize an internal datastructure, leading to a potentially big
-   performance gain (in particular with many detached comms)
+ - optimize an internal datastructure (use a set instead of a list for ongoing activities),
+   leading to a potentially big performance gain, in particular with many detached comms.
 
 MPI:
  - New option smpi/barrier-collectives to add a barrier to some collectives
    to detect dangerous code that /may/ work on some MPI implems.
+ - New function SMPI_app_instance_start() to easily start a MPI instance in your S4U simulation.
 
 Models:
  - Write the section of the manual about models, at least.
@@ -34,9 +56,30 @@ Models:
    - Same for the latency
    - Rewrite the corresponding documentation.
  - Allow to disable the TCP windowing modeling by setting network/TCP-gamma to 0.
+ - Finally kill the 'compound' host model. You can change the CPU or network model
+   with the default host model, as it should.
+ - Rename option "surf/precision" to "precision/timing" for clarity.
+ - Rename option "maxmin/precision" to "precision/work-amount" for clarity.
+ - New function: Engine::flatify_platform() to debug your platform.
 
 sthread:
  - Implement pthread_join in MC mode.
+ - Implement semaphore functions in sthread.
+ - Add an intricated way to verify the access to non-reentrant data structures
+   It requires code annotation, as shown in examples/sthread/stdobject/stdobject.cpp
+
+Model checking:
+ - Synchronize the MBI tests with upstream.
+ - Show the full actor bactraces when replaying a MC trace (with model-check/replay)
+   and the status of all actors on deadlocks in MC mode.
+ - The safety/stateless aspects of the MC are now enabled by default in all simgrid builds.
+   Liveness and stateful aspects are still controled by the enabling_model-checking
+   configuration option.
+ - Stateless model-checking is now usable on any system, including Mac OSX and ARM processors.
+
+XBT:
+ - simgrid::xbt::cmdline and simgrid::xbt::binary_name are gone.
+   Please use simgrid::s4u::Engine::get_cmdline() instead.
 
 Documentation:
  - New section in the user guide on the provided performance models.
@@ -48,7 +91,8 @@ Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
  (FG: issues on Framagit; GH: issues on GitHub)
  - FG#18: Java bindings should be redone or removed
  - FG!118: Wi-Fi callback mechanism
- - FG!119: SMPI: add option to inject a barrier before every collective call, to allow...
+ - FG!119: SMPI: add option to inject a barrier before every collective call
+ - GH#383: Segfault when adding a disk after load_platform(xml)
 
 ----------------------------------------------------------------------------
 
@@ -630,7 +674,7 @@ The Release release (the French lockdown was eased today).
 
 Important user-visible changes:
  - SimGrid now requires a compiler with C++14 support.
-   Sibling projects should upgrade their FindSimgrid.cmake
+   Sibling projects should upgrade their FindSimGrid.cmake
  - Surf precision default value is now 1e-9, instead of 1e-5. This was changed as
    several users had difficulties to understand issues when using high bandwidth or
    small latency events. The new value was already the default for SMPI and