about summary refs log tree commit homepage
DateCommit message (Collapse)
2018-01-30Ruby posix_mq 2.4.1 HEAD v2.4.1 master
This release fixes a problem affecting users of newer clang (5.x+) and Ruby 2.5.0: https://bugs.ruby-lang.org/issues/14425 There is no need to upgrade if using gcc or Ruby <= 2.4. * drop extra args to rb_funcall
2018-01-30drop extra args to rb_funcall
Having extra args was harmless in Ruby 2.4, but Ruby 2.5 with newer versions of clang are not happy about it. Eventually this may be fixed in Ruby 2.5.1: https://bugs.ruby-lang.org/issues/14425
2017-03-20Ruby posix_mq 2.4.0 v2.4.0
Most notably there are some FreeBSD fixes. There are also some minor internal cleanups and doc updates. 7 changes since 2.3.0 (2016-02-02): doc: remove private email address doc: update bogomips.org URLs to HTTPS set correct condition for setting id_autoclose test_posix_mq: get tests passing under FreeBSD 10.3 TypedData C-API conversion freeze internal objects build: remove build-time olddoc dependency
2017-03-20build: remove build-time olddoc dependency
This should make it easier for distros to pick this up without picking up olddoc, too. We will still use olddoc for generating the website since it reduces bandwidth costs, and for generating NEWS for our own builds.
2017-03-20freeze internal objects
We do not want ObjectSpace walkers to be able to mess with our internals.
2017-03-18TypedData C-API conversion pu
This provides some extra type safety if combined with other C extensions, as well as allowing us to account for memory usage of the HTTP parser in ObjectSpace. This requires Ruby 1.9.3+ and has remained a stable API since then. This will become officially supported when Ruby 2.3.0 is released later this month. This API has only been documented in doc/extension.rdoc (formerly README.EXT) in the Ruby source tree since April 2015, r50318
2017-03-18test_posix_mq: get tests passing under FreeBSD 10.3
Apparently POSIX message queues adopted close-on-fork behavior in FreeBSD at some point. Oh well, somebody else who is more interested in FreeBSD than can look into fixing it on their end. Improve exception reporting a bit while we're at it.
2017-03-18set correct condition for setting id_autoclose
This bug was noticed under FreeBSD :x
2017-03-18doc: update bogomips.org URLs to HTTPS
It looks like HTTPS support provided by the Let's Encrypt project is still going strong, and maybe we can rely on it.
2017-03-18doc: remove private email address
Email is not private, and we won't be able to protect your privacy. Anonymity (when desired) should be the sender's responsibility, not the recipients'.
2016-02-02Ruby posix_mq 2.3.0 - updates for Ruby 2.3+ v2.3.0
This release updates our POSIX_MQ#close to match the idempotent IO#close behavior under Ruby 2.3 and later. Previous Ruby versions continue to be supported, but POSIX_MQ#close remains non-idempotent when built against old Ruby versions. 4 changes since v2.2.0: enable frozen_string_literal for Ruby 2.3+ support idempotent POSIX_MQ#close README: remove cgit and ssoma references build: use '--local' domain for dev gem install
2016-02-02build: use '--local' domain for dev gem install
This avoids unnecessary network requests for disconnected systems.
2016-02-02README: remove cgit and ssoma references
We may not always be cgit, and encouraging tarball snapshot downloads is a waste of resources Release tarballs are not, as users aren't expected to know to do "git clone"; but developers are. This is also not an appropriate place for advertising ssoma.
2016-02-02support idempotent POSIX_MQ#close
IO#close under Ruby 2.3 is idempotent, we shall follow suit with POSIX_MQ#close
2016-02-02enable frozen_string_literal for Ruby 2.3+
No changes for older Rubies, but this reduces garbage under 2.3
2015-01-16Ruby posix_mq 2.2.0 - support FD adoption v2.2.0
The major feature of this release is the POSIX_MQ.for_fd class method thanks to Christopher Lord. The addition of the POSIX_MQ#autoclose? and POSIX_MQ#autoclose= round out the new feature set. All of the new methods are analogous to their counterparts in the core IO class. The mailing list is also moved to ruby-posix-mq@bogomips.org and no longer requires subscription. Existing librelist subscribers will need to resubscribe manually (as I have no way of doing so automatically): ruby-posix-mq+subscribe@bogomips.org HTTP archives and instructions for extracting the mail archives via git are available at: http://bogomips.org/ruby-posix-mq/ Christopher Lord (1): Ability to adopt file descriptors Eric Wong (16): for_fd: delay assigning to mq->des until after mq_getattr test_posix_mq: rewrite test to not depend on DL or alarm support autoclose= and autoclose? pack rw_args struct change mailing list to ruby-posix-mq@bogomips.org doc: remove --sanitize-html option for pandoc switch documentation to olddoc LICENSE: allow all future versions of LGPLv3+ favor comparisons against zero instead of -1 pkg.mk: misc tweaks and updates gemspec: remove rdoc_options setting .gitignore: add placeholder gemspec: use SPDX license abbreviation misc doc updates POSIX_MQ#autoclose= propagates to IO GNUmakefile: ordering fix for building gem
2015-01-16GNUmakefile: ordering fix for building gem
2015-01-16POSIX_MQ#autoclose= propagates to IO
If a corresponding IO object exists or is created later, propagate autoclose to the corresponding IO object to avoid simplify autoclose handling for the user. This hopefully avoids nasty surprises in case users disable autoclose but want to keep the IO object around.
2015-01-12misc doc updates
* Include the email addresses for olddoc * README: update support status of Rubies * label link to mailing list archives
2015-01-12gemspec: use SPDX license abbreviation
2015-01-12.gitignore: add placeholder
2015-01-12gemspec: remove rdoc_options setting
We no longer need it for olddoc
2015-01-12pkg.mk: misc tweaks and updates
* We're not using isolate anymore * support EXTCONF_ARGS env for building * add "make check" as an alias for "make test" (muscle memory for GNU-autotools projects)
2015-01-11favor comparisons against zero instead of -1
This should allow faster instructions to be used in some cases. Technically this may be less pedantically correct, but there is enough existing code out there which does the same thing to discourage kernel/libc developers from overloading negative return values. ...And glibc even favors comparison against zero, too.
2015-01-10LICENSE: allow all future versions of LGPLv3+
In case I'm hit by a bus and FSF comes out with an LGPLv4, the project will still be able to move forward. While we're at it, update the gemspec, too.
2015-01-09switch documentation to olddoc
wrongdoc was difficult to maintain because of the tidy-ffi dependency and the HTML5 changes in Darkfish could not be handled well by Tidy. olddoc is superior as it generates leaner HTML which loads faster, requires less scrolling and less processing power to render. Aesthetic comparisons are subjective of course but completely unimportant compared to speed and accessibility.
2015-01-09doc: remove --sanitize-html option for pandoc
Newer versions of pandoc removed this option
2015-01-09change mailing list to ruby-posix-mq@bogomips.org
The public-inbox + mlmmj setup on bogomips.org allows posting without subscription and offers downloadable archives via git. The lack of rsyncable archives on librelist nowadays and subscription-required nature of librelist are points against it. Repliers are now encouraged to Cc: all recipients (using the reply-all function of their mail client) since many readers are not subscribed. This project has never accepted or encouraged HTML email, but librelist accepted it. The bogomips.org mail server is configured to treat HTML mail as spam, so do not send HTML mail if you expect a response. Users who wish to subscribe may send a message to: ruby-posix-mq+subscribe@bogomips.org Similarly, they may unsubscribe via: ruby-posix-mq+unsubscribe@bogomips.org HTTP archives are available via: http://bogomips.org/ruby-posix-mq/ ssoma users may also use: git://bogomips.org/ruby-posix-mq (see README change) Old messages to the librelist addresses will continue to get routed to the new mailing list. ref: http://public-inbox.org/
2015-01-09pack rw_args struct
This saves one word of stack space, potentially improving performance a miniscule amount.
2015-01-09support autoclose= and autoclose?
These are analogous to the identically-named IO methods and useful when we're inheriting descriptors (or writing tests for inheriting descriptors).
2015-01-09test_posix_mq: rewrite test to not depend on DL or alarm
DL is removed and deprecated, and we don't actually need it or alarm to test for EINTR-safety.
2015-01-09for_fd: delay assigning to mq->des until after mq_getattr
We do not want to assign to mq->des before verifying we have a valid message queue, otherwise the GC may misclose an invalid MQ descriptor (which may be a valid FD).
2015-01-04Ability to adopt file descriptors
This patch adds support for adopting an existing file descriptor, together with testcases. The need for this comes up when we use systemd with the ListenMessageQueue directive. For socket activation, systemd opens the POSIX message queue and expects user code to begin using the file descriptor without opening it in-process. To support the systemd model in the `posix_mq` gem, this patch suggests imitating the behavior on the Socket class, which uses `#for_fd` to create a socket class from a descriptor. One confounding factor exists. POSIX queues have a name but it is difficult to get access to this name in a safe manner from the file descriptor. One option would be to `readlink(2)` on `/proc/self/fd/N` to get the name[1], but note that if the descriptor is unlinked we wouldn't get anything usable. Rather than risk incorrect behavior and extra complexity, I've decided to just raise an `ArgumentError` if `#name` is called on adopted descriptors. Typically one wouldn't need the actual name in a systemd socket-activated situation, anyway. [1]: http://stackoverflow.com/questions/1188757/getting-filename-from-file-descriptor-in-c [ew: simplified type checks to be consistent with IO.for_fd, fixed test case] Signed-off-by: Eric Wong <normalperson@yhbt.net>
2014-02-15posix_mq 2.1.0 - ensure compatibility with future Rubies v2.1.0
* avoid deprecated rb_thread_blocking_region in Ruby 2.0/2.1 * prepare for rb_thread_blocking_region removal
2014-02-15avoid deprecated rb_thread_blocking_region in Ruby 2.0/2.1
This will be removed in Ruby 2.2, so avoid the deprecation warning.
2014-02-09prepare for rb_thread_blocking_region removal
It'll be OK to use rb_thread_call_without_gvl when rb_thread_blocking_region is not detectable at all. We still use rb_thread_blocking_region for Ruby 2.0-2.1 because rb_thread_call_without_gvl was detectable in 1.9.3, but not usable as an internal symbol. ref: https://bugs.ruby-lang.org/issues/9502
2013-09-30Rakefile: kill raa_update task
RAA is dead.
2012-08-06pkg.mk: update
2012-08-06posix_mq 2.0.0 - a minor API change + FreeBSD fixes v2.0.0
Blocking methods no longer raise Errno::EINTR (to match Ruby IO semantics, making code easier to work with). There are also many FreeBSD-related fixes thanks to Hleb Valoshka <375gnu@gmail.com> and small code cleanups.
2012-07-12test: relax test timings for timed* tests
On my i386-freebsd9 VM, this takes just longer than the maximum allowable time.
2012-07-12extconf: fix __mq_oshandle() detection on FreeBSD
We need to have -lrt in LDFLAGS before we can detect it.
2012-07-12test: disable IO.select test if #to_io is missing
2012-07-12ext: fix type inconsistencies for int vs mqd_t retvals
Somehow I mixed up return values for mq_* functions that return "int". This was noticed on FreeBSD where mqd_t is NOT an integer.
2012-07-12notify: set lower bound for notify stack size
Some OSes have ridiculously low boundaries and we don't want mysterious failures on them
2012-07-05blocking functions do not raise Errno::EINTR
Blocking functions should not raise Errno::EINTR to match existing semantics of Ruby IO methods (e.g. IO.select, IO#read, IO#write). This makes user code easier to read/write. Like th Ruby methods we emulate, we only reacquire the GVL on EINTR to fire signal handlers, but otherwise emulate SA_RESTART semantics. This is a backwards-incompatible API change (but unlikely to break existing code).
2012-07-03Add libc names for Debian GNU/kFreeBSD and FreeBSD in tests.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
2012-07-03Fix call to DL::Function.new in tests
The 3rd argument of DL::Function.new is ABI type, not a return type. Signed-off-by: Eric Wong <normalperson@yhbt.net>
2011-06-16fix compiler warnings, oops
CFLAGS=-Wall somehow got disabled in my Ruby installation...
2011-06-14num2timespec: remove needless double-assignment
Oops
2011-06-14no need to rb_intern("*")
'*' works just the same