diff --git a/NEWS b/NEWS index 337b783b..d379be3f 100644 --- a/NEWS +++ b/NEWS @@ -18,26 +18,87 @@ - zmq_timers_* APIs. These functions can be used for cross-platforms timed callbacks. See doc/zmq_timers.txt for details. +* The build-time configuration option to select the poller has been split, and + new API_POLLER (CMake) and --with-api-poller (autoconf) options will now + determine what system call is used to implement the zmq_poll/zmq_poller APIs. + The previous POLLER and --with-poller options now only affects the + internal I/O thread. In case API_POLLER is not specified, the behaviour keeps + backward compatibility intact and will be the same as with previous releases. + +* The non-default "poll" poller for the internal I/O thread (note: NOT for the + zmq_poll/zmq_poller user APIs!) has been disabled on Windows as WSAPoll does + not report connection failures. For more information see: + - https://daniel.haxx.se/blog/2012/10/10/wsapoll-is-broken/ + - https://curl.haxx.se/mail/lib-2012-10/0038.html + - https://bugs.python.org/issue16507 + * New epoll implementation for Windows, using the following implementation: https://github.com/piscisaureus/wepoll/tree/v1.5.2 - To use this, select "epoll" as the polling method in the build system. + To use this, select "epoll" as the poller option in the build system. Note for distributors: the wepoll source code is embedded and distributed. It is licensed under the BSD-2-Clause and thus it is compatible with LGPL-3.0. Note that, if selected at build time, the license text must be distributed - with the binary in accordance to the license terms. A copy can be found in - the repository: external/wepoll/license.txt + with the binary in accordance to the license terms. A copy can be found at: + external/wepoll/license.txt + +* The pre-made Visual Studio solutions file are deprecated, and users are + encouraged to use the CMake solution generation feature instead. * New DRAFT (see NEWS for 4.2.0) socket options: - ZMQ_ROUTER_NOTIFY to deliver a notification when a peer connects and/or disconnects in the form of a routing id plus a zero-length frame. + - ZMQ_MULTICAST_LOOP to control whether the data sent should be looped back + on local listening sockets for UDP multicast sockets (ZMQ_RADIO). See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details. -* Many, many coding style and static analysis improvements. +* Many, many coding style, duplication and static analysis improvements. -* Many, many improvements to the CMake build system. +* Many, many improvements to the CMake build system, especially on Windows. * Many, many improvements to unit tests. +* Fixed #3036 - Compilation error when -pedantic is used. + +* Fixed #3028 - Failure when zmq_poller_destroy is called after zmq_ctx_term. + +* Fixed #2989 - CMake: Linker PDB install rule does not work when Visual Studio + generators are used. + +* Fixed #3045 - configure.ac: search for dladdr only when using libunwind. + +* Fixed #3060 - REQ sockets terminate TCP connection after first heartbeat if + ZMQ_HEARTBEAT_IVL is set. + +* Fixed #2212 - UDP: need ability to specify bind address separately from + multicast address for multi-homed hosts. + +* Fixed #2891 - UDP: address name resolution is limited to dotted IPv4 rather + than being capable of IPv4, IPv6, and hostname lookup. + +* Fixed #3085 - autoconf/CMake getrandom test does not check if it's working but + only for its presence. + +* Fixed #3090 - compilation broken with Solaris Studio. + +* Fixed #3094 - UDP: pass interface via IP[V6]_MULTICAST_IF if provided. + +* Fixed #3061 - implement ZMTP 3.1 ping/pong context sending/receiving. + +* Fixed #2188 - Added documentation for new zmq_poller API. + +* Fixed #3088 - zmq_poller_add/zmq_poller_modify should reject invalid events + arguments. + +* Fixed #3042 - Fixed compilation on ARM with ZMQ_ATOMIC_PTR_MUTEX. + +* Fixed #3107 - test_immediate_3/test_reconnect_inproc do not terminate with + POLL as the I/O thread poller under Windows. + +* Fixed #3046 - Aborts when iOS abuses EBADF to report a socket has been + reclaimed. + +* Fixed #3136 - Cannot set ZMQ_HEARTBEAT_TTL to more than 655.3 seconds. + * Fixed #3083 - link with -latomic when needed. * Fixed #3162 - build failure with MUSL libc.