Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Handle onesided=detached comms and clean up the comm_fault_scenario test
[simgrid.git] / ChangeLog
index 55e1c9c..fcd0729 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,716 @@
+SimGrid (3.31.1) NOT RELEASED YET (v3.32 expected June 21. 2022, 09:13 UTC)
+
+Python:
+  - Added the following bindings / examples:
+    - Comm (now 100% covers the C++ interface):
+      - Comm.dst_data_size, Comm.mailbox, Comm.sender, Comm.start_time, Comm.finish_time
+      - Comm.state_str [examples: examples/python/comm-failure/, examples/python/comm-host2host/]
+      - Comm.remaining [examples: examples/python/comm-host2host/, examples/python/comm-suspend/]
+      - Comm.set_payload_size [example: examples/python/comm-host2host/]
+      - Comm.set_rate [example: examples/python/comm-throttling/]
+      - Comm.sendto, Comm.sendto_init, Comm.sendto_async [example: examples/python/comm-host2host/]
+      - Comm.start, Comm.suspend, Comm.resume [example: examples/python/comm-host2host/]
+      - Comm.test_any [example: examples/python/comm-testany/]
+      - Comm.wait_until [example: examples/python/comm-waituntil/]
+    - Engine:
+      - Engine.host_by_name [example: examples/python/comm-host2host/]
+      - Engine.mailbox_by_name_or_create [example: examples/python/comm-pingpong/]
+    - Mailbox: Mailbox.ready [example: examples/python/comm-ready/]
+
+----------------------------------------------------------------------------
+
+S4U:
+ - kill signal Comm::on_completion that was not working anyway.
+ - Expose signals Activity::on_suspend and Activity::on_resume
+
+SimGrid (3.31) March 22. 2022.
+
+The ненасильство release. We stand against war.
+
+Against the agression by a sick system that forces peoples to take arms against each other.
+
+
+MC:
+ - Rework the internals, for simpler and modern code. This shall unlock many future improvements.
+ - You can now define plugins onto the DFS explorer (previously called SafetyChecker), using the
+   declared signals. See CommunicationDeterminism for an example.
+ - Support mutex, semaphore and barrier in DPOR reduction
+ - Seems to work on Arm64 architectures too.
+ - Display a nice error message when ptrace is not usable.
+ - New test suite, imported from the MPI Bugs Initiative (MBI). Not all MBI generators are integrated yet.
+ - Remove the ISP test suite: it's not free software, and it's superseeded by MBI.
+
+SMPI:
+ - fix for FG#100 by ensuring small asynchronous messages never overtake larger
+   ones, conforming to the standard.
+ - replay: fix waitall behaviour to avoid forgetting requests and leaking
+   their handles.
+ - tracing: ensure that we dump the TI traces continuously during execution and
+   not just at the end, reducing memory cost and performance hit.
+ - Update OpenMPI collectives selection logic to match current one (4.1.2)
+ - Add a coherence check for collective operation order and root/MPI_Op
+   coherence. Potentially costly so not activated unless smpi:pendantic is set
+   or -analyze is given.
+
+S4U:
+ - New signal: Engine::on_simulation_start_cb()
+ - Introduce a new execution mode with this_actor::thread_execute(). This simulate
+   the execution of a certain amount of flops by multiple threads ran by a host. Each
+   thread executes the same number of flops, given as argument. An example of this new
+   function can be found in examples/cpp/exec-threads.
+ - Reimplementation of barriers natively.
+   Previously, they were implemented on top of s4u::Mutex and s4u::ConditionVariable.
+   The new version should be faster (and can be used in the model-checker).
+ - Actor::get_restart_count(): Returns the number of reboots that this actor did.
+
+MSG:
+ - MSG_barrier_destroy now expects a non-const msg_barrier parameter.
+
+New plugin: the Chaos Monkey (killing actors at any time)
+ - Along with the new simgrid-monkey script, it tests whether your simulation
+   resists resource failures at any possible timestamp in your simulation.
+ - It is mostly intended to test the simgrid core in extreme conditions,
+   but some users may find it interesting too.
+
+Models:
+ - New solver for parallel task: BMF.
+   - More realistic sharing of heterogeneous resources compared to the fair
+   bottleneck solver used by ptask_L07.
+   - Implement the BMF (Bottleneck max fairness) fairness.
+   - Improved resource sharing for parallel tasks with sub-flows (parallel
+     communications between same source and destination inside the ptask).
+   - Parameters:
+     - "--cfg=host/model:ptask_L07 --cfg=host/solver:bmf": enable the ptask
+        model with BMF solver.
+     - "--cfg=bmf/max-iterations: <N>": maximum number of iterations performed
+        by BMF solver (default: 1000).
+     - "--cfg=bmf/precision: <N>": numerical precision used when computing
+        resource sharing (default: 1e-12).
+   - This model requires Eigen3 library. Make sure Eigen3 is installed to use BMF.
+
+General:
+  - Modifications of the Profile mechanism, with some impact on users
+    - Addition of a new (S4U) method to init profiles from generic functions to improve versatility
+    - Fix initial behaviour of state_profiles
+    - Modify periodicity to behave like a period, and not like a loop delay
+
+XBT:
+ - Drop xbt_dynar_shrink().
+
+Python:
+ - Made the following bindings static (previously member functions):
+   - Actor: Actor.kill_all(), Actor.by_pid()
+   - Host: Host.by_name(), Host.current(), Host.on_creation_cb()
+   - Mailbox: Mailbox.by_name()
+ - Added the following bindings:
+     - this_actor.warning()
+     - Mailbox.put_init() [example: examples/python/comm-waitallfor/]
+     - Comm.detach() [example: examples/python/comm-waitallfor/]
+     - Comm.wait_for() [example: examples/python/comm-waitfor/]
+     - Comm.wait_any_for()
+     - Comm.wait_all_for() [example: examples/python/comm-waitallfor/]
+     - Mutex [example: examples/python/synchro-mutex/]
+     - Barrier [example: examples/python/synchro-barrier/]
+     - Semaphore [example: examples/python/synchro-semaphore/]
+
+Build System:
+ - Remove target "make uninstall" which was incomplete and no longer maintained.
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GH: issues on GitHub)
+ - FG#57: Mc SimGrid should test whether ptrace is usable
+ - FG#87: Smpi scripts fail with spaces in paths
+ - FG#100: [SMPI] Order of the message matching is not guaranteed
+ - FG#101: LGPL 2.1 is deprecated license
+ - FG#104: "make uninstall" not up-to-date
+ - GH#151: Missing mutexes for DPOR.
+ - FG#105: "Variable penalty should not be negative!" with in-flight messages and bandwidth profiles
+
+----------------------------------------------------------------------------
+
+SimGrid (3.30) January 30. 2022.
+
+The Sunday Bloody Sunday release.
+
+Main user-visible changes:
+ - The SimDag API for the simulation of the scheduling of Directed Acyclic
+   Graphs has been dropped. It was marked as deprecated for a couple of years.
+   We finally complete the implementation of what has been called SimDag++
+   internally, i.e., porting the different features of SimDag on top of S4U.
+   The new way to simulate the execution of dependent activities directly by
+   maestro (without any other actor) is details in the examples/cpp/dag-* series
+   of examples.
+ - The removal of SimDag led us to also remove the export to Jedule files that
+   was tightly coupled to SimDag. The instrumentation of DAG simulation is still
+   possible through the regular instrumentation API based on the Paje format.
+ - We also dropped the old and clumsy Lua bindings to create platforms in a
+   programmatic way. It can be done in C++ in a much cleaner way now, which
+   motivates this suppression.
+
+S4U:
+ - Introduce on_X_cb() functions for all signals, to attach a new
+   callback to the signal X. The signal variables are now hidden and
+   only these functions should be used.
+   Rationale: this enables the usual deprecation scheme where functions
+   remain for 4 releases if we need to modify the signals, while the
+   current code with the signal variables directly visible prevents any
+   smooth transition.
+ - New function: Engine::run_until(date), to split the simulation.
+ - New signal: Activity::on_veto, to detect when an activity fails to start.
+ - Signal change: Comm::on_start(Comm&, bool) has been replaced by
+   Comm::on_send and Comm::recv. These two signals respectively correspond to
+   when the sending or receiving side of a Comm is ready. They are raised at
+   the same locations as the former Comm::on_start signal.
+ - New function: Engine::track_vetoed_activities() to interrupt run()
+   when an activity fails to start, and to keep track of such activities.
+   Please see the corresponding example for more info.
+ - New functions: s4u::Comm::{sendto_init, set_source, set_destination} to enable
+   the use of vetoers with direct host-to-host communications. Both source and
+   destination have to set for a comm to start. Each call to these setters check
+   if all vetoes are satisfied. When it is the case, the comm starts. A use case of
+   these functions is given in examples/cpp/dag-scheduling.
+ - New functions: {Exec, Io}::update_priority allow you to modify the priority of
+   these kinds of activities during their execution. Behavior is detailed in
+   examples/cpp/io-priority/.
+
+SMPI:
+ - Dynamic costs for MPI operations: New API to allow users to dynamically
+   change injected costs for MPI_Recv, MPI_Send and MPI_Isend operations.
+   Alternative for smpi/or, smpi/os and smpi/ois configuration options.
+ - Fix some issues with the replay mechanism.
+
+XBT:
+ - Function xbt::Extendable::get_data() is now templated with the type of the
+   pointee. Untyped function is deprecated. Use get_data<void>() if you still
+   want to retrieve void*.
+
+Documentation:
+ - New section: "SimGrid MPI calibration of a Grid5000 cluster"
+   presenting how to properly calibrate MPI communications in SimGrid.
+ - Complete and reword the platform section, which is now completed.
+
+Python:
+ - Thread contexts are used by default with Python bindings.  Other kinds of
+   contexts revealed unstable, specially starting with pybind11 v2.8.0.
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GH: issues on GitHub)
+ - FG#95: Wrong computation time for multicore execution after pstate change
+ - FG#97: Wrong computation time for ptask+multicore+pstates
+ - FG#98: SMPI offline simulation is inconsistent with the online simulation
+          (deadlocks / message truncation)
+ - FG#99: Weird segfault when not sealing an host
+
+----------------------------------------------------------------------------
+
+SimGrid (3.29) October 7. 2021
+
+The "Ask a stupid question" release.
+
+We wish that every user ask one question about SimGrid to celebrate.
+On Mattermost, Stack Overflow or using the issues tracker.
+
+
+New modeling features:
+ - Non-linear resource sharing, modeling resources whose performance heavily degrades with contention:
+   - The total capacity may be updated dynamically through a callback
+     and depends mainly on the number of concurrent flows.
+   - Examples (both cpp and python): io-degradation, network-nonlinear, exec-cpu-nonlinear
+
+ - Dynamic factors: model variability in the speed of activities
+    - Each action can now have a factor that affects its progression.
+      This multiplicative factor is applied when updating the amount of work
+      remaining, thereby an activity with factor=0.5 only uses half of the
+      instantaneous power/bandwidth it is allocated and will appear twice
+      slower than what it actually consumes.
+    - This can be used to model a overhead (e.g., there is a 20 bytes
+      header in a 480 bytes TCP packet so the factor 0.9583) but the novelty
+      is this factor can now easily be adjusted depending on activity's and
+      resources characteristics.
+    - This existed for network (e.g., the effective bandwidth depends
+      on the message in SMPI piecewise-linear network model) but it is now
+      more general (the factor may depend on the source and destination and
+      thus account to different behaviors for intra-node communications and
+      extra-node communications) and is available for CPUs (e.g., if you
+      want to model an affinity as in the "Unrelated Machines" problem in
+      scheduling) and disks (e.g., if you want to model a stochastic
+      capacity) too.
+    - For that, resources can be provided with a callback that computes
+      the activity factor when creating the action.
+    - Example: examples/cpp/exec-cpu-factors
+    - The same mechanism is also available for the latency, which
+      allows to easily introduce complex variability patterns.
+
+Python:
+ - Added support to programmatic platform creation in Python.
+   Example: examples/python/clusters-multicpu
+
+S4U:
+ - Disk and Host now have a set_sharing_policy() too, for non-linear sharing.
+   This can only be set through the API, not through XML files.
+
+SMPI:
+ - TI Tracing/Replay:
+   - Multiple fixes to ensure reproducibility of tracing
+   - scan/excan can now be replayed
+   - wait action now uses ranks and not pid, as the other ones.
+   - smpi/init and smpi/finalization-barrier are now valid for replays.
+ - exit() is now intercepted by SMPI to avoid premature shutdown of
+   simulation. First non 0 return codes is returned as simulation return
+   code.
+
+Documentation:
+  * New section "Release Notes" documenting recent and current developments.
+  * New section "Modeling I/O: the realistic way" presenting how to properly model disks in SimGrid.
+  * Improvements in API Reference for C++ and Python interfaces.
+
+ns-3 model:
+ - Make wifi creation compatible with ns-3 version 3.34 too.
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GH: issues on GitHub)
+ - FG#77: Search feature of doc is broken (update sphinx theme version)
+ - FG#78: Multiple fixes for SMPI replay:
+    - TI tracing of allotallv/w was outputting wrong values
+    - MPI_LOGICAL in fortran is actually 32 bits wide, and not 8.
+
 ----------------------------------------------------------------------------
 
-SimGrid (3.23.3) NOT RELEASED YET (v3.24 expected September 23. 7:50 UTC)
+SimGrid (3.28) July 14. 2021
+
+The Victoriadagarna Release.
+
+New features:
+ - C++ platform interface: Users can now describe their platform directly in C++.
+   This provides greatly flexibility and performance improvement for complex
+   platforms. Main features:
+     - Fat-Tree/DragonFly/Torus composing: allows you to create clusters of
+       "zones", instead of single hosts. This feature enables the description
+       of clusters with complex hosts, composed of several CPUs, GPUs, etc.
+     - StarZone: new zone with a Star-like topology. The routes are defined
+       as a set of links used to communicate from node to everybody (node<->ALL).
+     - Split-Duplex links: auxiliary method to create split-duplex links in
+       the platform, easing its utilisation. It automatically creates both UP
+       and DOWN links (similarly as done in XML).
+     - Please refer to the documentation and the examples included:
+       e.g. examples/cpp/clusters-multicpu/ and examples/platforms/*.cpp.
+ - New plugin: Producer-Consumer with monitor. Just requires to include the
+   include/simgrid/plugins/ProducerConsumer.hpp header to be used. See the
+   associated example (examples/cpp/plugin-prodcons).
 
 S4U:
+ - New: s4u::Comm::wait_all_for() (like s4u::Comm::wait_all, but with a timeout),
+        s4u::Io::wait_any(), s4u::Io::wait_any_for().
+ - Methods test_all/test_any/wait_all/wait_any in s4u now take their vector
+   parameter by reference, instead of a pointer.
+ - Fixed a bug where Activity::wait_for() killed the activity on timeout.
+   Explicitly cancel the activity to get back to previous behavior.
+ - New: Link::set_concurrency_limit() to limit the amount of concurrent flows.
+
+SMPI:
+ - The default SMPI compiler flags are no more taken from the environment.
+   They can be explicitly set through cmake parameters SMPI_C_FLAGS,
+   SMPI_CXX_FLAGS, or SMPI_Fortran_FLAGS.
+ - New options:
+    --cfg=smpi/finalization-barrier: which can be used to add
+      a barrier inside MPI_Finalize. This can help for some codes which cleanup
+      data attached to a process, but still used in other SMPI processes.
+    --cfg=smpi/errors-are-fatal: True by default, behaves like if MPI_ERRORS_RETURN
+      is active when set to false, to keep going after a small error
+    --cfg=smpi/pedantic: True by default. Do not report some harmless MPI errors
+      which may or may not be problematic in the end.
+ - Sampling:
+    - fix behaviour, as maximum iteration count could be ignored
+    - add SMPI_SAMPLE_LOCAL_TAG and SMPI_SAMPLE_GLOBAL_TAG macros, to allow user to
+      use sampling when the same kernel is called with a different set of parameters
+      which have an impact on the timing.
+ - realloc is now intercepted, to be coherent, as malloc/calloc/free were already.
+   It should now work with smpi/auto-shared-malloc-thresh.
+ - Improve error handling and reporting in multiple places
+ - Improve correctness checks on the MPI code.(MPI_Op and MPI_Datatype
+   validity checks, truncated messages are now an error, return errors
+   when explicitely deleted handles are reused, ...)
+ - RMA: multiple fixes and stability improvements.
+ - analysis (-analyze flag in smpirun):
+    - SMPI can now report buffer leaks as well as MPI handles leaks,
+      if code was compiled without SMPI_NO_OVERRIDE_MALLOC.
+    - if -trace-call-location is used when compiling, SMPI can report
+      origin of leaked handles/buffers
+    - group leaks by type/origin in output message if possible
+ - New implemented MPI calls: MPI_Comm_test_inter
+
+Models:
+ - Changed internal implementation of bandwidth factors in network models.
+   Models affected: CM02, LV08 (default), SMPI, IB.
+   Configuration affected: "network/bandwidth-factors" and "smpi/bw-factors".
+   Bandwidth factors are applied to communications to describe that users
+   cannot use 100% of the available bandwidth. For example, the default network model,
+   LV08, applies a factor of 0.97 to the bandwidth. In older versions, this
+   behavior was implemented by limiting the bandwidth available in the LMM
+   system for this flow. This may give the false impression that there is
+   bandwidth available for other flows due to its underutilization, especially
+   for the dynamic bandwidth factors used in SMPI models.
+   To avoid this, we have modified the implementation so that each flow uses the
+   maximum physical bandwidth according to the LMM system.
+   However, the actual throughput of the flow seen by the user is defined by
+   the physical bandwidth multiplied by the bandwidth factor.
+   This change impacts on the simulation results for all network models on
+   which we have bandwidth factors configured.
+   *****************************************
+   *DO NOT MIX 3.28 RESULTS WITH OLDER ONES*
+   *****************************************
+   This change may impact on the timing of your simulation results.
+   Take care when comparing simulations from different SimGrid's
+   versions. Sorry for the inconvenience.
+ - Dynamic network factors: users can configure a callback to define
+   the network factors dynamically. This API is available at
+   simgrid::kernel::resource::NetworkModelIntf.
+   - Users have access to complete information about the current communication
+     to decide which factor to apply. This includes: message size, source and
+     destination hosts, links and zones traversed.
+   - Dynamic factors for both latency and bandwidth.
+   - For more details, see the example in (examples/cpp/network-factors).
+ - Plugin host_energy: the "watt_off" and "watt_per_state" host properties,
+   deprecated since version 3.24, are no longer supported. Instead, use
+   "wattage_off" and "wattage_per_state".
+
+XBT:
+ - xbt_assert is not disabled anymore, even when built with enable_debug=off.
+
+Documentation:
+ - New tutorial: Model-checking and formal assessment
+ - New sections: "Demystifying the routing" and "C++ platforms"
+ - Update and improve the part on visualization in MPI and Algo tutorials.
+ - Improve the section on routing: how to define it, how it's used internally
+ - Fix many issues, broken links and missing references in doxygen and Sphinx
+
+LUA:
+ - Lua platform files are deprecated. Their support will be dropped after v3.31.
+
+Simix:
+ - Legacy functions deprecated in this release: SIMIX_get_clock(), SIMIX_run().
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GH: issues on GitHub)
+ - FG#47: Complete and fix tests from teshuite/s4u/activity-lifecycle
+ - FG#64: Configuring smpi/IB-penalty-factors
+ - FG#67: Running computation concurrently with MPI_Iallreduce
+ - FG#69: Tutorial misleading users of pre-v3.26 versions of SimGrid
+ - FG#71: Segmentation fault on invalid gw_src/gw_dst
+ - GH#322: Issue when an actor kills his host vm
+
+----------------------------------------------------------------------------
+
+SimGrid (3.27) March 29. 2021
+
+The Ragnar Release (anniversary of the siege of Paris by Vikings in 845)
+
+Main user-visible changes:
+ - All functions marked as deprecated for one year were removed.
+ - Removed all that was related to the "Storage" type in all APIs and bindings.
+   "Disks" have been introduced more than a year ago to replace them for the better.
+   It's time to finish this replacement.
+ - SMPI ABI breaks from previous version: MPI global handles (predefined datatypes,
+   ops, COMM_WORLD) are now defined differently, and can be used in initializers,
+   avoiding "initializer element is not constant" errors with some codes. Please be
+   careful to recompile your MPI codes if switching to this new SimGrid version.
+ - Network model ns-3 now requires version ns-3.28 or higher.
+ - Removed some option aliases that were deprecated since v3.23 (June 2019)
+   - 'verbose-exit' is now 'debug/verbose-exit'
+   - 'simix/breakpoint' is now 'debug/breakpoint'
+   - 'clean-atexit' is now 'debug/clean-atexit'
+
+S4U:
+ - New functions: Comm::sendto_{init,async} to initiate a communication
+   on between two (possibly remote) hosts.
+ - Define new template functions Mailbox::get_unique(), returning a std::unique_ptr.
+ - Functions Mailbox::get() and Mailbox::get_async() are now templated with the
+   type of the pointee. Untyped functions are deprecated. Use Mailbox::get<void>()
+   or Mailbox::get_async<void>() if you really want to play with void*.
+ - Unify the interface of Activity::on_{start/activity}
+ - New function: Comm::get_dst_data()
+ - New function: Comm::set_payload_size() to set the amount of bytes to simulate.
+
+Models:
+ - ptask should now work better with multicore hosts (FG#37).
+ - Internal cleanups and refactoring around activities, to prepare for SimDAG++.
+ - Internal cleanups and refactoring around models, to prepare for programmatic
+   platform creation.
+ - Modernize our tests of the performance models
+
+Documentation:
+ - User manual:
+   - New section: Configuring the logs from the command line.
+   - New section: Programming API of logs.
+   - New section: Getting realistic results
+   - New section: Examples of SMPI Usage
+ - New part: SimGrid's Internals, with a section on Design goals
+ - Move back to the classical Breathe tool chain, and fix many small glitches.
+
+SMPI:
+ - Handle leak checking: SMPI will now display a message if MPI handles are still
+   present at the end of a simulation. Option smpi/list-leaks:n will display the n
+   first leaked pointers and their types.
+ - smpi/display-allocs option : Display Memory allocations analysis, with hints
+   about the largest allocations. This only works for allocations with malloc/calloc
+   and not compiled with SMPI_NO_OVERRIDE_MALLOC
+ - "-analyze" option in smpirun will activate smpi/display-allocs and smpi/display-timing
+ - New implemented MPI calls: MPI_File_set_size, MPI_Aint_add, MPI_Aint_diff,
+   MPI_Type_get_extent_x, MPI_Type_get_true_extent_x, MPI_Status_set_elements_x
+ - Support for MPI C++ datatypes (MPI_CXX_BOOL, MPI_CXX_FLOAT_COMPLEX,
+   MPI_CXX_DOUBLE_COMPLEX, MPI_CXX_LONG_DOUBLE_COMPLEX)
+ - Replay now opens and parses the trace file only once for all ranks when possible.
+ - Misc fixes:
+   - better handling of MPI_PROC_NULL
+   - MPI_Group_incl was broken in some cases
+   - PAPI tracing now fixed
+   - MPI_Errhandlers are properly handled for MPI_COMM_WORLD
+   - SMPI will now fail properly when receive size < sent size, instead of
+     just setting MPI_ERR_TRUNCATE and keep going.
+ - Proxy Apps ( https://framagit.org/simgrid/SMPI-proxy-apps ):
+   - Remove useless build patches and split build/run patches on the page
+   - Build in parallel when possible
+   - Test on yum-based systems
+   - New nightly tested Proxy-apps:
+     - OpenMPI mpi-test-suite
+     - Coral MCB, LSMS, Qbox, CLOMP
+     - ECP/Mantevo Cloverleaf3D, Ember
+     - Codevault bhtree_mpi
+
+Model checker:
+ - Only initialize the Dwarf parser when needed, saving 10 seconds in most cases.
+ - Start to overhaul the implementation to modernize it (still ongoing).
+
+XBT:
+ - Drop simgrid::xbt::demangle(). Please use boost::core::demangle() instead.
+ - Drop xbt_dynar_cursor_rm(), xbt_dynar_search_or_negative(),
+   xbt_str_split_quoted(), xbt_str_split_quoted_in_place().
+ - Deprecate xbt_dynar_to_array().
+ - When an exception occurs in kernel mode, display both the actor and kernel stacks.
+
+C binding and interface:
+ - Rename (lowercase) functions sg_actor_get_PID, sg_actor_get_PPID, sg_actor_by_PID.
+ - Constness requirement has been lowered for parameter argv of sg_actor_start()
+   and sg_actor_create() It's now (char* const*). The previous version is still
+   available as sg_actor_start_() and sg_actor_create_().
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GH: issues on GitHub)
+ - FG#37: Parallel tasks are limited to 1 core per host
+ - FG#62: Running "smpirun -replay" on large networks
+ - FG!46: Fix a few potential memory leaks in SMPI colls
+ - GH#343: Wrong consumed energy when an exec timeouts
+
+----------------------------------------------------------------------------
+
+SimGrid (3.26) December 15. 2020
+
+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
+ - 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
+   should not cause too much performance hit. It can change some simulation
+   timings if simulation was skipping a lot of small events (which was actually
+   an issue per see). The old value can be restored with --cfg=surf/precision:1e-5.
+ - On some network models (L07, CM02, LV08), an implicit loopback link is created
+   for local communication. Default bandwidth was 500MBps and latency was 15µs,
+   which was rather bad. Default values have been changed to 10GBps and 0 latency.
+   Options network/loopback-lat and network/loopback-bw have been added to adapt
+   these values if needed. Network and routing models already providing separate
+   loopbacks (clusters and such) are not impacted by this change.
+ - SMPI now adds 16 bytes of header to each message sent, in order to simulate
+   metadata that are added to each MPI message by MPI libraries (tag,
+   src/dest, and communicator information). This may change simulation times
+   for very small message sizes, but should be more realistic.
+
+New features:
+ - New routing 'WiFi' that makes it easier to specify a wifi network zone.
+ - New plugins: wifi_energy and link_load. See the associated examples.
+ - New examples: wifi networks, and communication suspend.
+
+General:
+ - LTO is now enabled for Intel/clang compilers.
+ - LTO behavior on GCC can be parameterized using LTO_EXTRA_FLAG in cmake.
+   Setting it to "auto" will use all available cores, while setting it to n will
+   use n cores to speedup link step (usage: cmake -DLTO_EXTRA_FLAG=4).
+ - Remove obsolete runtime option 'contexts/parallel-threshold'.
+ - Runtime option 'tracing/msg/process' renamed to 'tracing/actor'. The old name
+   has been kept for compatibility.
+ - Finally remove obsolete snake_case() aliases for runtime options.
+ - Further improve the documentation.
+
+S4U:
+ - the on_exit() of each actor is also executed when the simulation deadlocks.
+ - New functions: s4u::Activity:: suspend(), resume() and is_suspended()
+   An example is provided for s4u::Comm but it should work with Exec and Io.
+
+SMPI:
+ - Update proxy apps coverage of new ECP apps: 60+ apps now tested nightly on
+   https://framagit.org/simgrid/SMPI-proxy-apps
+ - MPI/IO: supports names starting with "./"
+ - Fortran: many MPI/IO bindings, support for MPI_UB/LB, C MPI_INT/FLOAT/DOUBLE
+   datatypes.
+ - smpicc/cxx/ff/f90 now will actually perform definition checks at link time. When
+   building shared libraries, this may cause issues, so environment variable
+   SMPI_NO_UNDEFINED_CHECK can be added to disable this.
+ - most temporary files should now be created in /tmp dir (or equivalent).
+   If this one does not allow execution of code (noexec flag), this may cause issues.
+   Please use another tmp directory (using TMPDIR or equivalent system variable)
+   in this case.
+
+Model-Checker:
+ - A large refactoring is ongoing, but this should be transparent for users so far.
+
+XBT:
+ - Drop xbt_str_split().
+
+C binding and interface:
+ - The return type of the sg_actor_on_exit() callbacks is now 'void'
+   (int value was previously ignored)
+ - Many C functions were renamed to follow a common naming style
+   (sg_object_get_something and sg_object_set_something). As usual, the deprecated
+   names are kept until version 3.30.
+ - Many MSG tests were converted to the new S4U's interface in C, that
+   was extended for that.
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GF: issues on GForge; GH: issues on GitHub)
+ - FG#41: Add sg_actor_create C interface
+ - FG#43: xbt::random needs some care
+ - FG#48: The Impossible Did Happen (yet again)
+ - FG#50: Suspending an actor executed at the current timestamp fails
+ - FG#52: Zero-seconds timeout : "That's in the past already"
+ - FG#53: Crash while using ns-3 network model
+ - FG#54: How to suspend a comm?
+ - FG!22: Stochastic Profiles
+ - FG!24: Documentation and fix for xbt/random
+ - FG!35: Add a modeling hint for parallel links in doc
+ - FG!36: [xbt/random] Read/Write the state of the RNG
+ - FG!42: Link cumulated load plugin
+ - FG!44: Test condition variable wait_until+notify_all
+ - GF#18137: Allow different stack sizes?
+ - GH#128: Parallelization of simulation with --cfg=contexts/nthreads
+ - GH#139: Allow pthread creation in SMPI
+ - GH#336: Packet-level simulation using SMPI?
+ - GH#345: Error in the LMM while migrating a VM
+ - GH#346: [SMPI] error while loading shared libraries: libsimgrid.so
+ - GH#352: pip install / python setup.py install fail to find pybind11
+ - GH!337: Fix link_energy plugin for wifi platforms
+ - GH!339: Add Mailbox set_receiver method to python binding
+ - GH!344: Cast hugepages macros parameters to int64
+
+----------------------------------------------------------------------------
+
+SimGrid (3.25) February 2. 2020 (aka 02 02 2020)
+
+The Palindrom Day Release.
+
+Important user-visible changes:
+ - Improve the Python usability (stability and documentation).
+   - A nasty synchronization bug was ironed out, see also below.
+   - Python's doc was organized as a separate tree, now integrated with C++.
+   - C bindings of S4U were not part of the doc.
+   - The C++ doc was also improved as methods are now split by theme.
+ - Further deprecate MSG: you now have to pass -Denable_msg=ON to cmake.
+   - This is mandatory to use the Java bindings.
+   - OFF by default; The plan is to completely remove MSG by 2020Q4 or 2021Q1.
+ - SimDAG++: Automatic dependencies on S4U activities (experimental)
+   - Some features are already implemented but not all of them
+   - Cannot block an activity until it's scheduled on a resource
+   - No heterogeneous wait_any() that would mix Exec/Comm/Io activities.
+   - See examples/s4u/{io,exec,comm}-dependent for what's already there.
+
+General:
+ - Upgrade documented Java dependency to Java 8 (earlier versions don't work).
+ - Drop support for Viva/Triva (old visualization tools), hence removed
+   TRACE_get_node_types() and TRACE_get_edge_types() functions.
+
+Python:
+ - Require pybind11 version 2.4.
+ - Greatly improve locking during context switches with Python.
+   - Declaring Python callbacks to this_actor::on_exit is now working.
+   - No more tests are failing currently, even on win32.
+
+S4U:
+ - Actor: Merge signals on_migration_start/end into on_host_change
+ - Actor: Rename migrate() into set_host()
+ - Disk: Allow users to get the read and write nominal bandwidth values
+ - Exec: Implement wait_for(timeout)
+ - Io: Implement wait_for(timeout)
+
+XML:
+ - Parse errors now raise a simgrid::ParseError that you may want to catch.
+
+Kernel:
+ - In simgrid::kernel::resource::Model, the methods next_occuring_event*() have
+   been renamed to fix a spelling error. As usual, the previous definitions are
+   kept with a deprecation warning. However, to avoid runtime errors, it is now
+   forbidden to override these deprecated methods in a derived class. Please use
+   the new names immediately if you need to override them.
+
+XBT:
+ - Remove unused parameter 'free_ctn' for xbt_dict_set() and xbt_dict_set_ext().
+ - Drop unused functions for dicts and dynars: xbt_dict_cursor_get_elm,
+   xbt_dict_get, xbt_dict_get_elm, xbt_dict_get_ext, xbt_dict_get_key,
+   xbt_dict_remove, xbt_dict_reset, xbt_dynar_compare, xbt_dynar_dump,
+   xbt_dynar_foreach_ptr, xbt_dynar_free_data, xbt_dynar_free_voidp,
+   xbt_dynar_init, xbt_dynar_insert_at_as, xbt_dynar_merge,
+   xbt_dynar_remove_n_at, xbt_dynar_replace, xbt_dynar_search, xbt_dynar_set.
+ - New module: random, providing classical random numbers generators.
+
+SMPI:
+ - New option : "smpi/auto-shared-malloc-thresh" which sets a value for
+   allocations' size above which they are considered "shared" by default (as if
+   they were performed through SMPI_SHARED_MALLOC macros).
+   Default = 0 = disabled feature.
+   Note : malloc, calloc and free are now overridden by smpicc/cxx by default.
+   This can cause some troubles if codes are already overriding these. If this
+   is the case, defining SMPI_NO_OVERRIDE_MALLOC in the compilation flags can
+   help, but will make this feature unusable.
+ - Input check is now performed much more consistently and outputs precise
+   warnings for each error found
+ - New supported calls : MPI_File_set_view, MPI_File_get_view
+ - MPI I/O now only supports disks, as storage is discontinued.
+ - MPI I/O allows opening files without specifying absolute path
+ - Note : SMPI configuration options are now initialized by smpi_init_options()
+   call, which should be called if SMPI is not being used through smpirun.
+
+Fixed bugs (FG#.. -> framagit bugs; FG!.. -> framagit merge requests):
+ - FG#9: Python bindings crashing
+ - FG#39: Missing s4u::Comm::wait_any_for example
+ - FG#42: Add support for ThreadSanitizer (TSan)
+ - FG!19: Removing RngStream
+ - FG!20: A module for RNG calls
+ - FG!21: Choice between ad-hoc and standard distributions implementations
+ - FG!23: Master
+ - FG!25: Fix link in Mutex doc
+ - FG!26: Fix links in SMPI interface doc
+ - GH#31: [MC] please provide an option to make MPI_Send asynchronous
+ - GH#305: Unscheduled tasks are still excuted
+ - GH#313: smpirun: manual outdated w.r.t. --help
+ - GH#321: [S4U] Get task remaining work ratio
+ - GH#323: Crash when an actor turn off his physical host
+ - GH#335: Missing links on dragonfly example svg
+ - https://lists.gforge.inria.fr/pipermail/simgrid-user/2019-November/004653.html:
+   MPI_Cart_sub was not working properly. Kudos to Jonathan Borne for the report.
+
+----------------------------------------------------------------------------
+
+SimGrid (3.24) October 9. 2019
+
+The Clean Disk Release.
+
+S4U:
+ - Introduce a s4u::Disk interface to manage the newly introduced <disk>
+   tag. s4u::Disk is called to supplant s4u::Storage in a near future. It
+   thus becomes the default resource to execute I/O operations. Examples
+   and the file system plugin have been modified to use disks instead of
+   storage elements. Storage can still be used but is doomed to disappear.
+   Users are thus adviced to update their simulators accordingly.
  - Barrier::wait returns SG_BARRIER_SERIAL_THREAD for (only) one actor
    for consistency with pthread_barrier_wait()
  - Host::get_englobing_zone() returns the englobing netzone
@@ -20,10 +728,13 @@ S4U:
      Use them to attach user data to the object and retrieve it.
 
 Models:
- - Improved the usability of ns-3. Several bugs were ironed out.
  - Introduce an experimental Wifi model. It sounds reasonable
-   according to the state of the art, but it still has to be properly 
-   validated, at least against ns-3.
+   according to the state of the art, but it still has to be properly
+   validated, at least against ns-3 if not against reality.
+ - Improved the usability of ns-3. Several bugs were ironed out.
+ - host_energy: Wattage was expressed as 'idle:oneCore:allCores'.
+   It is now expressed as 'idle:epsilon:allCores' to properly model the
+   consumption of non-whole tasks on mono-core hosts. More info in the doc.
 
 MSG:
  - convert a new set of functions to the S4U C interface and move the old MSG
@@ -31,27 +742,49 @@ MSG:
 
 SMPI:
  - Fortran bindings for DVFS have been removed.
- - Add support for MPI_Irsend, MPI_Rsend, MPI_Rsend_init, MPI_Bsend, 
+ - Add support for MPI_Irsend, MPI_Rsend, MPI_Rsend_init, MPI_Bsend,
    MPI_Ibsend, MPI_Bsend_init, MPI_Buffer_attach, MPI_Buffer_detach
  - SMPI can now be selected by cmake's find_module(MPI) with
    MPI_C_COMPILER, MPI_CXX_COMPILER, MPI_Fortran_COMPILER variables.
  - Add support for MPI Errhandlers in Comm, File or Win. Default errhandler is now
    MPI_ERRORS_ARE_FATAL, so codes which were sending warnings may start failing.
+ - trace-call-location can be used with TI traces, and replayed, and is compatible
+   with smpi/comp-adjustment-file.
+ - sleep events are now correctly traced/replayed.
+ - Default for trace-call-location is now to use file names and not full paths.
+   To revert to previous behavior (in case of collision of filenames), option
+   "smpi/trace-call-use-absolute-path" can be set to yes.
 
 Model-Checker:
  - Use the included xxHash as an hash implem when C++14 is usable.
  - Option model-checker/hash was removed. This is always activated now.
  - New option smpi/buffering controls the MPI buffering in MC mode.
- - MPI calls now MC_assert() that no MPI_ERR_* code is returned. 
+ - MPI calls now MC_assert() that no MPI_ERR_* code is returned.
    This is useful to check for MPI compliance.
 
+Documentation:
+ - New section on plugins: how to define a new one, and existing ones.
+
 XBT:
  - xbt_mutex_t and xbt_cond_t are now marked as deprecated, a new C interface
-   on S4U is already available to replace them by sg_mutex_t and sg_cond_t. 
+   on S4U is already available to replace them by sg_mutex_t and sg_cond_t.
+
+XML:
+ - Introduce the <disk> tag as a replacement of the <storage>, <storage_type>,
+   and <mount> tags. The rationale is finish to decouple what should be handle
+   by SimGrid kernel (i.e., resources and activities) from plugins built in
+   user space (e.g., the file system plugin). This new tag currently accepts
+   only three attributes (id, read_bw, and write_bw). All the other information
+   that was declared with the storage related tags now has to be expressed as
+   properties. An example of platform using this new tag is available at
+   examples/platforms/hosts_with_disks.xml
+
+tesh:
+ - 'expect signal' can now accept more than one potential signal.
 
 Fixed bugs (FG#.. -> framagit bugs; FG!.. -> framagit merge requests):
  - FG#28: add sg_actor_self (and other wrappers on this_actor methods)
- - FG#29 and FG#33: provide a new C API to mutexes and condition variables 
+ - FG#29 and FG#33: provide a new C API to mutexes and condition variables
  - FG#30: convert MSG_process_{un}ref to sg_actor_{un}ref
  - FG#31: per-actor data
  - FG#34: SG_BARRIER_SERIAL_THREAD?
@@ -61,7 +794,13 @@ Fixed bugs (FG#.. -> framagit bugs; FG!.. -> framagit merge requests):
  - FG!16: Fix the ns-3 bindings when several flows are simultaneously finishing
  - FG!17: ns-3: unblock the right number of communications + others issues
  - FG!18: Improving the performance of the ns-3 bindings
- - GH#207: Error in the throughput of TCP transfer
+ - GH#189: Energy consumption of parallel tasks
+ - GH#219: Error in the throughput of TCP transfer
+ - GH!330: Minor polishing of English: Configuring_Simgrid
+ - GH!331: Fix a doc error about actors (Tutorial_algorithms)
+ - GH!332: Add '-O0' flag for: cmake -DCMAKE_BUILD_TYPE=Debug
+ - GH!334: Rework energy plugin, again
+
 ----------------------------------------------------------------------------
 
 SimGrid (3.23.2) July 8. 2019
@@ -249,7 +988,7 @@ Documentation:
    (documenting all internals this way is overkill + doxygen scales badly)
  - New tutorial on S4U (highly inspired from the old MSG one, but with
    a git repository to fork as a starting point, and a docker image)
- - Started but not finished a SMPI tutorial inspired from the JLPC'14 one.
+ - Started but not finished an SMPI tutorial inspired from the JLPC'14 one.
  - The Developper manual is still to be converted (not compiled until then)
  - Some parts are still missing in this conversion (such as the
    platform and deployment sections) while others were blindly converted
@@ -385,7 +1124,7 @@ Plugins:
  - Rename Energy plugin into host_energy
  - Rename Load plugin into host_load
 
-simix:
+Simix:
  - Add parameter --cfg=simix/breakpoint to raise a SIGTRAP at given time.
  - kill simix::onDeadlock() that was somewhat dupplicating s4u::on_deadlock()
  - Improve performance when handling timeouts of simix synchros.
@@ -603,7 +1342,7 @@ SimGrid (3.18) Released December 24 2017
  - #230: segfaults when exit() without run()
  - #225: s4u::Actor::kill() doesn not really kill victims in a join()
  - #223: MSG_task_get_flops_amount() not working with parallel tasks
- - #222: Actor::kill() doesn't really kill and segfaults
+ - #222: Actor::kill() doesn't really kill and segfaults
  - #221: odd LMM warning when killing an actor
  - #120: Memory leak when the processes are forcefully killed
 
@@ -677,7 +1416,7 @@ SimGrid (3.16) Released June 22. 2017.
  * This is (mainly) a backward compatible change: v4 are valid v4.1 files
    - <zone> can be used as a synonym for the now deprecated <as>
    - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
-   - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
+   - <bypassZoneRoute> can be used as a synonym for the now deprecated <bypassAsRoute>
    - <actor> can be used as a synonym for the now deprecated <process>
    - state_file and avail_file periodicity is now easier to express
      (check the documentation) the old behavior should still work.
@@ -906,7 +1645,7 @@ SimGrid (3.14) Released December 24. 2016
    MSG_environment_as_get_property_value().
    - Removed MSG_as_router_*propert*() functions
    - Added MSG_environment_as_set_property_value() for consistency
- * xbt heterogeneous dictionnaries (created with xbt_dict_new()).
+ * xbt heterogeneous dictionaries (created with xbt_dict_new()).
    Well, they are still there for now, but deprecated with a warning.
    Please switch to xbt_dict_new_homogeneous() before this is removed
    for real.
@@ -1613,7 +2352,7 @@ SimGrid (3.8) stable; urgency=low
  TRACE:
  * Two new tracing options for adding comments to trace file so you
    can track your experiments (see --help-tracing for details).
- * New option to generate a impoverished trace file (--cfg=tracing/basic:1)
+ * New option to generate an impoverished trace file (--cfg=tracing/basic:1)
  * Adding the SimGrid version that generated the trace file as a comment.
  * Instrumenting other MSG functions (MSG_task_isend_with_matching and MSG_task_dsend)
  * Fix to avoid key clashes on Paje links
@@ -1637,7 +2376,7 @@ SimGrid-java (3.8.1) stable; urgency=low
  * New module: org.simgrid.msg.File (SimGrid File management functions)
  * New Module: org.simgrid.msg.VM (SimGrid interface to mimick IAAS clouds)
  * Change the meaning of Process.restart: now restart the process from
-   the begining, like MSG_process_restart in C.
+   the beginning, like MSG_process_restart in C.
  * Add Process.setAutoRestart: handling of process restart when failed
    host comes back.
  * Add Process.getProperty, Host.getProperty, Host.getProperty: allows
@@ -2274,7 +3013,7 @@ SimGrid (3.4.1) stable; urgency=low
  * Fix a bug preventing the tasks from begin garbage collected.
 
  MSG
- * Fix a bug occuring when a host involved in a communication fails.
+ * Fix a bug occurring when a host involved in a communication fails.
    This was not detected properly by the other peer involved in the
    communication. Now, it's reported as a network error.
 
@@ -2398,7 +3137,7 @@ SimGrid (3.4) stable; urgency=low
     o network_model -> network/model
     o workstation_model -> workstation/model
   * New configuration variables:
-    o network/bandwidth_factor: correction to bandwith
+    o network/bandwidth_factor: correction to bandwidth
     o network/latency_factor: correction to latency
     o netwotk/weight_S: correction to the weight of competing streams
   * Add a long description to the models, that users can see with such
@@ -2517,7 +3256,7 @@ SimGrid (3.3.4) stable; urgency=low
     - SD_task_create_comm_e2e() for end-to-end communication
     - SD_task_create_comp_seq() for sequential computation
    Use SD_task_schedulev() / SD_task_schedulel() to schedule them.
- * new function SD_task_dump() for debuging display
+ * new function SD_task_dump() for debugging display
  * new function SD_task_dotty(task,FILE*) writing to file the info
    about the task in dotty format
  * SD_task_dependency_exists() can now cope with having one of its
@@ -2775,7 +3514,7 @@ SimGrid (3.3.1) stable; urgency=low
      kind of action while the second one parses a trace file and
      triggers the corresponding actions within the system.
     For now, only a toy example is provided in examples/msg/actions
-  * Add an exemple of process migration in examples/msg/migration
+  * Add an example of process migration in examples/msg/migration
   * Fix a bug in task exchange which broke MSG_task_get_sender()
     Add a teshsuite regression test for that.
     [Bug: if MSG_task_get_sender() is called after sender exit,
@@ -2873,7 +3612,7 @@ SimGrid (3.3) stable; urgency=high
     **************************************
     *DO NOT MIX 3.2 RESULTS WITH 3.3 ONES* Simix may changes simulations!
     **************************************
-    The point is that events occuring at the exact same timestamp are
+    The point is that events occurring at the exact same timestamp are
     not scheduled in the same order with the old and new version. This
     may be enough to completely change the execution of simulations in
     some cases. Sorry for the inconvenience.
@@ -3050,7 +3789,7 @@ SimGrid (3.2) stable; urgency=high
          . Lesson 8: Handling errors through exceptions
          . Lesson 9: Exchanging simple data
          . Lesson 10: Remote Procedure Calling (RPC)
-         . Lesson 11: Explicitely waiting for messages
+         . Lesson 11: Explicitly waiting for messages
          . Recapping of message passing features in GRAS
      - A HOWTO section containing:
        o HOWTO design a GRAS application
@@ -3143,7 +3882,7 @@ SimGrid (3.1) stable; urgency=high
     in progress and the API is not considered to be frozen yet). [AL]
   * Display more information on backtraces: source line & function names are
     now displayed just like valgrind does (rely on addr2line tool) [MQ]
-  * New function: xbt_backtrace_display(). Sweet while debuging [MQ]
+  * New function: xbt_backtrace_display(). Sweet while debugging [MQ]
   * Reworked a little bit some #include statements to load only required
     headers. Some user code that relied on SimGrid to include stdlib or
     stdio may need to include it by themselves. [AL]
@@ -3226,7 +3965,7 @@ SimGrid (3.0.1) stable; urgency=low
      - reduces the amount of exchanged data (the size)
      - allows to retrieve all arrived data on receiver side, if we don't need
        it right now (subsequent read will peek the buffer)
-     - allows the receiver to proceed with the begining of the stream before
+     - allows the receiver to proceed with the beginning of the stream before
        everything is arrived
      - make it possible to build an iov transport (using readv/writev)
     Extra difficulty:
@@ -3564,7 +4303,7 @@ SimGrid (2.90) unstable; urgency=low
     MSG but a few things really had to disappear. The main differences
     with the previous version are:
        1) no more m_links_t and the corresponding functions. Platforms are
-         directly read from a XML description and cannot be hard-coded
+         directly read from an XML description and cannot be hard-coded
          anymore. The same format is used for application deployment
          description. The new format is described in the documentation.
          Have a look in tools/platform_generation. There is a tiny script
@@ -3640,7 +4379,7 @@ SimGrid (2.90) unstable; urgency=low
       - s_toto   is a structure needing 'struct' keyword to be used
       - e_toto_t is an enum
       -   toto_t is an 'object' (struct*)
-    Exemple:
+    Example:
       typedef struct s_toto {} s_toto_t, *toto_t;
       typedef enum {} e_toto_t;
     Moreover, only toto_t (and e_toto_t) are public. The rest (mainly
@@ -3766,7 +4505,7 @@ SimGrid (2.90) unstable; urgency=low
   - In composed data description (struct, ref and so on), stop foolness of
     keeping the subtype's ID, but store the type itself. This keeps sets out
     of the critical path, which is good since they rely on dynar and
-    dictionnaries. The only loose of that is that we cannot detect the
+    dictionaries. The only loose of that is that we cannot detect the
     redeclaration of a structure/union with another content (but I'm not sure
     the code detected well this error before anyway). We still can detect
     the redefinition discrepancy for the other types.
@@ -4004,7 +4743,7 @@ SimGrid (2.90) unstable; urgency=low
     for now.
  [Transport]
    [File plugin]
-     - Bugfix when using a filename explicitely (instead of '-')
+     - Bugfix when using a filename explicitly (instead of '-')
 
 2004-04-09 Martin Quinson
  [Transport plugins]