Date | Commit message (Collapse) |
|
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.
|
|
Oops
|
|
We've been spoiled by GNU tar.
|
|
|
|
This release allows middleware like Rack::Contrib::Sendfile to
work properly higher up the stack from Clogger.
Certain configurations of the Rainbows! and Zbatery web servers
are able to use the return value of body.to_path to serve static
files efficiently (via IO.copy_stream under 1.9 or
stream_file_data with EventMachine).
There are some small cleanups and documentation improvements
as well.
I've relicensed to LGPLv2.1+ (from LGPLv3-only) to allow
bundling with GPLv2-only applications (I'm currently the sole
copyright holder).
Signed-off-by: Eric Wong <normalperson@yhbt.net>
|
|
There may also be some MRI users uncomfortable running C
extensions.
|
|
It's unintuitive that merely setting the environment variable to
an empty string or zero would be a boolean true.
|
|
|
|
There's no way in hell a valid file descriptor can have
a negative number attached to it.
|
|
Sometimes programmers can blindly set O_NONBLOCK on everything
in sight. However, O_NONBLOCK has no effect on regular files,
so ignore it and allow the raw file descriptor to be used.
|
|
|
|
Rack is always used, and Rack itself uses autoload to
save memory.
|
|
|
|
This allows GPLv2-only programs to bundle us.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
|
|
|
|
Certain configurations of Rainbows! (and Zbatery) are able to
use the return value of body.to_path to serve static files
more efficiently.
This also allows middleware like Rack::Contrib::Sendfile to
work properly higher up the stack, too.
|
|
We no longer write the log out at the end of the body.each call.
This is a behavioral change, but fortunately all Rack servers
I've seen call body.close inside an ensure.
This allows us to later pass along the "to_path" method
and not rely on "each" to write the log.
|
|
|
|
Small cleanups and minor enhancements (mainly for the optional
C extension) for this release:
Eric Wong (10):
ext: use FIX macros instead of generic NUM macros if possible
ext: preserve subclasses of Rack::Utils::HeaderHash
test: fix Linux memory usage test
avoid direct require of "rack" to quiet warnings
ext: GC safety fix when throwing an exception
ext: eliminate unused variable
ext: fix signedness and shadow warnings
ext: sparse cleanups
ext: avoid void pointer arithmetic
clogger 0.4.0
|
|
default CFLAGS for 1.9.2dev complains
|
|
|
|
These were (fortunately) harmless, but better safe than
sorry.
|
|
|
|
The return value of rb_inspect() may not be visible
on the stack without assigning it to a local variable
first.
|
|
This quiets down warnings when used with RubyGems loaders such
as Isolate and Bundler where the HTTP server already loaded
Rack.
|
|
|
|
some people subclass HeaderHash and want them preserved
through the middleware stack.
|
|
They're slightly faster when we know a number is small enough
to be a FIXNUM.
|
|
This release fixes a memory leak in the optional C extension due to
misuse of the Ruby C API. Users of the pure Ruby version are
unaffected.
We also misreleased 0.3.1 with this fix, but without bumping the
Clogger::VERSION constant.
|
|
The optional C extension leaked memory due to improper use of
the Ruby API, causing duplicated objects to never be garbage
collected.
I misread the Data_Make_Struct/Data_Wrap_Struct documentation
and ended up passing NULL as the "free" argument instead of -1,
causing the memory to never be freed.
From README.EXT in the MRI source which I misread:
> The free argument is the function to free the pointer
> allocation. If this is -1, the pointer will be just freed.
> The functions mark and free will be called from garbage
> collector.
|