tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: asynchronous make(1), anyone?



On Fri, Apr 13, 2012 at 03:46:38AM -0400, Mouse wrote:
 > > Your proposal is that the compiler should immediately start building
 > > anything I save, but somehow it has to avoid choking or distracting
 > > me if it reads a half-written save file, or if I've made linked
 > > changes to a number of files and save them in the wrong order, or if
 > > I've simply saved something out of the editor that's uncompilable
 > > because I'm not done hacking on it yet.
 > 
 > I think you've missed some important aspects.
 > 
 > Choking is not an issue.  If it chokes, a restart once the rest of the
 > changes have been saved will deal with it nicely.
 >
 > Distracting is an issue only if failures are actively reported to the
 > user without the user expressing interest in them.  I've been assuming
 > that's not done; there's certainly no reason it has to be done.

Well, yes, but how is the background job supposed to be able to tell
the difference between "I just saved something half-baked, don't
distract me because it doesn't compile" and "I just saved something I
thought was done, so I want to see if it fails"?

There are various ways an IDE might try to figure that out, but in the
shell you're pretty much limited to typing something.

Like, say, "make", which is what we do now.

 > What it needs is the ability to do something like a union mount, but
 > visible only to a particular process and its children.  Then the build
 > runs in the union mount; if it succeeds, then the user has the option
 > of pushing everything from the union mount to the underlying space
 > ("commit", let's call this); if it fails, even if it goes wild and
 > destroys all my sources, it destroys them only in the upper layer, an
 > upper layer that gets discarded and a new one created when the next
 > speculative build starts.

I suppose that would work, at least from the point of view of not
destroying things by accident. It doesn't solve the user interface
problem though.

 > I'm not sure this would save much.  It would save the effort of typing
 > ^X^E, or doing windowswitch-uparrow-enter, or whatever the gesture to
 > do a build is.  It would save the time required to do that.

Not if you have to go poke something to see the results...

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index