Date | Commit message (Collapse) |
|
Nothing wrong with the GVL in Ruby 1.9.3; but we'll need
to modify our code if it's removed for C extensions.
|
|
Minor portability fixes noticed on some systems.
There is a minor license change, it is now explicitly LGPLv2.1
and LGPLv3 and later versions at the project leader's
discretion. It is no longer LGPLv2.1+, so it doesn't give a
blank check to the FSF to change the license on us.
|
|
Some Ruby installs muck up headers/#defines and cause weirdness.
We now explicitly define _BSD_SOURCE and include #stdio.h
|
|
Could be useful for some folks.
|
|
LGPLv4 could be completely different, so we won't give
the FSF a blank check to force it upon us.
|
|
* $time_iso8601 added for nginx compatibility
* $time_local (without strftime-options) is now locale-independent
There's also a minor usability tweak that allows Symbols to be
specified as the :format argument, so config.ru can be shortened:
before (continues to work with 1.0.0):
use Clogger, :format => Clogger::Format::Rack_1_0
after:
use Clogger, :format => :Rack_1_0
|
|
strftime() isn't locale-independent, so it can lead to
inconsistencies in logs.
|
|
This doesn't apply to people that use strftime()-formats,
but that's a minority.
|
|
This appeared in nginx 0.9.6
|
|
Braindamage from back in the day when I didn't understand mkmf
|
|
This allows using:
use Clogger, :format => :Rack_1_0
Instead of:
use Clogger, :format => Clogger::Format::Rack_1_0
|
|
Oops
|
|
|
|
Under 1.9, we always release the GVL for filesystem operations
now to avoid worst case scenarios. This may hurt performance
for some folks with bad locking implementations and extremely
fast filesystems. A couple of minor cleanups, too.
|
|
People shouldn't care, there have been no backwards-incompatible
changes in the UI and we're not a library people write code
against.
|
|
Unlikely, but it may make a difference somewhere...
|
|
While local filesystems are usually very fast, we are
pessimistic and should prepare for worst-case scenarios. This
can use rb_thread_io_blocking_region() under Ruby 1.9.3dev.
|
|
Unlikely, but some app could pass '\0' into us
|
|
|
|
Old git URLs still work, but new ones are shorter
|
|
Rubinius may be pickier about what a VALUE is, so we can't
safely cast any C address into VALUEs.
|
|
|
|
Clogger now delegates all unknown methods to the response body
in cases where it needs to wrap the response body. This allows
apps that use non-standard Rack extensions to continue working.
Eric Wong (4):
pass along "to_io" calls to the body
delegate method_missing calls to the response body
pure: simpler autoload trigger
switch to pkg.mk for maintenance tasks
|
|
I like make :D
|
|
No need to actually create the hash, just load the constant
|
|
Since we delegated response_to?, we also need to delegate
method_missing to the response body in case there are
non-standard methods defined outside of Rack.
|
|
This optimization is used by Rainbows! to pass IO objects
to the response body.
|
|
Broken/crazy systems without CLOCK_MONOTONIC (in varying
degrees) and/or clock_gettime() should be supported by
using gettimeofday(). Thanks to Lawrence Pit for reporting
and helping us test.
The Clogger::ToPath proxy class is gone, Clogger itself can
proxy to_path/close calls correctly to the response body.
$time_utc with a default strftime-format is now supported, and
time formats can now be arbitrarily long in the C extension.
|
|
nginx doesn't have this, only time_local, but we do
|
|
In case some folks need to use insanely long time formats,
we'll support them.
|
|
call-seq is needed to make C functions look good
|
|
The Clogger::ToPath proxy struct class is gone and
so is our need to access it.
|
|
We can just make Clogger#respond_to? smarter and forward
everything except :close to the body we're proxying.
|
|
We'll be getting rid of an unnecessary wrapper class
|
|
Fix a reversed typedef and also deal with the case where
CLOCK_MONOTONIC is a function call and not a constant
macro.
|
|
This should also detect cases where CLOCK_MONOTONIC is
available at build but not at runtime.
|
|
clock_gettime() is not available on some systems and/or
CLOCK_MONOTONIC. This is totally broken considering the
POSIX standard was 10 years ago, now.
Nothing in gnulib, either, wtf?!
http://www.gnu.org/software/gnulib/manual/html_node/clock_005fgettime.html
|
|
|
|
It's interactive and sucks less, now.
|
|
Remove unnecessary "DESCRIPTION" header, also added note
about Rubinius support.
|
|
Clogger may now be initialized with a :path instead of :logger
to avoid typing "::File" in config.ru files to avoid conflicting
with the completely-unrelated Rack::File.
$request_time is now uses the monotonic clock, making it immune
to system clock changes. $usec and $msec statements were
completely broken in the pure-Ruby code and now fixed.
Rubinius is supported by the optional C extension as well,
the pure-Ruby code always worked.
|
|
It was totally broken but nobody uses uses it, so it
went unnoticed since the beginning of time.
|
|
RSTRUCT_PTR access is unlikely to ever happen for Rubinius,
so we'll just make a method dispatch and leave the faster
code for Ruby 1.8 and 1.9.
|
|
Duh!
|
|
They're not needed and a waste of code.
|
|
wrongdoc eliminates JavaScript from our website and also
enables us to cut down on our management scripts/code for
supporting the project.
|
|
|
|
ruby.h doesn't seem to like being included after time.h
|
|
This lets us use CLOCK_MONOTONIC so we are not affected by
system clock changes.
We still convert to microseconds instead of nanoseconds for
(pure)-Ruby 1.8 code compatibility. There is also little need
for nanosecond timer resolution in log files (microsecond is not
needed, even).
|
|
This lessens confusion for people configuring Clogger in
config.ru, since "File" could be mistaken for Rack::File
and "::File" needs to be specified.
|