diff --git a/History.txt b/History.txt index f354de0..b28217b 100644 --- a/History.txt +++ b/History.txt @@ -1,3 +1,39 @@ +== 0.7.0 / 20101222 + * Improved performance of calls to Socket#getsockopt. There are usually + a lot of calls passing RCVMORE, so we now cache those buffers instead + of reallocating them every time. + + * Updated the docs on Poller#poll to warn about a possible busy-loop + condition. + + * Fixed some more specs to conform with the 0mq 2.1 requirement that + all sockets must be closed explicitly otherwise the program may + hang on exit. + +== 0.6.1 / 20101127 + * API Change! + Moved the #version method from the Util module and made it a class + method instead. Invoke as ZMQ::Util.version. Used for conditionally + enabling certain features based upon the 0mq version that is loaded. + + * Preliminary support for the Windows platform. Patches supplied + by arvicco. + + * Added support for FD and EVENTS socket options. These were added + in 0mq 2.1.0. Patches + specs supplied by andrewvc. + + * Added support for LINGER, RECONNECT_IVL, BACKLOG and + RECOVERY_IVL_MSEC socket options. + + * Conditionally re-enable the socket finalizer when we are running + with 0mq 2.1.0 or later. + + * Drop support for MRI 1.8.x since the 'ffi' gem has dropped it as a + supported Ruby runtime with its 1.0 release. No action is taken to + prevent running with MRI 1.8.x but it won't be supported. + + * Misc. spec fixes. Need more specs! + == 0.6.0 / 20100911 * API Change! Modified ZMQ::Message by removing automatic memory management. While doing some performance tests I saw that diff --git a/README.rdoc b/README.rdoc index 238ad5f..d12616e 100644 --- a/README.rdoc +++ b/README.rdoc @@ -116,6 +116,10 @@ time of installation. * ffi (>= 1.0.0) +This is a requirement for MRI only. Both Rubinius and JRuby have FFI support built +in as a standard component. Do *not* run this gem under MRI with an old 'ffi' gem. +It will crash randomly and you will be sad. + == INSTALL: diff --git a/Rakefile b/Rakefile index ff4c635..181f76f 100644 --- a/Rakefile +++ b/Rakefile @@ -28,5 +28,9 @@ Bones { url 'http://github.com/chuckremes/ffi-rzmq' readme_file 'README.rdoc' ruby_opts.clear # turn off warnings + + # necessary for MRI; unnecessary for JRuby and RBX + # can't enable this until JRuby & RBX have a way of dealing with it cleanly + #depend_on 'ffi', '>= 1.0.0' } diff --git a/ffi-rzmq.gemspec b/ffi-rzmq.gemspec index 57023c1..7f1454e 100644 --- a/ffi-rzmq.gemspec +++ b/ffi-rzmq.gemspec @@ -2,42 +2,42 @@ Gem::Specification.new do |s| s.name = %q{ffi-rzmq} - s.version = "0.6.0" + s.version = "0.7.0" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Chuck Remes"] - s.date = %q{2010-09-21} + s.date = %q{2010-12-22} s.description = %q{This gem wraps the ZeroMQ networking library using the ruby FFI (foreign function interface). It's a pure ruby wrapper so this gem can be loaded and run by any ruby runtime that supports FFI. That's all of them: -MRI 1.8.7+, 1.9.x, Rubinius and JRuby. +MRI 1.9.x, Rubinius and JRuby. The impetus behind this library was to provide support for ZeroMQ in -JRuby which has native threads. Unlike MRI, MacRuby, IronRuby and +JRuby which has native threads. Unlike MRI, IronRuby and Rubinius which all have a GIL, JRuby allows for threaded access to ruby code from outside extensions. ZeroMQ is heavily threaded, so until the other runtimes remove their GIL, JRuby will likely be the best environment to run this library.} s.email = %q{cremes@mac.com} s.extra_rdoc_files = ["History.txt", "README.rdoc", "examples/README.rdoc", "version.txt"] - s.files = [".gitignore", "History.txt", "README.rdoc", "Rakefile", "examples/README.rdoc", "examples/local_lat.rb", "examples/local_lat_zerocopy.rb", "examples/local_throughput.rb", "examples/publish_subscribe.rb", "examples/remote_lat.rb", "examples/remote_lat_zerocopy.rb", "examples/remote_throughput.rb", "examples/reqrep_poll.rb", "examples/request_response.rb", "ffi-rzmq.gemspec", "lib/ffi-rzmq.rb", "lib/ffi-rzmq/context.rb", "lib/ffi-rzmq/exceptions.rb", "lib/ffi-rzmq/message.rb", "lib/ffi-rzmq/poll.rb", "lib/ffi-rzmq/poll_items.rb", "lib/ffi-rzmq/socket.rb", "lib/ffi-rzmq/wrapper.rb", "lib/ffi-rzmq/zmq.rb", "spec/context_spec.rb", "spec/message_spec.rb", "spec/pushpull_spec.rb", "spec/reqrep_spec.rb", "spec/socket_spec.rb", "spec/spec_helper.rb", "version.txt"] + s.files = [".bnsignore", "History.txt", "README.rdoc", "Rakefile", "examples/README.rdoc", "examples/local_lat.rb", "examples/local_lat_poll.rb", "examples/local_lat_zerocopy.rb", "examples/local_throughput.rb", "examples/publish_subscribe.rb", "examples/remote_lat.rb", "examples/remote_lat_zerocopy.rb", "examples/remote_throughput.rb", "examples/reqrep_poll.rb", "examples/request_response.rb", "examples/xreqxrep_poll.rb", "ffi-rzmq.gemspec", "lib/ffi-rzmq.rb", "lib/ffi-rzmq/context.rb", "lib/ffi-rzmq/exceptions.rb", "lib/ffi-rzmq/message.rb", "lib/ffi-rzmq/poll.rb", "lib/ffi-rzmq/poll_items.rb", "lib/ffi-rzmq/socket.rb", "lib/ffi-rzmq/wrapper.rb", "lib/ffi-rzmq/zmq.rb", "spec/context_spec.rb", "spec/message_spec.rb", "spec/pushpull_spec.rb", "spec/reqrep_spec.rb", "spec/socket_spec.rb", "spec/spec_helper.rb", "version.txt"] s.homepage = %q{http://github.com/chuckremes/ffi-rzmq} s.rdoc_options = ["--main", "README.rdoc"] s.require_paths = ["lib"] s.rubyforge_project = %q{ffi-rzmq} s.rubygems_version = %q{1.3.7} - s.summary = %q{This gem wraps the ZeroMQ networking library using the ruby FFI (foreign function interface)} + s.summary = %q{This gem wraps the ZeroMQ networking library using the ruby FFI (foreign function interface).} if s.respond_to? :specification_version then current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION s.specification_version = 3 if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_development_dependency(%q, [">= 3.4.7"]) + s.add_development_dependency(%q, [">= 3.5.4"]) else - s.add_dependency(%q, [">= 3.4.7"]) + s.add_dependency(%q, [">= 3.5.4"]) end else - s.add_dependency(%q, [">= 3.4.7"]) + s.add_dependency(%q, [">= 3.5.4"]) end end diff --git a/version.txt b/version.txt index a918a2a..faef31a 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.6.0 +0.7.0