mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-26 23:01:04 +08:00
490 lines
18 KiB
Plaintext
490 lines
18 KiB
Plaintext
0MQ version 2.0.8 (Stable), released on 2010/08/25
|
|
==================================================
|
|
|
|
New functionality
|
|
-----------------
|
|
|
|
* The ZMQ_SWAP functionality has now been implemented for all socket types.
|
|
|
|
Bug fixes
|
|
---------
|
|
|
|
* Many bug fixes (about 30), see the ChangeLog for details.
|
|
|
|
|
|
Interface
|
|
---------
|
|
|
|
* By popular demand, the zmq_stopwatch_start, zmq_stopwatch_stop and zmq_sleep
|
|
functions have been added back into distribution. This API is now in a
|
|
separate include file, zmq_utils.h.
|
|
|
|
* The ZMQ_UPSTREAM and ZMQ_DOWNSTREAM socket types have been renamed to
|
|
ZMQ_PULL and ZMQ_PUSH for clarity. The old names are still defined for
|
|
compatibility reasons and will be removed in a future version.
|
|
|
|
* API calls that expect non-null parameters now return -1 and set errno to
|
|
EFAULT if null parameters are passed.
|
|
|
|
|
|
Thanks to
|
|
---------
|
|
|
|
Everyone.
|
|
|
|
|
|
0MQ version 2.0.7 (Beta), released on 2010/06/04
|
|
================================================
|
|
|
|
|
|
Distribution
|
|
------------
|
|
|
|
* The core documentation has been updated with many clarifications, especially
|
|
in the description of the functionality provided by the different socket
|
|
types.
|
|
|
|
* The version of OpenPGM bundled with 0MQ has been updated to the 2.1.26 release.
|
|
|
|
|
|
Building
|
|
--------
|
|
|
|
* GCC-isms have been removed from the code and build system across the board;
|
|
0MQ should now build with no issues when using compilers other than GCC.
|
|
|
|
|
|
Interface
|
|
---------
|
|
|
|
* The zmq_init() function now has only a single parameter; the number of 0MQ
|
|
I/O threads to create in the context being initialised. The app_threads and
|
|
flags parameters have been removed.
|
|
|
|
* The ZMQ_P2P socket type has been renamed to ZMQ_PAIR.
|
|
|
|
* The ZMQ_LWM socket option has been removed; the low water mark for a socket
|
|
is now computed automatically by 0MQ.
|
|
|
|
* A zmq_getsockopt() function has been added.
|
|
|
|
|
|
New functionality
|
|
-----------------
|
|
|
|
* Multi-hop request/reply is fully supported. This feature allows the insertion
|
|
of device(s) between ZMQ_REQ and ZMQ_REP sockets thus enabling scenarios
|
|
such as multi-threaded server, shared service queue, and other interesting
|
|
messaging topologies. The entire infrastructure is transparent to
|
|
applications.
|
|
|
|
* Multi-part messages. A 0MQ message may now be composed of 1 or more message
|
|
parts; each message part is an independent zmq_msg_t in its own right. 0MQ
|
|
ensures atomic delivery of messages; peers shall receive either all message
|
|
parts of a message or none at all.
|
|
|
|
This feature allows for seamless zero-copy message passing when data are
|
|
scattered in memory, and is an important building block for multi-hop
|
|
messaging topologies.
|
|
|
|
* Context termination and ETERM. The zmq_term() function has been
|
|
changed to interrupt any blocking operations on open sockets, causing them to
|
|
return the newly defined ETERM error code. This allows for orderly
|
|
application termination, especially when multiple application threads are
|
|
involved.
|
|
|
|
|
|
0MQ version 2.0.6 (Beta), released on 2010/03/16
|
|
================================================
|
|
|
|
|
|
Distribution
|
|
------------
|
|
|
|
* The 0MQ core distribution has been slimmed down to include only the core
|
|
C library and C++ language binding. Pointers to other language bindings can
|
|
be found on the website. Examples have also been removed from the
|
|
core and can be found elsewhere. Performance tests specific to a language
|
|
binding can be found bundled with that language binding.
|
|
|
|
* The 0MQ reference manual supplied with the distribution has been
|
|
extensively rewritten, and is now provided in HTML as well as UNIX
|
|
manpage format.
|
|
|
|
* Commencing with this release, a 0MQ version numbering scheme has been
|
|
introduced. The numbering scheme used is MAJOR.MINOR.PATCH. The "Beta" or
|
|
"Stable" label is informative only and does not constitute
|
|
part of the library version number, therefore this release is numbered
|
|
2.0.6 as the sixth release of 2.0.
|
|
|
|
* The version of OpenPGM bundled with 0MQ has been updated to the stable
|
|
2.0.24 release.
|
|
|
|
|
|
Building
|
|
--------
|
|
|
|
* Many portability fixes, including support for new platforms: FreeBSD,
|
|
NetBSD, HP-UX and Cygwin.
|
|
|
|
* Invocation of configure has been simplified, all functionality is now
|
|
built by default with the exception of OpenPGM.
|
|
|
|
|
|
Interface
|
|
---------
|
|
|
|
* The udp transport has been renamed to epgm to avoid confusion with
|
|
unreliable unicast.
|
|
|
|
* A ZMQ_POLLERR constant has been added to allow for polling on errors on
|
|
Berkeley sockets with zmq_poll().
|
|
|
|
* The zmq_version() function has been introduced and returns the version
|
|
number of the 0MQ library.
|
|
|
|
* The zmq_flush() function and ZMQ_NOFLUSH flag of zmq_send() have been
|
|
deprecated and will be removed in a future release.
|
|
|
|
|
|
Wire format
|
|
-----------
|
|
|
|
* The 0MQ wire format has been changed. A flags field has been added to
|
|
allow for future extensions.
|
|
|
|
|
|
New functionality
|
|
-----------------
|
|
|
|
* The experimental ZMQ_P2P socket type has been implemented.
|
|
|
|
* Flow control has been implemented for all socket types. For details see
|
|
the ZMQ_HWM and ZMQ_LWM socket options.
|
|
|
|
* Subscription filters are internally matched with O(1) complexity.
|
|
|
|
|
|
Licensing
|
|
---------
|
|
|
|
* iMatix corporation has granted the following exception regarding static
|
|
linking with the 0MQ library:
|
|
|
|
As a special exception, iMatix gives you permission to link this
|
|
library with independent modules to produce an executable,
|
|
regardless of the license terms of these independent modules, and
|
|
to copy and distribute the resulting executable under terms of
|
|
your choice, provided that you also meet, for each linked
|
|
independent module, the terms and conditions of the license of
|
|
that module. An independent module is a module which is not
|
|
derived from or based on this library. If you modify this
|
|
library, you must extend this exception to your version of the
|
|
library.
|
|
|
|
|
|
Thanks to
|
|
---------
|
|
|
|
This release of 0MQ was made possible by many contributors from the community,
|
|
including:
|
|
|
|
* Adrian von Bidder <avbidder@fortytwo.ch>, for contributing Debian packages.
|
|
|
|
* Aleksey Yeschenko <aleksey@yeschenko.com>, for contributing a Lua binding.
|
|
|
|
* Alessio Spadaro <alessio.spadaro@finservice.com>, for help with porting to
|
|
HP-UX.
|
|
|
|
* Bernd Prager <bernd@prager.ws>, for help with porting to Cygwin.
|
|
|
|
* Brian E. Granger <ellisonbg@gmail.com>, for maintaining the Python binding.
|
|
|
|
* Martin Hurton <hurtonm@gmail.com>, for implementing flow control.
|
|
|
|
* Martin Lucina <mato@kotelna.sk>, for rewriting the 0MQ reference manual and
|
|
many portability fixes.
|
|
|
|
* Michael Santy <Michael.Santy@dynetics.com>, for testing this release with
|
|
Infiniband.
|
|
|
|
* Steven McCoy <steven@miru.hk>, for help with OpenPGM.
|
|
|
|
* Toralf Wittner <toralf.wittner@gmail.com>, for contributing a Haskell
|
|
binding.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Version 2.0-beta2
|
|
|
|
ZMQII-29 Add timeout to zmq_poll function
|
|
ZMQII-30 Build fails on MacOS X
|
|
ZMQII-31 memory leak in zmq_poll (on timeout)
|
|
ZMQII-33 zmq_poll may exceed timeout if signal interrupts the waiting
|
|
ZMQII-34 ensure that poll won't return POLLIN event when the message will be filtered out anyway
|
|
ZMQII-36 Chat example & forwarder broken because of changes subscribe semantics
|
|
ZMQII-37 SIGSEGV when polling on REQ socket
|
|
ZMQII-38 Compiler complains about missing virtual constructors
|
|
ZMQII-39 Implement IPC transport
|
|
|
|
Version 2.0-beta1
|
|
|
|
ZMQII-27 Allow setting SNDBUF and RCVBUF size from 0MQ API
|
|
ZMQII-22 Deadlock on zmq_close
|
|
ZMQII-25 Implement streamed request/reply
|
|
ZMQII-24 SEGFAULT when anonymous session disconnects
|
|
ZMQII-26 Use zero-copy for large messages
|
|
ZMQII-19 add --disable-eventfd configure option
|
|
|
|
Version 2.0-alpha3
|
|
|
|
ZMQII-17 Allow multiple senders for sigle mcast group aka multicast bus.
|
|
ZMQII-16 Change "struct zmq_msg_t" to "zmq_msg_t" in C binding.
|
|
ZMQII-15 Implement REQ/REP sockets.
|
|
ZMQII-14 Change default for ZMQ_MCAST_LOOP to true.
|
|
|
|
Version 2.0-alpha2
|
|
|
|
ZMQII-11 Implement forwarder device
|
|
ZMQII-10 Make connections interrupted during the init phase be closed silently
|
|
ZMQII-8 Failure during orphan pipe deallocation
|
|
ZMQII-7 Pipe detach fails on shutdown
|
|
ZMQII-6 connection refused in tcp_connecter::connect leads to assert
|
|
ZMQII-5 Only one consumer in a process gets the message
|
|
ZMQII-4 Failure in dev/poll poller
|
|
ZMQII-3 Implement message filtering
|
|
ZMQII-2 SIGSEGV in zmq_connecter_init_t::read
|
|
ZMQII-1 Win32 - failure on shutdown
|
|
|
|
Version 2.0-alpha1
|
|
|
|
Large scale refactoring of the code and new socket-like API.
|
|
|
|
Version 1.0.1
|
|
|
|
ZMQ-289 Return -1 from bind when remote object is not registered in zmq_server
|
|
ZMQ-288 Return -1 from create_exchange /queue when object can not be created
|
|
ZMQ-287 Disabling receiving messages from queue
|
|
ZMQ-286 create handle_t class with == and != operators
|
|
ZMQ-285 multiple listeners listening on the same machine with UDP encap.
|
|
ZMQ-284 mask function inaccessible via Java on Windows
|
|
ZMQ-283 Lua binding for 0MQ
|
|
ZMQ-282 Cannot send message containing zero byte via Ruby
|
|
ZMQ-281 Publisher restart fails on PGM and Win/Linux
|
|
ZMQ-280 Broken build using MSVC 2005
|
|
ZMQ-278 Load-balancing exchange doesn't load balance
|
|
ZMQ-277 TCL binding
|
|
ZMQ-276 Check for pkg-config in autogen.sh script
|
|
ZMQ-275 Check for eventfd by running test program during ./configure
|
|
ZMQ-274 can not compile estimate_cpu_freq with PERF_CPU_FREQUENCY set
|
|
ZMQ-273 gcc (GCC) 4.4.0 invalid conversion from const char* to char*
|
|
ZMQ-272 make sure message content is created properly
|
|
|
|
Version 1.0.0
|
|
|
|
ZMQ-271 Build OpenPGM with 0MQ build system
|
|
ZMQ-270 0MQ windows pgm support
|
|
ZMQ-269 Constness is better for the zmq_send data_ argument
|
|
ZMQ-267 assert in api_thread.cpp384 void zmqapi_thread_tprocess_command
|
|
ZMQ-266 Memory coruption in api_thread_tcreate
|
|
ZMQ-265 Missing librbzmq.vcproj file
|
|
ZMQ-264 Java examples can not be run on OpenVMS
|
|
ZMQ-263 Warning preventing compilation of chat example
|
|
ZMQ-262 CLONE -QNX port -- working in 6.4.0?
|
|
ZMQ-261 add --with-rubydir configure option
|
|
ZMQ-260 syntax error caught by gcc 4.4
|
|
ZMQ-253 Allow to establish arbitrary AMQP wiring on connection startup
|
|
ZMQ-249 Handle EAGAIN and EWOULDBLOCK as the same error
|
|
ZMQ-248 Call in/out events directly from I/O thread
|
|
ZMQ-247 Move physical thread from poller to individual I/O threads
|
|
ZMQ-240 Pack Java classes into a .jar
|
|
ZMQ-239 make --with-clr imply --with-c
|
|
ZMQ-237 Java extension not working with Win32 package
|
|
ZMQ-235 JAVA build fails if PATH is not set to JDK/bin
|
|
ZMQ-228 Make java documentation via JavaDoc
|
|
ZMQ-226 Move Jzmq to org.zmq package
|
|
ZMQ-204 Use non-blocking accept
|
|
ZMQ-130 Optimise mux_t for large number of idle connections
|
|
|
|
Version 0.6.1
|
|
|
|
ZMQ-254 Race condition in pipe_twriter_terminated
|
|
ZMQ-255 Python perf tests broken
|
|
ZMQ-257 pgm build fails various declared errors
|
|
ZMQ-259 Ruby extension for libzmq
|
|
|
|
Version 0.6
|
|
|
|
ZMQ-73 Redesign MT throughput test
|
|
ZMQ-102 Move load-balancing functionality from 0.3.3 branch to the trunk
|
|
ZMQ-136 Check I/O threads for rm_fd(x) followed by add_fd(x) behavior
|
|
ZMQ-138 Avoid exporting 0MQ symbols from libs using 0MQ on Windows
|
|
ZMQ-147 Python app hang-up, unresponsive to Ctrl+C
|
|
ZMQ-164 Add reconnection functionality to PGM
|
|
ZMQ-166 Slow down the reconnection process
|
|
ZMQ-176 Update examples to reflect the auto-reconnect feature
|
|
ZMQ-179 Implement OS-agnostic time measurement
|
|
ZMQ-180 What happens if queue is full & disconnection occurs?
|
|
ZMQ-183 Change OpenPGM to PGM in build options
|
|
ZMQ-185 Move msg_store to the trunk
|
|
ZMQ-186 Write an example to demonstrate load-balancing
|
|
ZMQ-187 Declaring same object (exchange, queue) twice doesn't fail
|
|
ZMQ-188 Schemas used by global object URIs don't conform to RFC3986
|
|
ZMQ-190 Compile libdnzmq with /clr support (no old syntax)
|
|
ZMQ-193 Reconnect on Solaris platform not working
|
|
ZMQ-194 Let sender use RDTSC mechanism for command throttling in MSVC build
|
|
ZMQ-195 Failure during fg
|
|
ZMQ-196 System out of sockets after number of reconnections
|
|
ZMQ-197 Offload signal handling from I/O threads
|
|
ZMQ-198 Timers can never expire
|
|
ZMQ-199 Make receive in libczmq zero-copy
|
|
ZMQ-200 Virtualise global locator
|
|
ZMQ-202 Check out SCTP support on QNX
|
|
ZMQ-203 Add auto-reconnect to AMQP engine
|
|
ZMQ-205 Check handling of async errors on a socket
|
|
ZMQ-206 Make zmq_server not to drop the endpoint info on service disconnect
|
|
ZMQ-207 zmq_server should be able to read endpoint info from XML file
|
|
ZMQ-210 Switch perf tests to load-balancing mode
|
|
ZMQ-211 Port Data Dam functionality to Win32
|
|
ZMQ-212 Integrate add and inc in atomic_counter into a single function
|
|
ZMQ-213 When 0MQ infrastructure is terminated, sockets are not closed correctly
|
|
ZMQ-215 Java on Win32 platform not stopping in case of assertion
|
|
ZMQ-217 zmq_server can be crashed by incorect input data
|
|
ZMQ-218 C# integration not working anymore
|
|
ZMQ-219 Change .NET extesnsion to use CamelCase
|
|
ZMQ-220 Check whether individual APIs conforms to API guidelines document
|
|
ZMQ-221 Allow to create global object w/o specifying the location
|
|
ZMQ-222 SPARC code for atomic_counter broken
|
|
ZMQ-223 Rename czmq/jzmq/dnzmq etc. to simple "zmq"
|
|
ZMQ-225 Application fails when it's connected from telnet
|
|
|
|
Version 0.5
|
|
|
|
ZMQ-17 look at pgm_transport_set_recv_only and ...send_only
|
|
ZMQ-26 Allow for "any" network interface
|
|
ZMQ-31 Implement SCTP support
|
|
ZMQ-45 Normalise API vs. I/O thread
|
|
ZMQ-78 Make connection establishment asynchronous
|
|
ZMQ-79 Refactor handling of broken connections
|
|
ZMQ-100 Move flow control and queue limits from 0.3.3 branch to the trunk
|
|
ZMQ-101 Move reconnection functionality from 0.3.3 branch to the trunk
|
|
ZMQ-112 build via cmake (makefile generator)
|
|
ZMQ-115 Identify SPARC V9 microarc and/or availability of CAS instruction
|
|
ZMQ-116 Implement .NET extension
|
|
ZMQ-129 Make engine_source part of the polling object
|
|
ZMQ-139 /dev/poll introduces latency on Solaris
|
|
ZMQ-144 Investigate latency impact of using eventfd instead of socketpair on Linux
|
|
ZMQ-146 Check whether i386 and x86_64 in atomic_ptr can be unified
|
|
ZMQ-148 Change watermarks from int to uint64_t
|
|
ZMQ-149 Virtualise creation of 0MQ connections
|
|
ZMQ-150 Negative numbers in unsigned type in atomic_counter
|
|
ZMQ-151 Modify build system to build SCTP extension
|
|
ZMQ-152 Merge BP/PGM functionality into the trunk
|
|
ZMQ-153 compiler warnings on solaris
|
|
ZMQ-155 Build libzmq with sctp support witch cmake
|
|
ZMQ-160 Get rid of create functions in engines
|
|
ZMQ-162 CMakeLists.txt files not updated with latest changes
|
|
ZMQ-165 Implement reconnection notifications
|
|
ZMQ-169 Return queue id from receive function in libpyzmq
|
|
ZMQ-171 Add AMQP support to 0MQ
|
|
ZMQ-173 Throughput test should accept 2 interface specifications
|
|
ZMQ-174 When application is killed on Win32, zmq_server fails
|
|
ZMQ-175 Chatroom example doesn't pass messages after reconnection
|
|
ZMQ-177 Update language extensions to take advantage of auto-reconnect
|
|
ZMQ-181 Rafactor the code to support multiple notification types
|
|
|
|
Version 0.4
|
|
|
|
ZMQ-21 Clean up the command passing code
|
|
ZMQ-36 autogen/configure fails on Solaris
|
|
ZMQ-39 Check whether using CAS for btsr and izte on x86 platform improves latency
|
|
ZMQ-40 Check autogen on FreeBSD
|
|
ZMQ-41 Check autogen on OS X
|
|
ZMQ-43 Use +m instead of memory in atomic operations
|
|
ZMQ-46 Get rid of administrative pseudo-thread
|
|
ZMQ-63 -mcpu=v9 CPPFLAG should be used only at sparc achitecture
|
|
ZMQ-64 gcc 3.4.3 on opensolaris complains about -mcpu flag
|
|
ZMQ-65 No error report when host name resolving fails
|
|
ZMQ-66 Several files use atoi without including stdlib.h
|
|
ZMQ-69 Make stdint.hpp hand-written rather than generated
|
|
ZMQ-71 Virtualise thread management
|
|
ZMQ-72 Remove platform.hpp
|
|
ZMQ-74 Implement win32 version of tcp_socket and tcp_listener
|
|
ZMQ-75 Virtualise mutexes
|
|
ZMQ-76 Implement win32 version of ysemaphore_t
|
|
ZMQ-80 Virtualise polling mechanisms
|
|
ZMQ-81 Implement 'select' polling mechanism
|
|
ZMQ-82 Rename i_context to i_thread
|
|
ZMQ-83 "Resource temporarily unavailable" when running on 266MHz box
|
|
ZMQ-84 zmq_server stops to respond
|
|
ZMQ-89 Make i_pollable derived from i_engine
|
|
ZMQ-94 Report error when malloc fails
|
|
ZMQ-95 Add /dev/poll method of polling
|
|
ZMQ-96 Add support for kqueue method of polling
|
|
ZMQ-97 OpenBSD port
|
|
ZMQ-98 QNX port
|
|
ZMQ-99 use pyexec_LTLIBRARIES primary for libpyzmq
|
|
ZMQ-103 Use non blocking sockets
|
|
ZMQ-106 memory leak when sending message from Java
|
|
ZMQ-111 Get rid of speculative operations
|
|
ZMQ-113 Windows compiler (_MSC_VER 1310) doesn't support strncpy_s function
|
|
ZMQ-117 select_thread doesn't implement rm_fd function
|
|
ZMQ-119 select thread fails on shudown
|
|
ZMQ-121 Fix all I/O threads to handle rm_fd correctly
|
|
ZMQ-124 include gaurd is wrong
|
|
ZMQ-126 Refactor I/O threads implementation to avoid duplication of common functionality.
|
|
ZMQ-131 select_thread fails on Windows
|
|
ZMQ-132 Pointer to poller_t is used before it is fully initialised
|
|
ZMQ-134 Thread management in constructors/destructors
|
|
ZMQ-135 Move retired list to the polling strategy-specific object
|
|
ZMQ-137 Assertion fails at bp_engine, line 132, error_handler is not set
|
|
|
|
Version 0.3.2
|
|
|
|
ZMQ-54 Test programs are compiled with --rpath
|
|
|
|
Version 0.3.1
|
|
|
|
ZMQ-25 Allow to use network interface name instead of IP address
|
|
ZMQ-29 Implement speculative write to socket
|
|
ZMQ-33 Assign ports to global objects automatically
|
|
ZMQ-34 Message size of zero causes application to hang up
|
|
ZMQ-42 Change locators to deal with a single object type
|
|
ZMQ-44 Some of the objects have non-functional auto-generated copy constructors
|
|
ZMQ-47 Camera example is broken
|
|
ZMQ-48 Sender fails when receiver disconnects
|
|
ZMQ-50 Warning in chat example
|
|
ZMQ-51 Make it possible to use single include (zmq.hpp) for client apps
|
|
ZMQ-53 Segmentation fault when binding to non-existent queue
|
|
ZMQ-55 raw_message_init (data,size,ffn) allocates more memory than needed
|
|
ZMQ-56 zmq_server fails if too many apps disconnect abruptly
|
|
ZMQ-58 Implement C binding for 0MQ
|
|
ZMQ-59 Implement Java binding for 0MQ
|
|
ZMQ-60 Implement Python binding for 0MQ
|
|
ZMQ-62 Write man pages
|
|
|
|
Version 0.3
|
|
|
|
ZMQ-1 poll_thread hangs in destructor
|
|
ZMQ-4 Missing -D_REENTRANT command line parameter while compiling 0MQ
|
|
ZMQ-5 Check for buffer overflows in AMQP/0-9 marshaller/unmarshaller
|
|
ZMQ-6 Allow dynamic adding of engines to poll_thread
|
|
ZMQ-7 Implement dynamic assignment of engine IDs to engines
|
|
ZMQ-9 Implement event batching in ysocketpair
|
|
ZMQ-10 Remove remaining references to HAVE_CONFIG_H from the code
|
|
ZMQ-11 Move 'alive' flag to the dispatcher
|
|
ZMQ-12 Move dispatcher signalers into a separate array
|
|
ZMQ-13 Allow up to 63 threads on x86_64 platform
|
|
ZMQ-14 Implement new type of lock-free pipe
|
|
ZMQ-15 Implement an infrastructure to pass arbitrary commands between threads
|
|
ZMQ-16 missing stats_raw_den.R, stats_raw_lat.R in dist package
|
|
ZMQ-20 Sync problem with ypollset/atomic_bitmap
|
|
ZMQ-24 Redundant poll
|
|
ZMQ-30 Implement epoll suport
|
|
ZMQ-37 Identify SPARC V9 microarc and/or availability of CAS instruction
|
|
|
|
Version 0.2
|
|
|
|
ZMQ-2 Failure when mutexes are used atomic_uint32
|
|
ZMQ-3 socket hangup at OS X
|