Unicorn 0.92.0

Unicorn is a Rack HTTP server for Unix and fast clients

Small fixes and documentation are the focus of this release.

James Golick reported and helped me track down a bug that caused
SIGHUP to drop the default listener ( if and only
if listeners were completely unspecified in both the
command-line and Unicorn config file. The Unicorn config file
remains the recommended option for specifying listeners as it
allows fine-tuning of the :backlog, :rcvbuf, :sndbuf,
:tcp_nopush, and :tcp_nodelay options.

There are some documentation (and resulting website)
improvements. setup.rb users will notice the new section 1
manpages for unicorn and unicorn_rails, Rubygems users
will have to install manpages manually or use the website.

Edit: That’s not entirely true, I screwed up the package but
you can get them from http://unicorn.bogomips.org/unicorn.1
and http://unicorn.bogomips.org/unicorn_rails.1

The HTTP parser got a 3rd-party code review which resulted in
some cleanups and one insignificant bugfix as a result.

Additionally, the HTTP parser compiles, runs and passes unit
tests under Rubinius. The pure-Ruby parts still do not work yet
and we currently lack the resources/interest to pursue this
further but help will be gladly accepted.

The website now has an Atom feed for new release announcements.
Those unfamiliar with Atom or HTTP may finger [email protected]
for the latest announcements.

Eric W. (53):
README: update with current version
http: cleanup and avoid potential signedness warning
http: clarify the setting of the actual header in the hash
http: switch to macros for bitflag handling
http: refactor keepalive tracking to functions
http: use explicit elses for readability
http: remove needless goto
http: extra assertion when advancing p manually
http: verbose assertions
http: NIL_P(var) instead of var == Qnil
http: rb_gc_mark already ignores immediates
http: ignore Host: continuation lines with absolute URIs
doc/SIGNALS: fix the no-longer-true bit about socket options
“encoding: binary” comments for all sources (1.9)
http_response: don’t “rescue nil” for body.close
CONTRIBUTORS: fix capitalization for why
http: support Rubies without the OBJ_FROZEN macro
http: define OFFT2NUM macro on Rubies without it
http: no-op rb_str_modify() for Rubies without it
http: compile with -fPIC
http: use rb_str_{update,flush} if available
http: create a new string buffer on empty values
Update documentation for Rubinius support status
http: cleanup assertion for memoized header strings
http: add #endif comment labels where appropriate
Add .mailmap file for “git shortlog” and other tools
Update Manifest with mailmap
Fix comment about speculative accept()
SIGNALS: use “Unicorn” when referring to the web server
Add new Documentation section for manpages
test_exec: add extra tests for HUP and preload_app
socket_helper: (FreeBSD) don’t freeze the accept filter constant
Avoid freezing objects that don’t benefit from it
SIGHUP no longer drops lone, default listener
doc: generate ChangeLog and NEWS file for RDoc
Remove Echoe and roll our own packaging/release…
unicorn_rails: close parentheses in help message
launchers: deprecate ambiguous -P/–p* switches
man1/unicorn: avoid unnecessary emphasis
Add unicorn_rails(1) manpage
Documentation: don’t force --rsyncable flag with gzip(1)
Simplify and standardize manpages build/install
GNUmakefile: package .tgz includes all generated files
doc: begin integration of HTML manpages into RDoc
Update TODO
html: add Atom feeds
doc: latest news is available through finger
NEWS.atom: file timestamp matches latest entry
pandoc needs the standalone switch for manpages
man1/unicorn: split out RACK ENVIRONMENT section
man1/unicorn_rails: fix unescaped underscore
NEWS.atom.xml only lists the first 10 entries
unicorn 0.92.0