Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 331 lines (255 sloc) 13.815 kB
bdd0a39 bump to version 0.9.5
Chuck Remes authored
1 == 0.9.5 / 20120119
2 * BROKE THE API.
3 In 0mq 2.x, there were two functions zmq_send() and zmq_recv().
4 As of 3.x, those functions were renamed zmq_sendmsg() and
5 zmq_recvmsg(). As everyone starts moving to 0mq 3.x, it doesn't
6 make sense to make the code break with 2.x. So, I'm breaking this
7 binding so that it always uses sendmsg/recvmsg and eliminates the
8 original send/recv methods.
9 Sorry!
10 This is likely to be the last non-backward-compatible API breakage.
11 Release 1.0 is around the corner and the API will be stable (I follow
12 semantic versioning).
13
14 * Introduced ZMQ::NonBlocking. This flag returns the correct value to set
15 a socket in non-blocking mode when sending/receiving. This hides the
16 differences between 0mq 2.x and 3.x since the constant names have
17 changed.
18
0b2f3b9 bump version to 0.9.4... not ready for release just yet though
Chuck Remes authored
19 == 0.9.4 / 20120102
20 * Fixed bug in Poller#delete. Added specs to catch a regression.
21 In short, a socket that was deleted from the Poller set wasn't
22 always actually *removed* from the array. This led to a closed
23 socket being part of the pollset which would return errno 38.
24 This took about 4 days to find. <sigh>
25
26
9a4af85 lots of perf tuning; fixed bug in Message#copy and Message#move
Chuck Remes authored
27 == 0.9.3 / 20111214
28 * Performance optimizations for #getsockopt.
29
30 * Fixed Message#copy and Message#move. They didn't work before.
31
32 * Cache LibZM::Msg.size in the ZMQ::Message class so that
33 initialization can skip recalculating what is effectively a
34 constant value. This speeds up ZMQ::Message instantiation by
35 5 to 10%. Wow.
36
37 * Modified calls to #super to use explicit arguments (e.g. #super())
38 because otherwise the Ruby runtime has to (at runtime) dig out
39 the arguments that are expected to be passed up the chain. By
40 explicitly listing the args and using parentheses, the runtime
41 can avoid that work and dispatch directly. This effects all
42 Ruby runtimes, but it was through the work of Evan Phoenix that
43 I figured this out. Results in a 2-5% speedup on method dispatch.
0b2f3b9 bump version to 0.9.4... not ready for release just yet though
Chuck Remes authored
44
45
9a4af85 lots of perf tuning; fixed bug in Message#copy and Message#move
Chuck Remes authored
46
acab206 remove 4.x and 3.0.x support; add 3.1.x support
Chuck Remes authored
47 == 0.9.2 / 20111115
48 * Removed all references to the version4 API.
49
50 * Dropped support for 3.0.x and added support for 3.1.x. The 0mq
51 community has pretty much voted to abandon the path taken in 3.0
52 so the 3.1 branch is the API that will be supported.
53
54 * Fixed a bug in Poller#delete where it would erroneously return
55 false even when it successfully deleted a socket. Issue 46.
56
57 * All specs pass for 2.1.x API.
58
59 * 3 specs fail when run with 3.1 API; these are due to bugs in the
60 0mq library and are *not* ffi-rzmq bugs.
a5119ad print warnings when lib loading fails; give extra help for Windows
Chuck Remes authored
61
62 * Rescue LoadErrors when loading libzmq. Print a warning about
63 adding libzmq.dll to the Windows PATH for that platform. Print
64 the search paths where the gem looks for libzmq.
acab206 remove 4.x and 3.0.x support; add 3.1.x support
Chuck Remes authored
65
0c73bca bump version
Chuck Remes authored
66 == 0.9.1 / 20111027
67 * Moved LibC and LibZMQ into the ZMQ module namespace. Necessary to
68 avoid namespace collisions with other libraries that also use
69 the constants LibC and/or LibZMQ.
70
71 * Fixed a bug where file descriptors registered on Poll were never
72 returned as readable or writable.
73
74 * Added Socket#recv_multipart. This returns the message body and
75 return address envelope as separate arrays. Only to be used with
76 XREQ/XREP/DEALER/ROUTER sockets.
77
829408d rework all specs to test new gem API
Chuck Remes authored
78 == 0.9.0 / 20110930
79 * Changed the behavior of every method that used to produce exceptions.
80 The methods now behave more like the C API functions. They return
81 result codes instead of raising exceptions. Further, the "receive"
82 methods on Socket now all take an empty string as a buffer to read
83 the message into.
84 This is a BREAKING CHANGE and is NOT backward compatible with earlier
85 releases. I apologize for the inconvenience, but this API will be
86 much easier to test/spec and maintain. It will also allow for the
87 production of more logical code.
88
3aab034 bump to version 0.9.0
Chuck Remes authored
89 * Major refactoring of Socket internals so that a single gem can
90 support libzmq 2.x, 3.x and 4.x APIs without any user intervention.
91 The correct libzmq version is detected at runtime and used to
92 configure the Ruby classes to conform to the proper API.
93
94 * Added Socket#recvmsgs as a convenience method for receiving a
95 multipart message into an array of Messages.
96
97 * Added support for new 0mq API introduced in the 3.0 branch.
98 API mostly changed for sending and receiving messages with new
99 POSIX-compliant send() and recv() functions. The original
100 functions were renamed sendmsg() and recvmsg().
101 Additionally, most getsockopt() and setsockopt() calls now use
102 an int (4 bytes) instead of a mish-mash of 32-bit and 64-bit
103 values.
104 For a full list of differences, visit the 0mq wiki page at:
105 http://www.zeromq.org/docs:3-0-upgrade
829408d rework all specs to test new gem API
Chuck Remes authored
106
107 * Created a new ext/ directory so that users can copy the libzmq*
108 library files directly into the gem for easier distribution. This
109 path is checked *before* the usual system paths.
110
111 * Rewrote all examples to use the revised API.
3aab034 bump to version 0.9.0
Chuck Remes authored
112
f560095 details for 0.8.2
Chuck Remes authored
113 == 0.8.2 / 20110728
114 * Fixed major bug with Socket#setsockopt when writing 8-byte longs.
115
116 * Clarified a bit of logic for non-blocking sends.
117
118 * Improved readability of exceptions.
119
ee99fa0 bump to 0.8.1; small fix for 32-bit windows under mingw
Chuck Remes authored
120 == 0.8.1 / 20110504
121 * Fixed bug where Socket#setsockopt was using a size from the current
122 runtime to determine how many bytes to use for HWM, et al. This was
123 incorrect. All of those socket options require 8 bytes. Discovered
124 this while getting the code running under mingw on Windows using a
125 32-bit Ruby runtime.
126
8619828 bump to 0.8.0
Chuck Remes authored
127 == 0.8.0 / 20110307
128 * API change!
129 Socket#send_message no longer automatically calls
130 Message#close on behalf of the user. The user is completely
131 responsible for the lifecycle management of all buffers associated
132 with the ZMQ::Message objects.
133 This is a breaking change.
134 If you want the old behavior (auto-close messages on send) then
135 use the new Socket#send_and_close method which does as its name
136 implies.
d3be3e6 merge remote master into local
Chuck Remes authored
137 * Fixed bug with type :size_t on Windows (thank you to arvicco)
8619828 bump to 0.8.0
Chuck Remes authored
138
139 == 0.7.3 / 20110304
140 * Fixed a bug where we had a small memory leak. When closing a socket
141 I forgot to release a small amount of native memory used as a cache
142 for doing #getsockopt calls.
143 * Util.minimum_api? didn't work. Fixed.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
144 * Added ROUTER/DEALER constants to reflect new naming for XREQ/XREP.
145 XREQ and XREP remain aliased for backward compatibility.
8619828 bump to 0.8.0
Chuck Remes authored
146
35182d4 version bump 0.7.2
Chuck Remes authored
147 == 0.7.2 / 20110224
148 * Several minor refactorings to make the code intent clearer and to allow
149 for better testing. In particular, the error condition checking for
150 a non-blocking send/recv is much clearer.
151
c4730f2 @andrewvc Bumped to 0.7.1
andrewvc authored
152 == 0.7.1 / 20110130
153 * Fixed 1.9.1 Binary Encoding bug when UTF8 set as default (Thanks schmurfy)
154 * Improved rubinius compat for specs
155 * Improved spec compatibility on linux
35182d4 version bump 0.7.2
Chuck Remes authored
156
a21b6ec bump version to 0.7.0
Chuck Remes authored
157 == 0.7.0 / 20101222
158 * Improved performance of calls to Socket#getsockopt. There are usually
159 a lot of calls passing RCVMORE, so we now cache those buffers instead
160 of reallocating them every time.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
161
a21b6ec bump version to 0.7.0
Chuck Remes authored
162 * Updated the docs on Poller#poll to warn about a possible busy-loop
163 condition.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
164
a21b6ec bump version to 0.7.0
Chuck Remes authored
165 * Fixed some more specs to conform with the 0mq 2.1 requirement that
166 all sockets must be closed explicitly otherwise the program may
167 hang on exit.
168
169 == 0.6.1 / 20101127
170 * API Change!
171 Moved the #version method from the Util module and made it a class
172 method instead. Invoke as ZMQ::Util.version. Used for conditionally
173 enabling certain features based upon the 0mq version that is loaded.
174
175 * Preliminary support for the Windows platform. Patches supplied
176 by arvicco.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
177
a21b6ec bump version to 0.7.0
Chuck Remes authored
178 * Added support for FD and EVENTS socket options. These were added
179 in 0mq 2.1.0. Patches + specs supplied by andrewvc.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
180
a21b6ec bump version to 0.7.0
Chuck Remes authored
181 * Added support for LINGER, RECONNECT_IVL, BACKLOG and
182 RECOVERY_IVL_MSEC socket options.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
183
a21b6ec bump version to 0.7.0
Chuck Remes authored
184 * Conditionally re-enable the socket finalizer when we are running
185 with 0mq 2.1.0 or later.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
186
a21b6ec bump version to 0.7.0
Chuck Remes authored
187 * Drop support for MRI 1.8.x since the 'ffi' gem has dropped it as a
188 supported Ruby runtime with its 1.0 release. No action is taken to
189 prevent running with MRI 1.8.x but it won't be supported.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
190
a21b6ec bump version to 0.7.0
Chuck Remes authored
191 * Misc. spec fixes. Need more specs!
192
4358e58 bump to 0.6.0
Chuck Remes authored
193 == 0.6.0 / 20100911
194 * API Change! Modified ZMQ::Message by removing automatic memory
195 management. While doing some performance tests I saw that
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
196 defining/undefining the finalizer added 15-30% processing
4358e58 bump to 0.6.0
Chuck Remes authored
197 overhead on the latency test. So, I split this functionality
198 out to a subclass called ZMQ::ManagedMemory. Any existing code
199 that relies on the default Message class to clean up after itself
200 will now have a memory leak. Explicitly call #close on these
201 received messages *unless* they are sent out again. The #send
202 method automatically closes call on your behalf.
203
204 * Rubinius/rbx compatibility! Requires an rbx code pull from git
205 from 20100911 or later to get the necessary code fixes.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
206
4358e58 bump to 0.6.0
Chuck Remes authored
207 * Modify Message to use the @pointer directly rather than indirectly
208 via the @struct object. Provides better compatibility for rbx
209 since rbx does not yet support the FFI pointer protocol for structs
210 like the FFI gem.
211
212 * Modify Message to pass libC's free function for disposing of message
213 data buffers rather than trying to callback into ruby code to
214 do the same thing. External thread callbacks into ruby code will
215 never be supported in rbx; this also improves compatibility and
216 performance with MRI and JRuby. (In particular, MRI enqueues these
217 kinds of callbacks and spawns a *new* thread to execute each one.
218 Avoiding the ruby callback entirely eliminates this extra work
219 for MRI.)
220
221 * Modify FFI wrapper to capture the libC dynamic library to fetch
222 a pointer to the free function.
223
224 * Modify FFI wrapper to remove the FFI::Function callback used
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
225 by Message. It's no longer necessary since we now use free
4358e58 bump to 0.6.0
Chuck Remes authored
226 directly.
227
d832e09 0.5.1 release
Chuck Remes authored
228 == 0.5.1 / 20100830
229 * Works with 0mq 2.0.8 release.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
230
d832e09 0.5.1 release
Chuck Remes authored
231 * Removed the socket finalizer. The current 0mq framework cannot
232 handle the case where zmq_close is called on a socket that was
233 created from another thread. Therefore, the garbage collection
234 thread causes the framework to break. Version 2.1 (or later)
235 should fix this 0mq limitation.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
236
d832e09 0.5.1 release
Chuck Remes authored
237 * Misc fixes. See commits.
238
72b0a41 bump to 0.5.0
Chuck Remes authored
239 == 0.5.0 / 20100606
240 * Updated the bindings to conform to the 0mq 2.0.7 release.
241 Several parts of the API changed.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
242
72b0a41 bump to 0.5.0
Chuck Remes authored
243 * Updated all examples to use the new Context api.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
244
72b0a41 bump to 0.5.0
Chuck Remes authored
245 * Added Socket#getsockopt.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
246
72b0a41 bump to 0.5.0
Chuck Remes authored
247 * Added a Socket#identity and Socket#identity= method pair to
248 allow for easy get/put on socket identities. Useful for async
249 request/reply using XREQ/XREP sockets.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
250
72b0a41 bump to 0.5.0
Chuck Remes authored
251 * Added more specs (slowly but surely).
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
252
72b0a41 bump to 0.5.0
Chuck Remes authored
253 * Support multi-part messages (new as of 2.0.7). I am unsure how
254 to best support multi-part messages so the Message (and related)
255 API may change in the future. Added Socket#more_parts?.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
256
72b0a41 bump to 0.5.0
Chuck Remes authored
257 * Lots of fixes. Many classes use finalizers to deallocate native
258 memory when they go out of scope; be sure to use JRuby 1.5.1 or
259 later to get important finalizer fixes.
260
9a30d52 bump to 0.4.1
Chuck Remes authored
261 == 0.4.1 / 20100511
262 * I was misusing all of the FFI memory allocator classes. I now
263 wrap libc and use malloc/free directly for creating buffers
264 used by libzmq.
265
32708ef bump to version 0.4.0
Chuck Remes authored
266 == 0.4.0 / 20100510
267 * Changed the Socket#recv method signature to take an optional
268 message object as its first argument. This allows the library
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
269 user to allocate and pass in their own message object for the
32708ef bump to version 0.4.0
Chuck Remes authored
270 purposes of zero-copy. Original behavior was for the library to
271 *always* allocate a new message object to receive a message into.
272 Hopefully this is the last change required.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
273
32708ef bump to version 0.4.0
Chuck Remes authored
274 * Modified the Socket constructor to take an optional hash as its
275 final argument. It honors two keys; :receiver_klass and
276 :sender_klass. Passing in a new constant for either (or both) keys
277 will override the class used by Socket for allocating new
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
278 Message objects.
32708ef bump to version 0.4.0
Chuck Remes authored
279
1ebec91 bump to 0.3.1
Chuck Remes authored
280 == 0.3.1 / 20100509
281 * Modified ZMQ::Message so we have both an UnmanagedMessage where
282 memory management is manual via the #close method, and Message where
283 memory management is automated via a finalizer method run during
284 garbage collection.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
285
1ebec91 bump to 0.3.1
Chuck Remes authored
286 * Updated ZMQ::Message docs to make it clearer how to use a subclass
287 and FFI::Struct to lazily access the message buffer. This gets us as
288 close to zero-copy as possible for performance.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
289
1ebec91 bump to 0.3.1
Chuck Remes authored
290 * Fixed a memory leak in Message where the FFI::Struct backing the
291 C struct was not being freed.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
292
1ebec91 bump to 0.3.1
Chuck Remes authored
293 * Tested the FFI code against MRI 1.8.x and 1.9.x. It works!
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
294
1ebec91 bump to 0.3.1
Chuck Remes authored
295 * Patched a potential problem in LibZMQ::MessageDeallocator. It was
296 crashing under MRI because it complained that FFI::Pointer did not
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
297 have a free method. It now checks for :free before calling it.
1ebec91 bump to 0.3.1
Chuck Remes authored
298 Need to investigate this further because it never happened under
299 JRuby.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
300
1ebec91 bump to 0.3.1
Chuck Remes authored
301 * Modified the Socket constructor slightly to allow for using
302 unmanaged or managed messages.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
303
1ebec91 bump to 0.3.1
Chuck Remes authored
304 * Changed the /examples to print a throughput (msgs/s) number upon
305 completion.
306
890dff8 updated docs and bumped version to 0.3.0
Chuck Remes authored
307 == 0.3.0 / 20100507
308 * ZMQ::Socket#send and ZMQ::Socket#recv semantics changed
309 * The official 0mq ruby bindings utilize strings for #send and #recv.
310 However, to do so requires lots of copying to and from buffers which
311 greatly impacts performance. These methods now return a ZMQ::Message
312 object which can be subclassed to do lazy evaluation of the buffer.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
313
890dff8 updated docs and bumped version to 0.3.0
Chuck Remes authored
314 * Added ZMQ::Socket#send_string and ZMQ::Socket#recv_string. They
315 automatically convert the messages to strings just like the official
316 0mq ruby bindings.
317
318 * Fixed bug in ZMQ::Util#error_string
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
319
890dff8 updated docs and bumped version to 0.3.0
Chuck Remes authored
320 * Split the ZMQ::Message class into two classes. The base class called
321 UnmanagedMessage requires manual memory management. The Message
322 class (used by default by Socket) has a finalizer defined to
323 automatically release memory when the message object gets garbage
324 collected.
8e44cee @bmabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
325
326
890dff8 updated docs and bumped version to 0.3.0
Chuck Remes authored
327 == 0.2.0 / 20100505
ae5e456 first commit
Chuck Remes authored
328
329 * 1 major enhancement
330 * Birthday!
Something went wrong with that request. Please try again.