==========================
* New features:
+ Add support for the MPI-4.0 standard.
- Use large count MPI-4 routines.
- Add persistent collective communication.
- Add partitioned point-to-point communication.
- Add new communicator constructors.
- Add the `Session` class and its methods.
+ Add support for the MPI-4.1 standard.
- Add non-destructive completion test for multiple requests.
- Add value-index datatype constructor.
- Add communicator/session buffer attach/detach/flush.
- Support for removal of error classes/codes/strings.
- Support for querying hardware resource information.
+ Add prelimiary support for the upcoming MPI-5.0 standard.
- User-level failure mitigation (ULFM).
+ `mpi4py.util.pool`: New drop-in replacement for `multiprocessing.pool`.
+ Add runtime check for mismatch between `mpiexec` and MPI library.
+ Support `scikit-build-core`_ as an alternative build backend.
.. _scikit-build-core: https://scikit-build.readthedocs.io/
+ Support `meson-python`_ as an alternative build backend.
.. _meson-python: https://meson-python.readthedocs.io/
* Enhancements:
+ `mpi4py.futures`: Support for parallel tasks.
+ `mpi4py.futures`: Report exception tracebacks in workers.
+ `mpi4py.util.pkl5`: Add support for collective communication.
+ Add methods `Datatype.fromcode()`, `Datatype.tocode()` and
attributes `Datatype.typestr`, `Datatype.typechar` to simplify
NumPy interoperability for simple cases.
+ Add methods `Comm.Create_errhandler()`, `Win.Create_errhandler()`,
and `File.Create_errhandler()` to create custom error handlers.
* Add support for pickle serialization of instances of MPI types.
All instances of `Datatype`, `Info`, and `Status` can be
serialized. Instances of `Op` can be serialized only if created
through `mpi4py` by calling `Op.Create()`. Instances of other MPI
types can be serialized only if they reference predefined handles.
* Add `handle` attribute and `fromhandle()` class method to MPI
classes to ease interoperability with external code. The handle
value is a unsigned integer guaranteed to fit on the platform's
``uintptr_t`` C type.
* Backward-incompatible changes:
* Python 2 is no longer supported, Python 3.6+ is required, but
typing stubs are supported for Python 3.8+.
* The `Intracomm.Create_group()` method is no longer defined in the
base `Comm` class.
* `Group.Compare()` and `Comm.Compare()` are no longer class methods
but instance methods. Existing codes using the former class
methods are expected to continue working.
* `Group.Translate_ranks()` is no longer a class method but a
instance method. Existing codes using the former class method are
expected to continue working.
* The `LB` and `UB` datatypes are no longer available, use
`Datatype.Create_resized()` instead.
* The `HOST` predefined attribute keyval is no longer available.
* The `MPI.memory` class has been renamed to `MPI.buffer`. The old
name is still available as an alias to the new name.
* The `mpi4py.dl` module is no longer available.
* The `mpi4py.get_config` function returns an empty dictionary.