History.txt in ffi-rzmq-0.5.1 vs History.txt in ffi-rzmq-0.6.0
- old
+ new
@@ -1,4 +1,39 @@
+== 0.6.0 / 20100911
+ * API Change! Modified ZMQ::Message by removing automatic memory
+ management. While doing some performance tests I saw that
+ defining/undefining the finalizer added 15-30% processing
+ overhead on the latency test. So, I split this functionality
+ out to a subclass called ZMQ::ManagedMemory. Any existing code
+ that relies on the default Message class to clean up after itself
+ will now have a memory leak. Explicitly call #close on these
+ received messages *unless* they are sent out again. The #send
+ method automatically closes call on your behalf.
+
+ * Rubinius/rbx compatibility! Requires an rbx code pull from git
+ from 20100911 or later to get the necessary code fixes.
+
+ * Modify Message to use the @pointer directly rather than indirectly
+ via the @struct object. Provides better compatibility for rbx
+ since rbx does not yet support the FFI pointer protocol for structs
+ like the FFI gem.
+
+ * Modify Message to pass libC's free function for disposing of message
+ data buffers rather than trying to callback into ruby code to
+ do the same thing. External thread callbacks into ruby code will
+ never be supported in rbx; this also improves compatibility and
+ performance with MRI and JRuby. (In particular, MRI enqueues these
+ kinds of callbacks and spawns a *new* thread to execute each one.
+ Avoiding the ruby callback entirely eliminates this extra work
+ for MRI.)
+
+ * Modify FFI wrapper to capture the libC dynamic library to fetch
+ a pointer to the free function.
+
+ * Modify FFI wrapper to remove the FFI::Function callback used
+ by Message. It's no longer necessary since we now use free
+ directly.
+
== 0.5.1 / 20100830
* Works with 0mq 2.0.8 release.
* Removed the socket finalizer. The current 0mq framework cannot
handle the case where zmq_close is called on a socket that was