Ok, enough people are now showing an interest in Nailgun I think we
should try to make it work. So here's the deal.
I have a patch that includes nailgun java stuff in the JRuby jar by
default, includes tool/nailgun in the bin dist, removes the separate
jruby-ng and jruby-ng-server scripts, and adds --ng-server and --ng
flags to the normal jruby script. This should make the standard dist
always have everything you need to run with nailgun, with the only
additional step being that you need to build the "ng" executable.
I have prepared this because Yehuda Katz officially promised me he'd
help us make NG work better enough that people can use it. So there's a
few things to do:
- Ideally, jruby --ng would be the only flag, and it will start up a
server (or n servers) as needed to handle commands. If that's desirable,
we need work to make it happen.
- I believe having multiple commands run at the *same time* in a given
server is probably asking for trouble; they'll grab each others IO
streams, they'll manipulate shared JVM data structure, and they'll load
conflicting native libraries. So I think what we really want is a
server-management setup that will keep a server process hot if necessary
but spin up new ones for concurrent requests. Since most people want
this for command-line tasks like rake or testing, I think multiple
servers would end up being rare. Thoughts?
- The ng client needs to pass signals along to the server, and the
server needs modifications to handle signals that way. This also plays
into the one-command-at-a-time thing, since we *could* just have the ng
client forward signals via normal signal calls, rather than pipe them
over the socket. This obviously only works if we have a single command
running in the server at a time.
I think it's possible to get this running pretty well...at least well
enough for people doing a lot of TDD to have a faster edit/test cycle.
Who's with me, and who thinks they might be able to help?
- Charlie
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email