I pushed an updated version here:<br><br><a href="http://git.rubini.us/?p=code;a=blob;f=lib/mongrel/http11_parser.rb.rl;h=60c8f3d2519dc1673ef0b4107d40a9df9eca0662;hb=7d246b17efc0ac37db6c241729f6b0e298f49950">http://git.rubini.us/?p=code;a=blob;f=lib/mongrel/http11_parser.rb.rl;h=60c8f3d2519dc1673ef0b4107d40a9df9eca0662;hb=7d246b17efc0ac37db6c241729f6b0e298f49950</a><br>
<br>It's now confirmed working with Mongrel::HttpServer on Rubinius with a "Hello, world!" Mongrel::HttpHandler.<br><br>It can be used to generate a goto-driven FSM using Rubinius assembly:<br><br><a href="http://git.rubini.us/?p=code;a=blob;f=lib/mongrel/http11.rb;h=435f643ea105f7adc486dc06ab960392c3dfeab5;hb=7d246b17efc0ac37db6c241729f6b0e298f49950">http://git.rubini.us/?p=code;a=blob;f=lib/mongrel/http11.rb;h=435f643ea105f7adc486dc06ab960392c3dfeab5;hb=7d246b17efc0ac37db6c241729f6b0e298f49950</a><br>
<br>Some performance figures:<br><br>MRI + C extension, parsing 10,000 requests:<br> 0.150000 0.000000 0.150000 ( 0.152268)<br><br>Rubinius + Rubinius.asm parser, parsing 10,000 requests:<br> 20.500086 0.000000 20.500086 ( 20.500085)<br>
<br>So, presently ~135x slower than the C extension on MRI :)<br><br><font color="#888888">-- <br>Tony Arcieri<br><a href="http://medioh.com/" target="_blank">medioh.com</a></font><br>