On 11/21/20 9:52 AM, Rob Landley wrote: > Because it broke watch. (When you fill the screen it never displays the last > line of output until you hit "q".) And it broke tee, and it broke... > > Why did it go in again? What was the problem being solved? I've noticed that > I'm > using a lot more dprintf(1, "blah") these days just to prevent having to deal > with the fact that xprintf() got broken and no longer actually produces output > until random future things happen...
It's because adding a --line-buffered option seemed crazy: http://lists.landley.net/pipermail/toybox-landley.net/2019-April/010342.html And because xprintf() got nerfed to be useless (not actually flush). Watch is actually calling xprintf(), it just doesn't _matter_. Great: stdout needs nagle's algorithm. Does anything OTHER than sed and grep care about this particular performance weirdness? I remember adding this buffering broke password prompts, and I really kind of want it to die in a fire. I _am_ tempted to replace every printf with dprintf(1, ) just because THAT WORKS RELIABLY and what we're doing does not. (The two hard problems in computer science remain cache invalidation, naming things, and off by one errors. Unnecessary buffering is premature optimization.) > Rob Rob _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net