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.
