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&#39;s now confirmed working with Mongrel::HttpServer on Rubinius with a &quot;Hello, world!&quot; 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>&nbsp; 0.150000&nbsp;&nbsp; 0.000000&nbsp;&nbsp; 0.150000 (&nbsp; 0.152268)<br><br>Rubinius + Rubinius.asm parser, parsing 10,000 requests:<br>&nbsp;20.500086&nbsp;&nbsp; 0.000000&nbsp; 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>