22 Nov 2009 09:18
Unicorn on Rubinius?
Eric Wong <normalperson <at> yhbt.net>
2009-11-22 08:18:26 GMT
2009-11-22 08:18:26 GMT
Hi all, I've been working on the Unicorn HTTP server mostly in Ruby but the C/Ragel HTTP parser is descended from the Mongrel one. I've made the parser compatible with Rubinius 0.13 as of commit c89ce4fb958d79009feb18cea39b14ddf8b11ff5 in unicorn.git, however the pure-Ruby parts do not appear to pass tests at the moment. The Ruby parts of Unicorn are extremely *nix-oriented and uses a lot of things that only work on *nix-like systems. However, everything we do is currently known to be working under 1.9.1, 1.8.7 and 1.8.6 (and I'm committed to continue supporting Unicorn on MRI). Since I'm already short on time/resources and unfamiliar with Rubinius internals (or C++), but I thought you guys might be interested in getting Unicorn to run under Rubinius since all the currently failing parts are still pure Ruby, just not commonly-used Ruby. Unicorn does a lot of Unix-only things that are uncommon in most Ruby code: * Working with unlinked Files (empty ones are also shared across parent+child and we do fchmod() on them). We also buffer large uploads to unlinked File objects. This seems to fail immediately at startup once the master forks off the worker since each worker gets a file descriptor it shares with the master. * Iterating through ObjectSpace for File objects with the O_APPEND flag and File#sync=true, and then doing File#reopen on them.(Continue reading)
RSS Feed