about summary refs log tree commit homepage
DateCommit message (Collapse)
2017-03-18aggregate/pmq: avoid File#stat allocation aggregate-pmq
File#size is available in modern Rubies so the extra syscall is avoided.
2017-03-18aggregate/pmq: remove io-extra requirement
IO.copy_stream is standard in 1.9+ and can use pread when given an offset. We do not need to use pwrite with fcntl locking, actually.
2017-03-18aggregate/pmq: avoid false sharing of lock buffers
And rely on frozen string optimizations in Ruby while we're at it.
2017-03-15test_watcher: disable test correctly when aggregate is missing
While we're at it, improve the description of other skips.
2017-03-15TypedData C-API conversion
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-01TCP_Info: custom documentation for #get!
While #get! is the same as the #initialize method, the former is public and called explicitly by folks wishing to reduce allocation overhead.
2017-03-01ext: fix documentation for C ext-defined classes
Defining the "Raindrops" class explicitly helps RDoc find subclasses for documentation, and ought to reduce the binary size slightly due to the removal of rb_intern calls. Furthermore, use "Socket" to ensure the base class for Raindrops::InetDiagSocket is documented properly in RDoc.
2017-02-23TODO: add item for IPv6 breakage
I've noticed the IPv6 connections on https://raindrops-demo.bogomips.org/ are not being reported correctly. We will have to look into fixing it..
2016-09-27test_inet_diag_socket: fix Fixnum deprecation warning
Ruby 2.4 will unify Fixnum and Bignum.
2016-07-31raindrops 0.17.0 - rack 2.x updates v0.17.0
This release features minor updates to support rack 2.x while maintaining support for rack 1.2 and later. As a result, Ruby 1.8.6 compatibility is gone, but Ruby 1.8.7 probably still works, for now. There's also a minor warning fix, doc updates, and the homepage now supports HTTPS (HTTP remains supported) 5 changes since raindrops 0.16.0: drop Rack::Utils.bytesize dependency gemspec: bump Rack dependency linux_inet_diag: GCC attribute format check use HTTPS and move homepage to https://bogomips.org/raindrops/ examples: add yahns config, zbatery is abandoned
2016-07-31examples: add yahns config, zbatery is abandoned
Since zbatery is abandoned, point users towards yahns instead since that is what I currently use.
2016-07-29use HTTPS and move homepage to https://bogomips.org/raindrops/
While raindrops.bogomips.org exists, having extra subjectAltName entries is bloating the certificate. This will make it easier to mirror the homepage on Tor hidden services.
2016-07-28linux_inet_diag: GCC attribute format check
This helps the compiler detect bugs and quiets down a -Wsuggest-attribute=format warning
2016-07-28gemspec: bump Rack dependency
We are now compatible with Rack 1.2 .. 2.x
2016-07-27drop Rack::Utils.bytesize dependency
rack 2.0 removes this method, but we actually don't need it since any strings we generate are binary and Aggregate#to_s output is 7-bit clean.
2016-02-29raindrops 0.16.0 - minor fixes and workarounds v0.16.0
There's mainly a fix/workaround for Ruby 2.3 now returning locale-aware strings for File.readlink and our test suite using strange paths allowed by *nix. https://bugs.ruby-lang.org/issues/12034 tcp_listener_stats won't return "true" object placeholders if stats are configured for a non-existent listener. There are also minor optimizations for Ruby 2.2+ (at the expense of 2.1 and earlier). And the usual round of minor tweaks and doc updates. 10 changes since v0.15.0: gemspec: avoid circular dependency on unicorn remove optimizations which made sense for older rubies linux: workaround Ruby 2.3 change linux: remove Pathname stdlib dependency add .gitattributes for Ruby method detection middleware: minor bytecode size reduction doc: update URLs and references README: remove indentation from URLs in RDoc linux: tcp_listener_stats drops "true" placeholders build: use '--local' domain for dev gem install
2016-02-25build: use '--local' domain for dev gem install
This avoids unnecessary network requests for disconnected systems.
2016-02-25linux: tcp_listener_stats drops "true" placeholders
With invalid addresses specified which give no currently-bound address, we must avoid leaving placeholders ('true' objects) in our results. Clean up some shadowing "cur" while we're at it.
2016-02-24README: remove indentation from URLs in RDoc
RDoc considers indented text to be preformatted and will not generate links in HTML links for them.
2016-02-24doc: update URLs and references
Neither the GCC nor libatomic_ops URLs are valid, anymore. Update them to the latest versions and ensure the URLs themselves are visible in documentation as links to external sites. Additionally, the current cgit installation on bogomips.org will soon be replaced by a CSS-free web-based viewer. Also, correct the reference to "LGPL-2.1+" while we're at it and add references to the nntp:// mail archives.
2016-02-24middleware: minor bytecode size reduction
The "defineclass" VM instruction takes more operands and uses more space than "setconstant". Since we have no methods or subclasses/constants to define under the "Raindrops::Middleware::Stats" class,
2016-02-24add .gitattributes for Ruby method detection
The "diff" function detection for C does not map well to Ruby files, take advantage of gitattributes(5) to improve method name detection in generated patches as well as making "git diff -W" output more useful.
2016-02-23linux: remove Pathname stdlib dependency
The File.readlink has been available since the earliest SVN import of Ruby from Jan 16 1998. There's no reason to load the Pathname class here since we don't do any further pathname manipulation. So avoid loading the extra .so here and creating extra objects.
2016-02-23linux: workaround Ruby 2.3 change
File.readlink (and thus Pathname#realpath) returns the filesystem encoding (Encoding.find "filesystem"). The filesystem encoding defaults to the locale encoding, which tends to be UTF-8. This is true even on *nix filesystems which can have any byte besides "\0". ref: https://bugs.ruby-lang.org/issues/12034 ref: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/73593
2016-02-02remove optimizations which made sense for older rubies
Since Ruby 2.2, frozen string literals are implied for Hash#[] lookups. Constant lookups have inline caching since Ruby 1.9 (from YARV).
2015-08-29gemspec: avoid circular dependency on unicorn
We can skip tests which require unicorn.
2015-07-22raindrops 0.15.0 - non-glibc compat fix on Linux v0.15.0
Thanks to Doug Forster for sending us the report. No other fixes * check for the existence of linux/tcp.h
2015-07-14check for the existence of linux/tcp.h
The linux/tcp.h header may not exist on alternative libc implementations such as musl. Noticed-by: Doug Forster <doug.forster@gmail.com>
2015-06-25raindrops 0.14.0 - misc doc updates v0.14.0
Eric Wong (7): linux_inet_diag: annotate memory freeing on diag errors README: trim intro and update license modernize packaging and documentation move mailing list to raindrops-public@bogomips.org linux_inet_diag: clarify *fprintf usage without GVL TODO: add item for unix_diag and udp_diag linux_inet_diag: fix Wshorten-64-to-32 warnings Hleb Valoshka (1): Add setup and teardown for ipv6 tests
2015-01-14linux_inet_diag: fix Wshorten-64-to-32 warnings
POSIX and glibc 2.2+ declare the hostlen and servlen args of getnameinfo(3) to be socklen_t, not size_t, so favor socklen_t for those calculations. While we're at it, nlmsg_len is u32, too, so cast it as such to avoid the warning. Tested on clang version 3.5-1ubuntu1 on x86-64
2015-01-14TODO: add item for unix_diag and udp_diag
These features are found in newer kernels.
2015-01-14linux_inet_diag: clarify *fprintf usage without GVL
A reviewer may wonder why fprintf is chosen instead of rb_warn, so make it clear we're outside of the GVL when spewing the warning message and cannot use most rb_* functions.
2015-01-13move mailing list to raindrops-public@bogomips.org
Existing subscribers on librelist will need to resubscribe since there's no published subscriber lists anywhere. 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 should 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: raindrops-public+subscribe@bogomips.org Similarly, they may unsubscribe via: raindrops-public+unsubscribe@bogomips.org HTTP archives are available via: http://bogomips.org/raindrops-public/ ssoma users may also use: git://bogomips.org/raindrops-public (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-13modernize packaging and documentation
By switching to olddoc! wrongdoc was difficult to maintain due to FFI, and olddoc is more complete anyways (no images or CSS, not just JavaScript removal). While we're at it, use the SPDX-recommended license abbreviation ("LGPL-2.1+") and specify a test-unit dependency. ref: http://80x24.org/olddoc/
2015-01-13README: trim intro and update license
No need to mention Rainbows! anymore since it is stagnant, and I've given up on Rubinius support since it requires a proprietary bug tracker. We went with LGPL-2.1+ in commit 09fb7ccc3f1712411c61cbf54766c3c12c8296b2 but forgot to update the README.
2014-11-14Add setup and teardown for ipv6 tests
Signed-off-by: Eric Wong <normalperson@yhbt.net>
2014-09-07linux_inet_diag: annotate memory freeing on diag errors
Clarify the code so memory leak alarms in reviewers eyes do not go off.
2014-02-18raindrops 0.13.0 several minor fixes and improvements v0.13.0
Most notably, this release is necessary for Ruby 2.2 (dev). Thanks to Koichi Sasada for the bug report! Eric Wong (5): Rakefile: remove raa_update task last_data_recv: do not assume Unicorn includes all constants raindrops.gemspec: add wrongdoc dev dependency linux_inet_diag: fix Ruby 2.2 (dev) build license: use LGPLv2.1 or later (was LGPL (2.1|3.0)-only) Hleb Valoshka (1): Remove Scope IDs from IPv6 addresses.
2014-02-18license: use LGPLv2.1 or later (was LGPL (2.1|3.0)-only)
There is currently no LGPLv4, so this change has no effect at the moment. In case the LGPLv4 arrives and I am not alive to approve/review it, the lesser of evils is have give blanket approval of all future LGPL versions (as published by the FSF). The worse evil is to be stuck with a license which cannot guarantee the Free-ness of this project in the future. This unfortunately means the FSF can theoretically come out with license terms I do not agree with, but the LGPLv2.1 and LGPLv3 will always remain an option to all users.
2014-02-18linux_inet_diag: fix Ruby 2.2 (dev) build
Do not define or use rb_thread_blocking_region if rb_thread_io_blocking_region is available. rb_thread_blocking_region is gone entirely in Ruby trunk.
2014-02-18raindrops.gemspec: add wrongdoc dev dependency
Ugh, I really need to work on an 80x24-friendly rdoc :P
2013-11-05last_data_recv: do not assume Unicorn includes all constants
Some projects may load parts of Unicorn and not others.
2013-11-05Rakefile: remove raa_update task
RAA is dead
2013-09-13Remove Scope IDs from IPv6 addresses.
Scoped ipv6 addresses are defined in rfc4007. Ruby doesn't support them yet and it's unknown whether it will (see http://bugs.ruby-lang.org/issues/8464). So we just remove scope ids. Tested with MRI and Rubinius.
2013-09-02raindrops 0.12.0 - compatibility fixes v0.12.0
This release fixes builds on systems where compilers target i386 (and not later x86 systems). There are also minor improvements for Ruby 2.1.0dev and Rubinius. Eric Wong (5): doc: add email address to generated doc/site README: update regarding Ruby support status extconf: try harder for gcc atomics in i386-configured systems linux_inet_diag: improve compatibility with newer GCs test_watcher: fix for Ruby trunk r40195 and later
2013-09-02test_watcher: fix for Ruby trunk r40195 and later
assert_raises doesn't capture exceptions the same way rescue works.
2013-08-31linux_inet_diag: improve compatibility with newer GCs
RARRAY_PTR is expensive with GCs in Ruby 2.1.0dev and Rubinius, so use rb_ary_entry for non-performance critical paths. Eventually, RARRAY_AREF/RARRAY_ASET may be common, but for now, using rb_ary_entry should require the least cognitive overhead for a developer.
2013-08-28extconf: try harder for gcc atomics in i386-configured systems
__sync_lock_test_and_set might not be the correct check after all, but __sync_val_compare_and_swap probably is. At least this is what Ruby 2.0.0 uses to check and attempt -march=i486 on.
2013-04-20README: update regarding Ruby support status
Now that Ruby 2.0.0 is out...
2013-04-20doc: add email address to generated doc/site