+SimGrid (3.21) NOT RELEASED (Release Target: September 23. 2018, 1:54 UTC)
+
+The Restarting Documentation (TRD) Release.
+
+Documentation:
+ - Convert the user manual to Sphinx for improved usability.
+ Unstable version now hosted on https://simgrid.frama.io/simgrid
+ Many glitches remain; stay tuned.
+ - Restrict the Doxygen reference API to the installed header files.
+ (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.
+ - The Developper manual is still to be converted (not compiled until then)
+
+S4U new features:
+ - Fully reimplement auto_restart mechanism that was utterly broken
+ (fix #22, #131 and #281 that were all very related)
+ - When creating an actor from a function and its parameters,
+ move-only parameters are not allowed anymore, as it would prevent
+ the actor to be restartable if its parameters are consumed on run.
+ - s4u::Io: IOs go asynchronous as activities. This comes with new methods in the
+ s4u::Storage class:
+ - io_init(sg_size_t, s4u::Io::OpType) to create a READ or WRITE asynchronous
+ IO operations that can be started, waited for, or canceled as a regular
+ activity.
+ - read_async(sg_size_t) and write_async(sg_size_t) which are wrappers on
+ io_init() + start()
+
+Tracing:
+ - Rename 'power' and 'power_used' variables into 'speed' and 'speed_used'
+ - New host variable: 'core_count'
+
+XBT:
+ - Remove xbt_os_thread_specific features
+ - Remove portability wrapper to condition variables
+ - Remove xbt_os_thread_yield()
+
+SMPI:
+ - MPICH collective selector now mimics MPICH 3.3b
+ - OpenMPI collective selector now mimics OpenMPI 3.1.2 (default "tuned" setting)
+ - MPI_Init(NULL,NULL) is now allowed
+ - smpi/wtime option now injects time in gettimeofday or clock_gettime calls
+ - Command-line arguments should now be handled properly in Fortran simulations
+ - MPI Attributes and related callbacks should work in Fortran
+ - Apps using C + Fortran should now work
+ - MPI_* calls now check for non MPI_SUCCESS return values and emit warnings
+ - Support MPI_Error_String
+
+Java:
+ - Due to an internal bug, Msg.run() must now be your last line.
+ We hope to fix it in a future release, and we are sorry for the inconvenience.
+
+Fixed bugs:
+ - #22: Process autorestart seem to only work with CAS01 cpus
+ - #56: Feature request: dynamic SMPI replay
+ - #93: simgrid should not eat --help
+ - #111: How to change the loopback link characteristics?
+ - #116: Platform cluster radical
+ - #117: Platform cluster/host order
+ - #129: Replay_multiple on steroid
+ - #131: Java : autostart does not work
+ - #143: Setting a breakpoint at a given time
+ - #235: Network energy models should be integrated
+ - #264: Add ptask L07 resource tracing
+ - #271: Dynamic and manual replay of SMPI traces
+ - #279: Breakpoints option uses time deltas instead of absolute time
+ - #281: Daemonized actor no longer daemonized after an auto-restart
+ - #282: TIT convertor erase traces when using absolute path in the trace list file
+ - #285: segfault when a s4u actor kills itself with msg process tracing activated
+ - #286: Pajé traces are not exposing the number of cores
+ - #287: Command-line parsing should stop when encountering '--'
+ - #288: MPI_Init(NULL, NULL)
+ - #289: Improve documentation of Actor::on_destruction and this_actor::on_exit()
+ - #290: Method to check if a mailbox has a message ready to be consumed
+ - #294: Alltoall collective implementation of mpich
+ - #295: Starting a Host as OFF is not supported
+ - #296: DTD too permissive
+ - #299: Add a s4u barrier example
+
+----------------------------------------------------------------------------
+
+SimGrid (3.20) Released June 24. 2018
+
+The proxy snake_case() release.
+
+S4U:
+ - The whole API is now using snake_case() instead of mixing it with camelCase.
+ Compatibility wrappers in place for one year.
+ - We took the opportunity to increase the consistency of the API.
+ Please report any remaining glitches.
+ - New function simgrid::s4u::Host::get_actor_count:
+ Returns the number of actors running on a specific host.
+
+SMPI:
+ - SMPI is now tested with ~45 proxy apps from various sources, with none or
+ only minor patching needed: check https://github.com/simgrid/SMPI-proxy-apps
+ - Replay: The replay file has been re-written in C++.
+ - Replay: Tags used for messages sent via MPI_Send / MPI_Recv are now
+ supported. They are stored in the trace and used when replayed.
+ - Basic support of MPI_Cancel. Robustness not guaranteed.
+ - Support of MPI_Win_allocate_shared, MPI_Win_shared_query, MPI_Comm_split_type
+ (only for MPI_COMM_TYPE_SHARED).
+ - New option: smpi/privatize-libs, to add external shared libs to be privatized
+ by SMPI. They will be copied locally and loaded separately by each process.
+ Example --cfg=smpi/privatize-libs:"libgfortran.so.3;libscalapack.so".
+ - Tracing: add tracing for MPI_Start, Startall, Testall, Testany
+ - Interception of getopt, getopt_long and getopt_long_only calls to avoid issues
+ with internal index optind with multiple processes. Only works if MPI_Init has
+ already been called.
+ - Fortran: SMPI builds a mpi.mod file which should allow use of "use mpi"
+ syntax without preprocessing tricks.
+
+TRACE
+ - Change --cfg=tracing/msg/vm to --cfg=tracing/vm as virtual machine
+ behavior tracing is no longer limited to MSG
+ - TIT (Time Independent Traces): We finally support tags. Unfortunately,
+ this means that traces now need to be updated or re-obtained; both Irecv
+ and Isend lines in your traces have now in total 5 mandatory fields:
+ <rankid> <command> <to/from rankid> <tag> <size>
+ To update your traces, it suffices to add a 0 for the tag here.
+ - TIT now also supports waiting for a distinct request via MPI_Wait.
+ Wait/Test now wait for a specific request, not just the last one that was
+ issued. This unfortunately means another update, because we need to
+ identify which request you want to wait for. We do this via the
+ triplet (sender, receiver, tag), which needs to be added:
+ <rankid> <command> <sender> <receiver> <tag>
+ - Actions are now in lower case (e.g., "allReduce" becomes "allreduce").
+ New script simgrid_convert_TI_traces.py: upgrade your TI traces.
+
+MSG
+ - The deprecation of MSG is ongoing (but this should not impact you).
+ Many MSG functions are now simple wrappers on the C API of S4U. If
+ you wish to convert your code to S4U, find the S4U counterparts of
+ your MSG calls in src/msg/msg_legacy.cpp.
+ - MSG can still be used, but won't evolve anymore.
+
+Plugins:
+ - Allow to run the Link energy plugin from the command line with
+ --cfg=plugin:link_energy
+ - Rename Energy plugin into host_energy
+ - Rename Load plugin into host_load
+
+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.
+
+XBT:
+ - Config: the C API is now deprecated (will be removed in 3.23), and
+ the C++ API has been slightly improved.
+
+Other:
+ - Fix several build issues on OSX.
+ - Move simgrid_config.h to simgrid/config.h (old header still working)
+
+Fixed bugs:
+ - #143: Setting a breakpoint at a given time
+ - #150: Inconsistent event names in SMPI replay
+ - #258: daemonized actors hang after all non-daemonized actors have completed
+ - #267: Linker error on unit_tmgr
+ - #269: SMPI: tracing of MPI_Wait/all/any broken
+ - SMPI: Fix various crashes with combined use of MPI_PROC_NULL and MPI_IGNORE_STATUS
+
+----------------------------------------------------------------------------
+
+SimGrid (3.19.1) Released March 22 2018
+
+ The Fixed ABI Release.
+
+ As you may know, we are currently refactoring SimGrid in deep.
+ Upcoming SimGrid4 will be really different from SimGrid3: modular,
+ standard and extensible vs. layered, homegrown and rigid. C++ vs. C.
+
+ Our goal is to smooth this transition, with backward compatibility
+ and automatic update paths, while still progressing toward SimGrid4.
+
+ SimGrid remains open during works: The last pure SimGrid3 release was
+ v3.12 while all subsequent versions are usable alpha versions of
+ SimGrid4: Existing interfaces remain unchanged, but the new S4U
+ interface is budding and the internals are deeply reorganized.
+
+ Since 2015, we work hard to reduce the changes to public APIs. When
+ we need to rename a public library symbol in S4U, we let your
+ compiler issue an explicative warning when you use the deprecated
+ function. These messages remain for four releases, i.e. for one full
+ year, before turning into an error. Starting with v3.15, your can
+ also adapt to API changes with the SIMGRID_VERSION macro, that is
+ defined to 31500 for v3.15, to 31901 for v3.19.1 and so on.
+
+ Starting with this v3.19.1, our commitment to reduce the changes to
+ the public interfaces is extended from the API to the ABI: a program
+ using only MSG or SimDag and compiled against a given version of
+ simgrid can probably be used with a later version of SimGrid without
+ recompilation. We will do our best... but don't expect too much of
+ it, that's a really difficult goal during such profund refactoring.
+
+ The difference between v3.19 and v3.19.1 is that the former was
+ accidentally breaking the ABI of MSG, while the later is restoring
+ the previous ABI.
+
+ S4U and kernel APIs will still evolve until SimGrid4, with one-year
+ deprecation warnings as currently. In fact, cleaning up these
+ interfaces and converting them to snake_case() is one release goal of
+ v3.20. But don't worry, we are working to smooth this upgrade path.
+
+ In summary, new projects should start with S4U to benefit of the
+ future, but old MSG projects should still be usable with no change.
+
+----------------------------------------------------------------------------
+
+SimGrid (3.19) Released March 20 2018
+
+ The Moscovitly-cold Spring release.
+
+ SMPI user-visible improvements:
+ - Support of MPI_Type_create_subarray
+ - Unimplemented MPI calls now abort (instead of issuing a warning)
+ Some harmless calls around errhandlers still only issue a warning.
+ - MPI_Sendrecv was behaving badly when MPI_PROC_NULL was sender or receiver.
+ - Starting MPI ranks (or even MSG/S4U actors) once the simulation started
+ is now possible (mmap privatization was refactored to this end).
+ Adding new SMPI instances should also be technically doable now.
+
+ SMPI internal cleanups:
+ - Removed index notion from SMPI -- no more "getPid() - 1"!
+ In tracing files, actors are called rank-<PROCESS-ID> but these are
+ NOT the real ranks (tracing several communicators is not supported yet).
+ - Deprecate smpi_process_index() (will be removed in 3.22)
+ - Better testing on classical proxy apps, through an external project:
+ https://github.com/simgrid/SMPI-proxy-apps/
+
+ Documentation
+ - Use a graphical TOC to make it easier to find the documentation you need
+ - Revamp the MSG tutorial
+
+ MSG
+ - Fix MSG_task_get_remaining_work_ratio(): return 1.0 for unstarted tasks.
+ - Remove parameter of MSG_process_killall().
+ Resetting the PID was bogus anyway (several actors could have the same PID).