Hi Nathan, yes, that's basically what you need to do: 1- rewrite the C (or Java) bits of the http parser in C# and let Ragel generate the rest 2- wrap everything up in a layer to expose the needed methods to IronRuby 3- make sure to require your newly built http11.dll in the ruby part of the mongrel library 4- have fun.
I did the same for hpricot and json (whose parsers are generated using Ragel), so I guess that should work for Mongrel too :-) On Wed, Oct 7, 2009 at 03:09, Nathan Stults <nathan_stu...@hsihealth.com> wrote: > Thanks for the tip. It looks like the Http Parser is generated via > Ragel, and it appears there is a Java version of the language file, so > theoretically all I should have to do is learn Ragel and port that file > to C#, piece of cake :) Then I suppose I'd need a patched version of > mongrel that required the new .NET HTTP parser dll instead of the C > version? Is that how that would work? > > -----Original Message----- > From: ironruby-core-boun...@rubyforge.org > [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Jimmy > Schementi > Sent: Tuesday, October 06, 2009 6:00 PM > To: ironruby-core@rubyforge.org > Subject: Re: [Ironruby-core] Native Extensions > > Native extension support is not on the roadmap for 1.0. Win32OLE support > is actually in there now, because of the Dynamic Language Runtime's > support for dispatching to COM objects. So IronRuby's version of > win32ole.rb uses IronRuby's OLE support, rather than depending on native > code. > > The current work-around for libraries which use native code to > communicate with the OS or Ruby is to rewrite those using .NET so > IronRuby can use them. Mongrel is actually \mostly Ruby code, as most > Ruby libraries which use native code; there is usually a very small part > of the library which depends on native code. For Mongrel, the HTTP 1.1 > parser is the only native piece; rewriting that in C# would allow you to > run Mongrel on .NET. > > IMO, after 1.0 would be the time to consider supporting the native Ruby > API. > > ~Jimmy > ________________________________________ > From: ironruby-core-boun...@rubyforge.org > [ironruby-core-boun...@rubyforge.org] on behalf of Nathan Stults > [li...@ruby-forum.com] > Sent: Tuesday, October 06, 2009 4:18 PM > To: ironruby-core@rubyforge.org > Subject: [Ironruby-core] Native Extensions > > I noticed on the road-map this item under .NET Interop: > > [P3] COM: for Win32OLE compatibility > > Is that the same thing as supporting native extensions? If not, is it on > the roadmap to support such a thing? Also, is there a workaround, like > replacing files in the gem installation with a .NET wrapper? I'd love to > use IronRuby to embed Thin or Mongrel in my .NET services, but from from > my few experiments it looks like most of the networking libraries these > servers use tend to rely on native dll's. > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > -- Daniele Alessandri http://www.clorophilla.net/blog/ http://twitter.com/JoL1hAHN _______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core