- The C++ API installation has been changed to use autoconf and automake. As a
result, it is possible to run ``make install`` and get the static library,
headers, and tools installed.
- The directory structure has changed. The :file:`spead2_*` tools are now
installed, example code is now in the :file:`examples` directory, and the
headers have moved to :file:`include/spead2`.
- Add support for sending data using libibverbs API (previously only supported
for receiving)
- Fix async_send_heap (in Python) to return a future instead of being a
coroutine: this fixes a problem with undefined ordering in the trollius
example.
- Made sending streams polymorphic, with abstract base class
:cpp:class:`spead2::send::stream`, to simplify writing generic code that can
operate on any type of stream. This will **break** code that depended on the
old template class of the same name, which has been renamed to
:cpp:class:`spead2::send::stream_impl`.
- Add :option:`!--memcpy-nt` to :program:`spead2_recv.py` and
:program:`spead2_bench.py`
- Multicast support in :program:`spead2_bench.py` and :program:`spead2_bench`
- Changes to the algorithm for :program:`spead2_bench.py` and
:program:`spead2_bench`: it now starts by computing the maximum send speed,
and then either reporting that this is the limiting factor, or using it to
start the binary search for the receive speed. It is also stricter about
lost heaps.
- Some internal refactoring of code for dealing with raw packets, so that it
is shared between the netmap and ibv readers.
- Report function name that failed in semaphore system_error exceptions.
- Make the unit tests pass on OS X (now tested on travis-ci.org)