buildr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Spiewak <djspie...@gmail.com>
Subject Re: 1.4, Windows 7, and a few news
Date Thu, 20 May 2010 03:00:47 GMT
It would be interesting to see what kind of a performance impact shelling
out would have, but I doubt that's even a functional option.  Consider all
the code we have which is dependent on AntWrap.  What about our test
filtering mechanism?  To say nothing of potential third-party extensions
which may use the Java integration (we've been pushing it as a feature, so I
would expect more than a few of them).

One thing we could try is to build a bridge layer based on sockets rather
than raw JNI calls.  We could spin up our JVM in a separate process (perhaps
by shelling out) concurrent to our own startup.  Calls into Java would still
use the same API as at present and would still be synchronous, but there
would be no direct contact between the two environments.  It would still be
a non-trivial effort to implement, but it would likely be less fragile than
the current JNI-based RJB solution.

Daniel

On Wed, May 19, 2010 at 9:54 PM, Antoine Toulme <antoine@lunar-ocean.com>wrote:

> I don't want to move away from MRI, but I think we need to have a way to
> interact with the JVM without RJB.
>
> Either with JRuby, using the VM directly, or by calling javac over the
> command line, like Maven2 does.
>
> I'm willing to do some testing to see if that makes us very slow.
> I happen to have a project on github (under the user intalio, named
> cloud-orbit), which builds with buildr and contains more than 200 projects,
> most of them being very popular. I can use it as a benchmark easily.
>
> On Wed, May 19, 2010 at 18:47, Daniel Spiewak <djspiewak@gmail.com> wrote:
>
> > I think that most of our JRuby 1.5 incompatibilities are superficial.
>  I've
> > seen a couple JIRA issues reported, but nothing too serious.  If that
> were
> > the only thing holding us up, I would vote that we move forward.
> >
> > Unfortunately, as you pointed out, Windows 7 doesn't seem to like us very
> > much.  I'm sure RJB has something to do with it, but it's certainly not
> the
> > whole story.  We're a build system.  That means we have to deal with file
> > permissions, locking, etc.  All of that nasty stuff that drives people
> away
> > from Ant; they come to us because we're supposed to deal with it for
> them!
> > I don't think we're ever going to be able to get away from that.  We
> could
> > probably do more to separate out some of the platform-specific bits
> though,
> > and that would certainly help.  It's never going to be a write once, run
> > anywhere situation though.
> >
> > As for RJB in general, I don't see a way to get away from it without
> > completely dropping support for MRI, and there's still a lot of
> resistance
> > to that idea (quite a bit of it from myself).  I love JRuby as much as
> the
> > next guy (probably more), but its startup time is just too high for the
> > quick, one-off invocations required by a build tool.  With that said, if
> we
> > went JRuby-only, I think most users (myself included) would get used to
> it.
> > After all, Buildr under JRuby is still a whole lot faster than Maven 2.
> > :-)  It's also worth pointing out that there are certain features (e.g.
> > Growl support on OS X) which only work under MRI and are unlikely to ever
> > function under JRuby (though I do have some ideas on that front).
> >
> > Another option might be to roll our own RJB, something which gives us
> more
> > flexibility and greater control over that pesky C backend.  This is
> > actually
> > something that I've done in the past (though my project wasn't as
> > featureful
> > as RJB), and I can positively say that it's not a trivial undertaking.
>  I'm
> > quite certain that we could do better than RJB, but it would take time
> and
> > effort, two things which might be better spent on Buildr itself.  And
> given
> > the innate limitations of a bridge-based solution, we may *never* be able
> > to
> > catch up to what JRuby can do right now.
> >
> > I hate RJB too, but I don't see a lot of options.  One thing which might
> be
> > worth pursuing post-1.4 is a streamlined all-in-one JRuby based
> > distribution
> > which doesn't load RubyGems by default (as Charlie suggested).  If we
> could
> > get JRuby-based *perceived* startup time to within 200-300% of what MRI
> is
> > *
> > now*, I would personally be willing to cut ties with MRI, but that's a
> > really big "if".
> >
> > I do agree with your point about 1.4.  Unfortunately, it seems that we
> have
> > some work to do before we can actually cut a release.  Given the problems
> > with 1.3.5 and RubyGems, I think we should push as hard as we can to get
> > that work done sooner rather than later.
> >
> > Daniel
> >
> > On Wed, May 19, 2010 at 8:31 PM, Antoine Toulme <antoine@lunar-ocean.com
> > >wrote:
> >
> > > We still have no 1.4 release. The two RCs look good on most OSes, but
> > > Windows is not willing to cooperate.
> > >
> > > I installed a Windows 7 VM and tried to run the specs. They mostly
> failed
> > > on
> > > a Rake exception. I can investigate some more.
> > >
> > > I am still not convinced depending on RJB is the future. I would rather
> > > sever the links with it. My experience with Windows 7 showed me how
> hard
> > it
> > > was to install Buildr on it.
> > > As a side note, I'm working on having rubinius support RJB, and Buildr,
> > for
> > > fun and eventually profit. See my fork on github.
> > >
> > > We also JRuby 1.5 now officially out. We should try to support it
> > > correctly,
> > > which means more work on our end.
> > >
> > > All in all I think releasing 1.4 is now compromised, and we need to
> > address
> > > stability issues related to RJB, as well as support JRuby 1.5 and in
> > > general
> > > become more OS independent to survive on the long run.
> > >
> > > Thanks,
> > >
> > > Antoine
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message