Changes ======= 1.04 Jan 09 2013 - zmq_proxy(), zmq_device() should now be usable (if your underlying libzmq has them). Thanks for @melo and @domm for testing. - Added mechanism to check if deprecated/new functions are available. Currently these functions are checked: zmq_init zmq_ctx_destroy zmq_ctx_get zmq_ctx_new zmq_ctx_set zmq_device zmq_msg_recv zmq_msg_send zmq_proxy zmq_recvmsg zmq_socket_monitor zmq_sendmsg zmq_term zmq_unbind - Of the above functions, zmq_init, zmq_term, zmq_sendmsg, zmq_recmsg are marked as deprecated by recent libzmq3. ZMQ::LibZMQ3 being a Perl module, we'll try to be backwards compatible as much as possible, so it will silently fallback to using the right replacement, i.e.: zmq_init -> zmq_ctx_new zmq_term -> zmq_ctx_destroy zmq_sendmsg -> zmq_msg_send zmq_recvmsg -> zmq_msg_recv However, we may decide to start complaining in the future versions. You have been warned. - Of the above functions, the following functions are newly added, AS LONG AS THE UNDERLYING libzmq SUPPORTS IT: zmq_ctx_new zmq_ctx_destroy zmq_ctx_get zmq_ctx_set zmq_msg_recv zmq_msg_send zmq_socket_monitor zmq_unbind If the underlying libzmq does not support any of these functions, it will croak. 1.03 - Jan 05 2013 - Update docs 1.02 - Dec 26 2012 - Fix tools/detect_zmq.pl as it was checking for old libzmq2 version (https://github.com/lestrrat/p5-ZMQ/pull/17), pr by @andyjones - EXPERIMENTAL: Add zmq_proxy(). Test cases are most welcome. (https://github.com/lestrrat/p5-ZMQ/issues/16) - Fix SYNOPSIS for zmq_send(msg)?, zmq_recv(msg)? 1.01 - Oct 09 2012 - Fix memory leak in zmq_recvmsg(), retported by trinitum (https://github.com/lestrrat/p5-ZMQ/issues/15) 1.00 - Aug 22 2012 - Fix implicit and explicit destructors for context and sockets. (https://github.com/lestrrat/p5-ZMQ/issues/11), spotted by @melo Previously this threw an assertion: my $ctxt = zmq_init(); my $pid = fork(); exit(0) unless $pid; waitpid($pid, 0); This is because $ctxt was being freed on both the child and the parent. As of this version, we make sure that behind the scenes the context can only be freed in the process and thread that it was created in. Likewise sockets can only be freed within the same process. 1.00_03 - Apr 23 2012 - Changed zmq_poll()'s return value. In list context, you can get the array of boolean values indicating if the particular socket got fired my @fired = zmq_poll(...); In scalar context, you get the return value of zmq_poll() from the C layer my $rv = zmq_poll(...) See https://github.com/lestrrat/p5-ZMQ/pull/1 (Steffen Mueller, Nick Peres) - Fix getsockopt_string() https://github.com/lestrrat/p5-ZMQ/pull/2 (Sergey KHripchenko) 1.00_02 - Mar 26 2012 - Beef up the docs extensively. - Make sure to set $! upo failure - Add author tests - Change zmq_sendmsg to a pure perl method. - Make sure to emulate libzmq2 errors for stuff like trying to act upon closed cxt, sockets, and messages, since we don't call the C level functions when we detect that they have been closed from the Perl level. 1.00_01 - Mar 24 2012 - Initial release.