<feed
xmlns="http://www.w3.org/2005/Atom"><id>https://yhbt.net/unicorn/NEWS.atom.xml</id><title>unicorn news</title><subtitle>Rack HTTP server for fast clients and Unix</subtitle><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn/NEWS.html"/><updated>2021-12-25T18:00:22Z</updated><entry><title>unicorn 6.1.0</title><updated>2021-12-25T18:00:22Z</updated><published>2021-12-25T18:00:22Z</published><author><name>Eric Wong</name><email>BOFH@YHBT.net</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v6.1.0"/><id>https://yhbt.net/unicorn.git/tag/?id=v6.1.0</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>This release reduces CPU usage for Linux 4.5+ in most cases.
See "[PATCH 6/6] use EPOLLEXCLUSIVE on Linux 4.5+" for more details:
  https://yhbt.net/unicorn-public/20211001030923.26705-7-bofh@yhbt.net/

There's a couple of updates for Ruby 3.1, but we've finally
started relying on Ruby 2.0.0 features after 9 years :P
(so Ruby 1.9.3 users are stuck with older versions).

And the usual round of doc updates and some build speedups.

13 changes by the Bozo Doofus maintainer since v6.0.0:

      test_util: less excessive encoding tests
      drop Ruby 1.9.3 support, require 2.0+ for now
      drop unnecessary IO#close_on_exec=true assignment
      extconf.rb: get rid of unnecessary checks
      makefile: reduce unnecessary rebuilds
      HACKING: drop outdated information about pandoc
      http_server: get rid of Process.ppid check
      worker_loop: get rid of select() avoidance hack
      use EPOLLEXCLUSIVE on Linux 4.5+
      allow Ruby to deduplicate remaining globals
      epollexclusive: remove rb_gc_force_recycle call
      drop Ruby version warning, fix speling errer
      doc: v3 .onion updates, nntp =&gt; nntps, minor wording changes
</pre></div></content></entry><entry><title>unicorn 6.0.0 - no more recycling Rack env</title><updated>2021-03-17T06:38:58Z</updated><published>2021-03-17T06:38:58Z</published><author><name>Eric Wong</name><email>bofh@yhbt.net</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v6.0.0"/><id>https://yhbt.net/unicorn.git/tag/?id=v6.0.0</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>This release allocates a new Rack `env' hash for every request.
This is done for safety with internally-(thread|event)-using Rack
apps which expect to use `env' after the normal Rack response is
complete, but without relying on rack.hijack[1].  Thanks to
Dirkjan Bussink &lt;d.bussink@gmail.com&gt; for the patch:

  https://yhbt.net/unicorn-public/66A68DD8-83EF-4C7A-80E8-3F1F7AB31670@github.com/

The major version is bumped since:

1) there are performance regressions for some simple Rack apps

2) unsupported 3rd-party monkey patches which previously
   relied on this behavior may be broken (our version of
   OobGC was).

The test suite is also more reliable on multi-core systems
and Ruby 3.x.

[1] thread from 2017 around rack.hijack safety:
    https://yhbt.net/unicorn-public/CAAtdryPG3nLuyo0jxfYW1YHu1Q+ZpkLkd4KdWC8vA46B5haZxw@mail.gmail.com/
</pre></div></content></entry><entry><title>unicorn 5.8.0 - rack.after_reply support</title><updated>2020-12-24T20:39:04Z</updated><published>2020-12-24T20:39:04Z</published><author><name>Eric Wong</name><email>bofh@yhbt.net</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v5.8.0"/><id>https://yhbt.net/unicorn.git/tag/?id=v5.8.0</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>This release supports env['rack.after_reply'] which allows
rack middleware to pass lambdas to be executed after the client
connection is closed, matching functionality in Puma.

Thanks to Blake Williams for this patch:
https://yhbt.net/unicorn-public/9873E53C-04D3-4759-9678-CA17DBAEF7B7@blakewilliams.me/

The top-level of our website is now simpler and no longer
redundant with the contents of https://yhbt.net/unicorn/README.html
(which contains the old content)
</pre></div></content></entry><entry><title>unicorn 5.7.0</title><updated>2020-09-08T08:41:18Z</updated><published>2020-09-08T08:41:18Z</published><author><name>Eric Wong</name><email>bofh@yhbt.net</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v5.7.0"/><id>https://yhbt.net/unicorn.git/tag/?id=v5.7.0</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>Relaxed Ruby version requirements for Ruby 3.0.0dev.
Thanks to Jean Boussier for testing
</pre></div></content></entry><entry><title>unicorn 5.6.0 - early_hints support</title><updated>2020-07-26T01:52:14Z</updated><published>2020-07-26T01:52:14Z</published><author><name>Eric Wong</name><email>bofh@yhbt.net</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v5.6.0"/><id>https://yhbt.net/unicorn.git/tag/?id=v5.6.0</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>This release adds support for the early_hints configurator
directive for the 'rack.early_hints' API used by Rails 5.2+.

Thanks to Jean Boussier for the patch.

Link: https://yhbt.net/unicorn-public/242F0859-0F83-4F14-A0FF-5BE392BB01E6@shopify.com/
</pre></div></content></entry><entry><title>unicorn 5.5.5</title><updated>2020-04-27T02:48:39Z</updated><published>2020-04-27T02:48:39Z</published><author><name>Eric Wong</name><email>bofh@yhbt.net</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v5.5.5"/><id>https://yhbt.net/unicorn.git/tag/?id=v5.5.5</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>This release fixes a bug for users of multiple listeners setups
where a busy listen socket could starve other listeners.

Thanks to Stan Hu for reporting and testing.

No need to upgrade if you're using a single listen socket.

Link: https://yhbt.net/unicorn-public/CAMBWrQ=Yh42MPtzJCEO7XryVknDNetRMuA87irWfqVuLdJmiBQ@mail.gmail.com/
</pre></div></content></entry><entry><title>unicorn 5.5.4</title><updated>2020-03-24T22:10:23Z</updated><published>2020-03-24T22:10:23Z</published><author><name>Eric Wong</name><email>bofh@yhbt.net</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v5.5.4"/><id>https://yhbt.net/unicorn.git/tag/?id=v5.5.4</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>One change to improve RFC 7230 conformance in the HTTP parser:

https://yhbt.net/unicorn-public/20200319022823.32472-1-bofh@yhbt.net/
</pre></div></content></entry><entry><title>unicorn 5.5.3</title><updated>2020-01-31T20:39:14Z</updated><published>2020-01-31T20:39:14Z</published><author><name>Eric Wong</name><email>bofh@yhbt.net</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v5.5.3"/><id>https://yhbt.net/unicorn.git/tag/?id=v5.5.3</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>Documentation updates to switch bogomips.org to yhbt.net since
the .org TLD won't be affordable in the near future.

There's also a few minor test cleanups.
</pre></div></content></entry><entry><title>unicorn 5.5.2</title><updated>2019-12-20T02:08:53Z</updated><published>2019-12-20T02:08:53Z</published><author><name>Eric Wong</name><email>e@80x24.org</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v5.5.2"/><id>https://yhbt.net/unicorn.git/tag/?id=v5.5.2</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>Thanks to Terry Scheingeld, we now workaround a Ruby bug
and can now run with taint checks enabled:
&lt;https://bugs.ruby-lang.org/issues/14485&gt;
&lt;https://bogomips.org/unicorn-public/CABg1sXrvGv9G6CDQxePDUqTe6N-5UpLXm7eG3YQO=dda-Cgg7A@mail.gmail.com/&gt;

There's also a few documentation updates and building packages
from source is easier since pandoc is no longer a dependency
(and I can no longer afford the bandwidth or space to install
it).

Eric Wong (7):
      test/benchmark/ddstream: demo for slowly reading clients
      test/benchmark/readinput: demo for slowly uploading clients
      test/benchmark/uconnect: test for accept loop speed
      examples/unicorn@.service: note the NonBlocking flag
      Merge remote-tracking branch 'origin/ts/tmpio'
      test_util: get rid of some unused variables in tests
      doc: replace pandoc-"Markdown" with real manpages

Terry Scheingeld (1):
      tmpio: workaround File#path being tainted on unlink
</pre></div></content></entry><entry><title>unicorn 5.5.1</title><updated>2019-05-06T06:40:39Z</updated><published>2019-05-06T06:40:39Z</published><author><name>Eric Wong</name><email>e@80x24.org</email></author><link
rel="alternate"
type="text/html"
href="https://yhbt.net/unicorn.git/tag/?id=v5.5.1"/><id>https://yhbt.net/unicorn.git/tag/?id=v5.5.1</id><content
type="xhtml"><div
xmlns="http://www.w3.org/1999/xhtml"><pre>This release fixes and works around issues from v5.5.0 (2019-03-04)

Stephen Demjanenko worked around a pipe resource accounting bug
present in old Linux kernels.  Linux 3.x users from 3.16.57 and
on are unaffected.  Linux 4.x users from 4.9 and on are
unaffected.

https://bogomips.org/unicorn-public/1556922018-24096-1-git-send-email-sdemjanenko@gmail.com/

Stan Pitucha reported a bug with the old `unicorn_rails' wrapper
(intended for Rails 2.x users) which was promptly fixed by
Jeremy Evans:

https://bogomips.org/unicorn-public/CAJ2_uEPifcv_ux4sX=t0C4zHTHGhqVfcLcSB2kTU3Rb_6pQ3nw@mail.gmail.com/

There's also some doc updates to warn users off `unicorn_rails';
the homepage is now energy-efficient for OLEDs and CRTs;
and I'm no longer advertising mailing list subscriptions
(because I hate centralization and mail archives are the priority)

Eric Wong (3):
      doc: unicorn_rails: clarify that it is intended for rails &lt;= 2.x
      doc: stop advertising mailing list subscription
      doc: switch homepage to dark216

Jeremy Evans (1):
      unicorn_rails: fix regression with Rails &gt;= 3.x in app build

Stephen Demjanenko (1):
      Rescue failed pipe resizes due to permissions
</pre></div></content></entry></feed>