summaryrefslogtreecommitdiff
path: root/NEWS
blob: 3933f7969d8a2e003058fd7de56fb616019f4832 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
Crossroads I/O Release Notes
----------------------------

This file documents the major changes in between releases of Crossroads
I/O. For a detailed list of changes please refer to Git history, or the
ChangeLog file included with your distribution of Crossroads.

Release 1.2.0 (13 Jun 2012)
---------------------------

This release introduces the topic (wildcard) filtering mechanism.
Aside of that it fixes several problems with 1.1.0.

Backward incompatible changes::
* xs.h header was moved to xs subdirectory to prevent clash with XenStore
  header; use #include <xs/xs.h> from now on
* Expired survey returns ETIMEDOUT instead of EAGAIN

New features::
* Topic filter implemented

Bugfixes::
* libzmq and tests MSVC projects added to the distribution
* Do not crash when multiple peers connect to PAIR socket
* Opening plug-in directory made more robust
* Use global event to synchronise signaler creation on Windows
* Polling on SURVEYOR socket implemented
* Properly handle infinite timeout in zmq_poll()

Build::
* Install plugins under $(libdir) to simplify multi-arch packaging
* Issues a warning on unsupported architectures instead of failing
* Different minor improvements

Self tests::
* test for multiple peers on PAIR socket added


Release 1.1.0 (12 May 2012)
---------------------------

This release adds several new features as well as fixing large amount of bugs.

Backward incompatible changes::
* xs_bind() and xs_connect() return non-negative number (endpoint ID) in
  the case of success, as opposed to zero returned in previous versions

New features::
* Survey messaging pattern added which allows to send request (survey) to
  multiple peers and get response from them; new socket types: SURVEYOR,
  XSURVEYOR, RESPONDENT, XRESPONDENT
* xs_shutdown() function added that allows to shut down specific parts of
  the topology without the need to close the socket
* 0MQ/2.1 wire format compatibility for PUB/SUB implemented; it can be switched
  on using XS_PROTOCOL socket option
* EXPERIMENTAL: Infrastructure for plugins added; at the moment only pluggable
  filters for PUB/SUB are supported

Bugfixes::
* Internal handles are not inherited to child processes on Windows
* Properly handle very large messages on platforms with small size_t type
* Bug in command throttling fixed
* Dropping of first message by (E)PGM transport fixed
* When invalid connection string is used, xs_connect() and xs_bind() return
  an error rather than cause assertion
* Prototype definition for xs_init() fixed
* Bug in async connection algorithm fixed
* Premature reset_pollout fixed preventing hang ups in certain situations
* Multiple fixes handling the situation when OS runs out of file descriptors
* Bug in prefix filter compaction logic fixed
* Truncate the message when it is sent to XSUB
* Fix of a critical bug in zmq_getsockopt in 0MQ compatibility layer
* Fix of intermittent assertion failure on laggy networks
* Set CLOEXEC flag on fds used by signaler
* Fix identity exchange for inproc transport
* Check connction string length before manipulating it
* Accept ECONNRESET from close()

Optimisation::
* Atomic operations on ARMV7A architecture used instead of mutexes
* GCC built-in atomic opserations used if possible
* Superfluous RDTSC instruction is not issued when command throttling is
  turned off
* Initialise fd_set once for signaler_t object rather then every time
* Improve efficiency of time measurement in tight loops

Build::
* --disable-plugins option added
* Improvements in how the polling mechanism is selected
* The build system now relies more on feature checks and does less guesswork
  based on what OS it is compiling for
* Improve POSIX threads detection and configuration
* Honour --with-poller option for synchronous polling
* Define _GNU_SOURCE in addition to the __BSD_VISIBLE on freebsd-like hosts
* Modified the configure.ac file according to autoconf best practices
* Various warnings generated by SunStudio fixed

Self tests::
* Several new tests added to the test suite
* Tolerances for timeouts in test were increased so that the tests can succeed
  even on slow or overloaded hardware


Release 1.0.1 (29 March 2012)
-----------------------------

This is a bug fix release, with the only new addition being the XS_KEEPALIVE
socket option for enabling TCP keepalives.

New features::
* XS_KEEPALIVE options added

Bugfixes::
* Fix race condition in find_endpoint
* Small ommision in session creation mechanism
* Reconnect test fixed
* OpenVMS tests fixed
* Send identities on reconnect
* Make REQ session state machine aware of reconnections
* Error handling during connect
* Ignore distorted timeouts on Windows in debug mode
* Add long comment about security problem on Windows platform
* Signaler's global event is now accessible by everyone
* Handle duplicate identities decently
* wireformat test added
* Fixed issue LIBZMQ-345 - race condition in ctx.socket/term allows segfault
* Add missing <sys/types.h> header.
* Use strncpy() instead of strcpy().
* Documentation updates.


Release 1.0.0 (15 March 2012)
-----------------------------

Initial release.  Changes listed here are as compared to libzmq release
3.1.

New features::

* The io_threads argument has been removed from xs_init(), and the default
  number of I/O threads per context is now 1.
* Context options added - see xs_setctxopt(3):
  - The XS_IO_THREADS context option allows the user to specify the size of
    the worker thread pool.
  - The XS_MAX_SOCKETS context option allows the user to specify the
    maximum number of sockets that can exist in parallel within a context.
* Allow setting the source address for TCP connections - see xs_tcp(7).
* ZeroMQ drop-in compatibility mode, enabled by the --enable-libzmq option
  to configure. This is a binary compatible emulation of the ZeroMQ 2.1.11
  API, for details see zmq(7).

Bugfixes::

* Fix pgm_receiver.cpp: zmq_assert (pending_bytes == 0). (LIBZMQ-205)
* Fix assertion in pgm_sender_t::plug(). (LIBZMQ-303)
* Race condition in zmq_term() fixed.
* Message loss when a SUB socket disconnects fixed.
* Fix data loss for PUB/SUB and unidirectional transports. (LIBZMQ-268)
* Bug in linger implementation fixed.
* Fix IPC transport domain socket stream file not being removed when
  connection is closed.
* Removal of pipe from dist_t fixed.
* Only use AI_V4MAPPED if defined, and don't use it on FreeBSD.

Optimisation::

* Several optimisations to reduce the memory size of PUB/SUB subscription
  map.
* Avoid one extra call to poll() when there are no more data to send.

Build::

* MSVC build updated to use MSVC2010 instead of MSVC2008.
* configure prints out a summary of XS configuration.

Self tests::

* Many more tests have been added, see the tests/ subdirectory.
* The self tests can now be run from a MSVC build, see the "tests" project.