<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gunmake/tests/scripts/features/output-sync, branch 3.99.91</title>
<subtitle>GNU make with more features of SunOS make</subtitle>
<id>https://git.pashev.ru/gunmake/atom?h=3.99.91</id>
<link rel='self' href='https://git.pashev.ru/gunmake/atom?h=3.99.91'/>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/'/>
<updated>2013-09-14T05:04:04Z</updated>
<entry>
<title>Support the -Orecurse option properly.</title>
<updated>2013-09-14T05:04:04Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-09-14T05:04:04Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=c5bfa400448a14f4c8d4fc51dd56ea17176e1f84'/>
<id>urn:sha1:c5bfa400448a14f4c8d4fc51dd56ea17176e1f84</id>
<content type='text'>
In this mode we still collect all the output from a given target and
dump it at once.  However we don't treat recursive lines any differently
from non-recursive lines.  Also we don't print enter/leave messages
after every dump.  However we do ensure that we always print them once
to stdout, so the parent make will collect it properly.
</content>
</entry>
<entry>
<title>Enhance the output sync mode.</title>
<updated>2013-09-12T08:07:52Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-09-12T08:07:52Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=deff9dacc97cc20015d3018992f2c77cb7fab102'/>
<id>urn:sha1:deff9dacc97cc20015d3018992f2c77cb7fab102</id>
<content type='text'>
Create a new file, output.c, and collect functions that generate output there.
We introduce a new global context specifying where output should go (to stdout
or to a sync file), and the lowest level output generator chooses where to
write output based on that context.

This allows us to set the context globally, and all operations that write
output (including functions like $(info ...) etc.) will use it.

Removed the "--trace=dir" capability.  It was too confusing.  If you have
directory tracking enabled then output sync will print the enter/leave message
for each synchronized block.  If you don't want that, disable directory
tracking.
</content>
</entry>
<entry>
<title>Add new --trace[=MODE] flags, with --trace=dir</title>
<updated>2013-05-13T05:30:24Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-05-13T05:30:24Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=381baeef7aa4f2c8758a9910ebb97af46c0dd7eb'/>
<id>urn:sha1:381baeef7aa4f2c8758a9910ebb97af46c0dd7eb</id>
<content type='text'>
This mode replaces the previous heuristic setting enabled with -O, where we
would log directory enter/leave for each synchronized output.  Now we only
do that if --trace=dir is given.
</content>
</entry>
<entry>
<title>Rename the -O "job" mode to "line" and "make" to "recurse".</title>
<updated>2013-05-06T00:19:00Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-05-06T00:19:00Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=15f795793906ac8b184b5cf9dcbe515ba9df92ef'/>
<id>urn:sha1:15f795793906ac8b184b5cf9dcbe515ba9df92ef</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Ensure command lines are written synchronously with -O.</title>
<updated>2013-05-05T21:03:51Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-05-05T21:03:51Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=1d992d8fe75f5dbc832cbcfe82e3f56489f7df54'/>
<id>urn:sha1:1d992d8fe75f5dbc832cbcfe82e3f56489f7df54</id>
<content type='text'>
If output-sync is enabled, have make write the command line to the temp file
instead of printing it directly to the screen to ensure that the output is
ordered properly.  Also, remove extraneous enter/leave operations by having
them printed directly when dumping temp file output.
</content>
</entry>
<entry>
<title>Improve sync handling for -Ojob/-Otarget and recursion.</title>
<updated>2013-05-04T17:10:56Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-05-04T17:10:56Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=b8467292c9be14b31c028d472107946770ed977e'/>
<id>urn:sha1:b8467292c9be14b31c028d472107946770ed977e</id>
<content type='text'>
If we are not going to sync a command line then dump any collected output
first to preserve ordering.  Do some code cleanup:
  * Move the handle init to a separate function.
  * Move the temp file truncation to the output function.
  * Remember whether we sync in a variable for readability.
  * Handle EINTR and short writes in child_out().
  * Always call sync_output() in case output_sync was changed due to error.
</content>
</entry>
<entry>
<title>Ensure error messages are printed with sync'd output.</title>
<updated>2013-04-28T23:09:20Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-04-28T23:09:20Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=f88eb23b02088e7549c46231d0dfa4ee8d35a365'/>
<id>urn:sha1:f88eb23b02088e7549c46231d0dfa4ee8d35a365</id>
<content type='text'>
Enhance the child_error() function so that it will write error output to the
child's sync output buffer, if it exists.  If it doesn't the output goes to
stdout/stderr.
</content>
</entry>
<entry>
<title>Small cleanups and fixes.</title>
<updated>2013-04-28T21:31:46Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-04-28T21:31:46Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=8b034b7d18a08d3a2378e5b6fc9fbdd1b658f142'/>
<id>urn:sha1:8b034b7d18a08d3a2378e5b6fc9fbdd1b658f142</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for per-job output sync.</title>
<updated>2013-04-28T05:19:19Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-04-28T05:19:19Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=7f01830927969a8386050617385e59070fe9f34b'/>
<id>urn:sha1:7f01830927969a8386050617385e59070fe9f34b</id>
<content type='text'>
A new flag to the -O/--output-sync, "job", selects a per-job (that is, per
line of a recipe) output synchronization.  To support this move the close of
the temp file out of the sync_output() function and don't do it until we free
the child, since we may call sync_output() multiple times in a given recipe.
When we set up for a new temp file, if we're in per-job mode we truncate the
file and seek to the beginning to re-use it for every job.
</content>
</entry>
<entry>
<title>Change the arg option for -O from numeric to string.</title>
<updated>2013-04-15T17:22:51Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-04-15T17:22:51Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=2bd957a89d7a5995d5cda145d39a8ec1e315bc0d'/>
<id>urn:sha1:2bd957a89d7a5995d5cda145d39a8ec1e315bc0d</id>
<content type='text'>
</content>
</entry>
</feed>
