From f8d431040eb863b226ded089113340e68d598914 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 1 Nov 2015 08:48:33 +0000 Subject: unicorn 5.0.0 - most boring major release. EVER. An evolutionary dead-end since its announcement[1] nearly six years ago, this old-fashioned preforker has had enough bugs and missteps that it's managed to hit version 5! I wish I could say unicorn 5 is leaps and bounds better than 4, but it is not. This major version change allows us to drop some cruft and unused features which accumulated over the years, resulting in several kilobytes of memory saved[2]! Compatibility: * The horrible, proprietary (:P) "Status:" response header is finally gone, saving at least 16 precious bytes in every HTTP response. This should make it easier to write custom HTTP clients which are compatible across all HTTP servers. It will hopefully make migrating between different Rack servers easier for new projects. * Ruby 1.8 support removed. Ruby 1.9.3 is currently the earliest supported version. However, expect minor, likely-unnoticeable performance regressions if you use Ruby 2.1 or earlier. Going forward, unicorn will favor the latest version (currently 2.2) of the mainline Ruby implementation, potentially sacrificing performance on older Rubies. * Some internal, undocumented features and APIs used by derivative servers are gone; removing bloat and slightly lowering memory use. We have never and will never endorse the use of any applications or middleware with a dependency on unicorn, applications should be written for Rack instead. Note: Rainbows! 5.0 will be released next week or so to be compatible with unicorn 5.x New features: * sd_listen_fds(3) emulation added for systemd compatibility. You may now stop using PID files and other process monitoring software when using systemd. * Newly-set TCP socket options are now applied to inherited sockets. * Dynamic changes in the application to Rack::Utils::HTTP_STATUS hash is now supported; allowing users to set custom status lines in Rack to be reflected in unicorn. This feature causes a minor performance regression, but is made up for Ruby 2.2 users with other optimizations. * The monotonic clock is used under Ruby 2.1+, making the timeout feature immune to system clock changes. As unicorn may be used anonymously without registration, the project is committed to supporting anonymous and pseudonymous help requests, contributions and feedback via plain-text mail to: unicorn-public@bogomips.org The mail submission port (587) is open to those behind firewalls and allows access via Tor and anonymous remailers. Archives are accessible via: http://bogomips.org/unicorn-public/ and mirrored to various other places, so you do not need to use a valid address when posting. Finally, rest assured the core design of unicorn will never change. It will never use new-fangled things like threads, kqueue or epoll; but will always remain a preforking server serving one client per-process. [1] http://mid.gmane.org/20090211230457.GB22926@dcvr.yhbt.net [2] this would've been like, totally gnarly in the 80s! --- GIT-VERSION-GEN | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 27425b9..9141c74 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,5 +1,5 @@ #!/usr/bin/env ruby -DEF_VER = "v5.0.0.pre2" +DEF_VER = "v5.0.0" CONSTANT = "Unicorn::Const::UNICORN_VERSION" RVF = "lib/unicorn/version.rb" GVF = "GIT-VERSION-FILE" -- cgit v1.2.3-24-ge0c7