about summary refs log tree commit homepage
DateCommit message (Collapse)
2011-07-20ext: note we rely on GVL for reentrancy detection
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.
2011-06-22clogger 1.0.1 - portability fixes v1.0.1
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.
2011-06-22ext: fix portability defines for some installs
Some Ruby installs muck up headers/#defines and cause weirdness. We now explicitly define _BSD_SOURCE and include #stdio.h
2011-05-11tests: add full URL example
Could be useful for some folks.
2011-04-26change from LGPLv2.1+ to LGPLv2.1 + LGPLv3
LGPLv4 could be completely different, so we won't give the FSF a blank check to force it upon us.
2011-04-21clogger 1.0.0 - \o/ v1.0.0
* $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
2011-04-19README: stop promoting strftime()-compatible formats
strftime() isn't locale-independent, so it can lead to inconsistencies in logs.
2011-04-19$time_local and $time_utc are locale-independent
This doesn't apply to people that use strftime()-formats, but that's a minority.
2011-04-16add support for $time_iso8601 format
This appeared in nginx 0.9.6
2011-03-21extconf: unnecessary dir_config statement
Braindamage from back in the day when I didn't understand mkmf
2011-03-16:format may be a Symbol for less typing
This allows using: use Clogger, :format => :Rack_1_0 Instead of: use Clogger, :format => Clogger::Format::Rack_1_0
2011-03-16fix documentation of Clogger.new for :path
Oops
2011-03-15README: misspelled "discusssion"
2011-03-15clogger 0.9.0 - configurable logging for Rack v0.9.0
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.
2011-03-15clogger: remove VERSION constant
People shouldn't care, there have been no backwards-incompatible changes in the UI and we're not a library people write code against.
2011-03-13avoid potential RString -> C-string conversions
Unlikely, but it may make a difference somewhere...
2011-03-13release GVL for filesystem operations
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.
2011-03-13ext: ensure path is a valid C string
Unlikely, but some app could pass '\0' into us
2011-03-13update pkg.mk
2011-03-04doc: bogomips.org URL diet
Old git URLs still work, but new ones are shorter
2011-03-04ext: avoid potentially unsafe casts with C API
Rubinius may be pickier about what a VALUE is, so we can't safely cast any C address into VALUEs.
2011-01-27pkg.mk: update in case we get rid of C ext
2011-01-21clogger 0.8.0 - delegating away! v0.8.0
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
2011-01-21switch to pkg.mk for maintenance tasks
I like make :D
2011-01-21pure: simpler autoload trigger
No need to actually create the hash, just load the constant
2011-01-21delegate method_missing calls to the response body
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.
2011-01-21pass along "to_io" calls to the body
This optimization is used by Rainbows! to pass IO objects to the response body.
2011-01-14clogger 0.7.0 - portability improvements, cleanups v0.7.0
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.
2011-01-14properly support $time_utc as documented
nginx doesn't have this, only time_local, but we do
2011-01-14handle abitrarily long time formats in C extension
In case some folks need to use insanely long time formats, we'll support them.
2011-01-14RDoc fixups
call-seq is needed to make C functions look good
2011-01-14remove dead RSTRUCT* compatibility macros
The Clogger::ToPath proxy struct class is gone and so is our need to access it.
2011-01-14remove Clogger::ToPath proxy class
We can just make Clogger#respond_to? smarter and forward everything except :close to the body we're proxying.
2011-01-14test_clogger_to_path: do not assume implementation details
We'll be getting rid of an unnecessary wrapper class
2011-01-14another try to fix systems without CLOCK_MONOTONIC
Fix a reversed typedef and also deal with the case where CLOCK_MONOTONIC is a function call and not a constant macro.
2011-01-14another workaround for systems with broken CLOCK_MONOTONIC
This should also detect cases where CLOCK_MONOTONIC is available at build but not at runtime.
2011-01-12attempt to support broken/crazy systems
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
2011-01-12remove unused function (obj_fileno)
2010-12-26release: publish_news runs by default
It's interactive and sucks less, now.
2010-12-25README: updates
Remove unnecessary "DESCRIPTION" header, also added note about Rubinius support.
2010-12-25clogger 0.6.0 - :path shortcut, minor bugfixes v0.6.0
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.
2010-12-25fix $msec and $usec in pure Ruby variant
It was totally broken but nobody uses uses it, so it went unnoticed since the beginning of time.
2010-12-25add support for Rubinius
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.
2010-12-25GNUmakefile: better external RUBYLIB support
Duh!
2010-12-24eliminate unnecessary freeze and dup
They're not needed and a waste of code.
2010-12-24doc: switch to wrongdoc for documentation
wrongdoc eliminates JavaScript from our website and also enables us to cut down on our management scripts/code for supporting the project.
2010-12-24GNUmakefile: preserve RUBYLIB env for tests
2010-12-24fix #include ordering under FreeBSD 7.2
ruby.h doesn't seem to like being included after time.h
2010-12-24use clock_gettime for time resolution
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).
2010-12-24accept a new :path argument in initialize
This lessens confusion for people configuring Clogger in config.ru, since "File" could be mistaken for Rack::File and "::File" needs to be specified.