Forum: Mongrel Mongrel, cross compilation, Echoe and rake-compiler

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
E7cff3cfd41c495e1012227d7dc24202?d=identicon&s=25 Luis Lavena (luislavena)
on 2009-04-27 02:49
(Received via mailing list)
Hello Guys, mainly Evan,

With the goal to move One-Click Ruby Installer to use MinGW (GCC)
compiler, I found there is no binary for mongrel for that platform.

Because of that, the migration for lot of folks will require install
the development toolkit, which I'm trying to avoid.

Being the maintainer of the Windows builds of Mongrel, been wanted to
upgrade it to use rake-compiler project.

rake-compiler has been out for a while, and several projects has been
migrated to it successfully, including ruby-ffi, johnson, nokogiri and
others.

Now, a few questions before I invest a lot of time with mongrel
repository.

I'm working over "master" at fauna repository:

http://github.com/fauna/mongrel

My plan is the following:

Ensure both current and new One-Click works with Mongrel.
Ensure building binaries for it either native or cross platform works
flawlessly

Now, I have a few blockers:

Dunno which branch is the proper one. last time I worked on 1.2
improving MinGW support and 1.1.5 got out without taking those
patches.

Echoe extension compilation is interfering with rake-compiler one, is
there a way to disable it?

Elliot Cable left a message when I first imported rake-compiler to
GitHub:

http://github.com/luislavena/rake-compiler/commit/...

Again, the goal of rake-compiler is not just simplify the compilation,
but also provide something that Echoe or Hoe doesn't: cross
compilation.

Well, I've shared my plan, what do you guys think?

Cheers,
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
F8634aca904bc63cb047cb1bd93bdc74?d=identicon&s=25 Evan Weaver (eweaver)
on 2009-04-27 03:48
(Received via mailing list)
I think that's a good plan. Echoe has some rudimentary
cross-compilation (used for JRuby), but not for Mingw. Your way is
better.

My plan is as so:

Gossamer + Rack launch script + some optimizations/bugfixes + Ruby 1.9
compat = more or less Mongrel 2.0.

This puts you in a tough spot, but it's probably best to branch off
Gossamer and let me forward-port whatever is missing. The 1.x branches
are effectively dead, except for a Ruby 1.9 compat update (v1.1.6).

I promise to get to this every weekend, and don't, so I'll stop
promising. I may be able to squeeze some time out of work to spend on
it.

Evan
E7cff3cfd41c495e1012227d7dc24202?d=identicon&s=25 Luis Lavena (luislavena)
on 2009-04-27 04:02
(Received via mailing list)
On Sun, Apr 26, 2009 at 10:12 PM, Evan Weaver <evan@cloudbur.st> wrote:
> I think that's a good plan. Echoe has some rudimentary
> cross-compilation (used for JRuby), but not for Mingw. Your way is
> better.
>

rake-compiler still doesn't support JRuby, but perhaps a JavaJarTask
is coming, but I'm not holding my breathe until I see these patckes
;-)

> My plan is as so:
>
> Gossamer + Rack launch script + some optimizations/bugfixes + Ruby 1.9
> compat = more or less Mongrel 2.0.
>

The work on this has already started? Gossamer is the codename?

> This puts you in a tough spot, but it's probably best to branch off
> Gossamer and let me forward-port whatever is missing. The 1.x branches
> are effectively dead, except for a Ruby 1.9 compat update (v1.1.6).
>

I've no problem working with bleeding edge stuff, as long I can find it
:-)

> I promise to get to this every weekend, and don't, so I'll stop
> promising. I may be able to squeeze some time out of work to spend on
> it.
>

No rush, my only concern is ensure Mongrel itself works on the
upcoming One-Click Installer. Got all the details ironed to do a
release tonight, and when started to install in a sandbox found that
Mongrel wasn't working.

Anyhow, now I have a Mac so 3 way testing between Linux, OSX and
Windows is now possible form my side, so promise not break anything
:-)

Cheers,
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
18813f71506ebad74179bf8c5a136696?d=identicon&s=25 Eric Wong (Guest)
on 2009-04-27 04:17
(Received via mailing list)
Evan Weaver <evan@cloudbur.st> wrote:
> My plan is as so:
>
> Gossamer + Rack launch script + some optimizations/bugfixes + Ruby 1.9
> compat = more or less Mongrel 2.0.

Cool.  I'm pretty sure Unicorn and Gossamer are both 1.9-compatible (all
the tests manage to pass), but I don't have any real code running
on 1.9 yet (and nothing in production on 1.8, either, yet).

Let me know if there are any optimizations/bugfixes in particular I can
help with, too.
18813f71506ebad74179bf8c5a136696?d=identicon&s=25 Eric Wong (Guest)
on 2009-04-27 04:17
(Received via mailing list)
Luis Lavena <luislavena@gmail.com> wrote:
> On Sun, Apr 26, 2009 at 10:12 PM, Evan Weaver <evan@cloudbur.st> wrote:
> > My plan is as so:
> >
> > Gossamer + Rack launch script + some optimizations/bugfixes + Ruby 1.9
> > compat = more or less Mongrel 2.0.
>
> The work on this has already started? Gossamer is the codename?

Did you miss my earlier message posted to this list?

http://rubyforge.org/pipermail/mongrel-development...

> > This puts you in a tough spot, but it's probably best to branch off
> > Gossamer and let me forward-port whatever is missing. The 1.x branches
> > are effectively dead, except for a Ruby 1.9 compat update (v1.1.6).
>
> I've no problem working with bleeding edge stuff, as long I can find it :-)

It's a branch of Unicorn and in the same repositories:

  git://git.bogomips.org/unicorn.git
  http://git.bogomips.org/unicorn.git
  git://repo.or.cz/unicorn.git (mirror)
  http://repo.or.cz/r/unicorn.git (mirror)

Have fun!
E7cff3cfd41c495e1012227d7dc24202?d=identicon&s=25 Luis Lavena (luislavena)
on 2009-04-27 16:05
(Received via mailing list)
On Sun, Apr 26, 2009 at 10:59 PM, Eric Wong <normalperson@yhbt.net>
wrote:
>
> http://rubyforge.org/pipermail/mongrel-development...
>

Actually ignored for the simple sake that states *nix compatibility
only, which is not my case since I'm on Windows

>
> It's a branch of Unicorn and in the same repositories:
>
>        git://git.bogomips.org/unicorn.git
>        http://git.bogomips.org/unicorn.git
>        git://repo.or.cz/unicorn.git (mirror)
>        http://repo.or.cz/r/unicorn.git (mirror)
>
> Have fun!
>

Will take a look, keeping in mind that *must* work across all the
platforms, at least cleanly like Mongrel does.

--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
18813f71506ebad74179bf8c5a136696?d=identicon&s=25 Eric Wong (Guest)
on 2009-04-27 16:18
(Received via mailing list)
Luis Lavena <luislavena@gmail.com> wrote:
> > Did you miss my earlier message posted to this list?
> >
> > http://rubyforge.org/pipermail/mongrel-development...
> >
>
> Actually ignored for the simple sake that states *nix compatibility
> only, which is not my case since I'm on Windows

<snip>

> Will take a look, keeping in mind that *must* work across all the
> platforms, at least cleanly like Mongrel does.

Of course, this is why Unicorn itself is a separate package from
Mongrel.

I think the UNIX-only stuff is mainly confined to the HttpServer class
where the unportable stuff with forking, shared FDs, signals, pipes are.
That and the SocketHelper that can bind UNIX domain sockets.

The rest of it, mainly http_{request,response}.rb, is stripped-down from
Mongrel to only work with Rack and should be droppable into Mongrel.

The C/Ragel http11 parser interface has been simplified a lot with some
minor speed improvements.  It doesn't use any new functions so it should
be fine on Windows . The JRuby version will need to be updated to use
the simpler interface (or http_request to use the old interface).  I've
been planning on stealing (or writing) a pure-Ruby parser for Unicorn,
as well...
This topic is locked and can not be replied to.