Date | Commit message (Collapse) |
|
This release fixes compatibility with GC.compact on Ruby 3.x
when using ListenStats on Linux. The listener stats
functionality is rarely used and does not affect most users
who just have raindrops installed for shared atomic counters.
|
|
This release fixes some warnings on newer Rubies.
We're no longer on bogomips.org since it's due
for expiry and I can't pay extortionists for a .org, so
s/bogomips.org/yhbt.net/ for now, and be prepared to move again
when extortionists move onto extorting the .net TLD.
doc: switch homepage to dark216
ext/raindrops/extconf: fix cflags reset on ancient CC
fixes for newer rubies
replace bogomips.org with yhbt.net
|
|
This release fixes Rack 2.x compatibility for the few users of
Raindrops::Middleware
<https://bogomips.org/raindrops/Raindrops/Middleware.html>.
Thanks to Dmytro Shteflyuk for this release.
No need to upgrade unless you use Raindrops::Middleware with
Rack 2.x.
There's also a few minor, inconsequential cleanups.
Dmytro Shteflyuk (1):
Properly override respond_to? in Raindrops::Middleware::Proxy
Eric Wong (2):
Ruby thread compatibility updates
tcp_info: remove unnecessary extconf.h include
|
|
The most notable feature of this release is the addition of
FreeBSD and OpenBSD TCP_INFO support. This includes the
Raindrops::TCP for portably mapping TCP state names to
platform-dependent numeric values:
https://bogomips.org/raindrops/Raindrops.html#TCP
Thanks to Jeremy Evans and Simon Eskildsen on the
unicorn-public@bogomips.org mailing list for inspiring
these changes to raindrops.
There's also a few internal cleanups, and documentation
improvements, including some fixes to the largely-forgotten
Raindrops::Aggreage::PMQ class:
https://bogomips.org/raindrops/Raindrops/Aggregate/PMQ.html
20 changes since 0.17.0:
test_inet_diag_socket: fix Fixnum deprecation warning
TODO: add item for IPv6 breakage
ext: fix documentation for C ext-defined classes
TCP_Info: custom documentation for #get!
TypedData C-API conversion
test_watcher: disable test correctly when aggregate is missing
tcp_info: support this struct under FreeBSD
define Raindrops::TCP hash for TCP states
linux_inet_diag: reduce stack usage and simplify
avoid reading errno repeatedly
aggregate/pmq: avoid false sharing of lock buffers
aggregate/pmq: remove io-extra requirement
aggregate/pmq: avoid File#stat allocation
Merge remote-tracking branch 'origin/freebsd'
Merge remote-tracking branch 'origin/aggregate-pmq'
doc: remove private email support address
doc: update location of TCP_INFO-related stuff
build: avoid olddoc for building the RubyGem
doc: document Raindrops::TCP hash
aggregate/pmq: update version numbers for Ruby and Linux
|
|
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
|
|
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
|
|
Thanks to Doug Forster for sending us the report.
No other fixes
* check for the existence of linux/tcp.h
|
|
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
|
|
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.
|
|
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
|
|
Eric Wong (7):
raindrops: favor configured processor count over online count
watcher: set Content-Type via assignment
Linux::TCP_Info: implement #get! instance method
linux_inet_diag: avoid unnecessary sockaddr initialization
.gitignore: add .rbx
switch back to gemspec development dependencies
linux_inet_diag: better align listener_stats struct
Lawrence Pit (1):
Watcher: Use relative paths in HTML links
|
|
Improvements to the Unix domain socket handling and small
bugfixes throughout.
Support for the "unix_diag" facility in Linux 3.3+ is planned
but not yet implemented (patches to raindrops@librelist.org
appreciated)
Brian Corrigan (1):
resolve symlinks to Unix domain sockets
Eric Wong (6):
unix_listener_stats follows and remembers symlinks
middleware/proxy: favor __send__ for method dispatch
unix: show zero-value stats for idle listeners
test_watcher: fix incorrect request/date comparison
watcher: sort index of listener listing
watcher: do not require Rack::Head for HEAD response
See "git log v0.9.0..v0.10.0" for full details
|
|
Raindrops::Middleware::Proxy now forwards method_missing
to the proxied body object. This allows compatibility
with non-standard Rack extensions employed by some
middlewares, applications, or servers.
Thanks to Ben Somers for the feature!
|
|
This release fixes a build problem found under a current SmartOS. This
release also runs successfully on FreeBSD 9.0 under both x86-64 and
i386.
There are also documentation updates from Aman Gupta and a test suite
fix from Jeremy Evans for OpenBSD.
raindrops fully supports unicorn on recent versions of FreeBSD, OpenBSD,
SmartOS, and possibly other Free Software systems. Portability reports
and fixes for Free Software systems is greatly appreciated at
raindrops@librelist.org
Non-Free systems will never be supported.
raindrops requires the Linux 2.6.18 or later for full functionality
(which unicorn does not require). Future releases will take advantage
of the unix_diag functionality found in the Linux 3.3 (and later)
kernels.
|
|
There are various updates to the Raindrops::Watcher Rack app.
Most notably, the timestamp where the a statistic first and last
hit its peak value (active/queued connections) is captured.
As usual, the latest Raindrops::Watcher is running at:
http://raindrops-demo.bogomips.org/
|
|
This release fixes a build issue on FreeBSD. There are various
documentation and code cleanups, too.
|
|
TCP_INFO support couldn't compile under non-Linux, this was
broken since 0.5.0 when TCP_INFO support was introduced.
Thanks to Ben Bleything for the report.
|
|
Following up the huge 0.5.0 release, 0.6.0 makes
some minor improvements:
* minor UI/UX improvements for Watcher Rack app
* set close-on-exec by default for inet_diag sockets
* inet_diag build fixes for newer GNU libc6
* --with-atomic_ops-dir= build option added
|
|
Portable changes:
* Raindrops are now resizable within the limits of system page size
* Raindrops::Middleware proxies +to_path+ in response bodies
* More documentation
Linux-only changes:
* Raindrops::LastDataRecv[1] Rack application
* Raindrops::Watcher[2] Rack application
* Raindrops::TCP_Info[3] class for capturing TCP connection stats
* IPv6 support for inet_diag
* faster inet_diag stats for multiple sockets
There is also a demo server running the Watcher and Middleware
components. It's capped to 30 concurrent users, so go easy on
it:
Raindrops::Watcher: http://raindrops-demo.bogomips.org/
Raindrops::Middleware: http://raindrops-demo.bogomips.org/_raindrops
[1] http://raindrops.bogomips.org/Raindrops/LastDataRecv.html
[2] http://raindrops.bogomips.org/Raindrops/Watcher.html
[3] http://raindrops.bogomips.org/Raindrops/TCP_Info.html
|
|
Rubinius 1.1.0 support is complete. Atomic operations
are now available under FreeBSD 7.0 now.
Full changelog below:
commit 8a2a725a4ad074af493e5aa075155eda8b1d6be7
Author: Eric Wong <e+absinthe@yhbt.net>
Date: Sat Sep 25 00:14:48 2010 -0700
force -march=i486 where GCC is targeted for i386
Nobody uses i386 anymore (especially not with Ruby!),
but some systems like FreeBSD 7.0 still target GCC at
i386 by default, so we force GCC to use a slightly
more modern instruction set and allow it to use
atomic builtins.
commit 256cc7c8ffb441dcf2d2a2da3bbbcc82546962d9
Author: Eric Wong <e+absinthe@yhbt.net>
Date: Sat Sep 25 00:01:46 2010 -0700
disable Linux-only code on non-Linux
This allows us to build and link correctly on FreeBSD 7.0
commit 22a5a39d75faa890048d07ae4ea0d494acd414ce
Author: Eric Wong <e@yhbt.net>
Date: Sat Sep 25 06:25:42 2010 +0000
linux: workaround missing RSTRUCT* macros in rbx
Rubinius does not include macros for accessing
Struct members in the C API.
ref: http://github.com/evanphx/rubinius/issues/494
|
|
Non-GCC 4.x users may use the libatomic_ops[1] package to
compile Raindrops. Memory efficiency is improved for modern
glibc users with run-time cache line size detection, we no
longer assume 128 byte cache lines.
[1] - http://www.hpl.hp.com/research/linux/atomic_ops/
|
|
Raindrops is now licensed under the LGPLv2.1 or LGPLv3 (from
LGPLv3-only) to allow bundling in GPLv2-only applications.
There are small documentation updates and updated examples
at http://raindrops.bogomips.org/examples/
|
|
For servers running Unicorn 0.98.0 (and derivative servers)
under Linux, :listeners no longer needs to be passed explicitly
when configuring the Rack middleware.
Some small documentation updates and cleanups, too.
|
|
|