diff options
author | Paul Smith <psmith@gnu.org> | 2013-09-12 04:07:52 -0400 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2013-09-12 04:07:52 -0400 |
commit | deff9dacc97cc20015d3018992f2c77cb7fab102 (patch) | |
tree | 3da393310f9936a22aa211e6870a23e98b6fdebe /ChangeLog | |
parent | 40a49f244da5b417af8bede84ac221cee2318d88 (diff) | |
download | gunmake-deff9dacc97cc20015d3018992f2c77cb7fab102.tar.gz |
Enhance the output sync mode.
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.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 41 |
1 files changed, 41 insertions, 0 deletions
@@ -1,3 +1,44 @@ +2013-09-12 Paul Smith <psmith@gnu.org> + + Rework output to handle synchronization and directory logging more + reliably. + + * output.c: New file. Implement lazy synchronization and + directory logging so that we manage them "just in time", and the + destination of the output is set via a global state variable. + * output.h: New file. + * function.c (func_shell_base): Ensure the output is set up before + running a shell command, in case it writes to stderr. + (func_error): Use outputs() to generate output. + * job.h (struct child): Add struct output to track the child's output. + * job.c: Use struct output in the child structure to track output. + (child_out, sync_init, assign_child_tempfiles, pump_from_tmp) + (acquire_semaphore, release_semaphore, sync_output): Move most of + the output_sync handling to output.c. + (child_error): Set output, then use simple message() and error() + not _s versions. + * main.c (log_working_directory): Moved to output.c + (trace_option, decode_trace_flags) Remove. Remove support for + different trace modes; we don't use it anymore. + (die) Invoke output_close() before we exit. + * misc.c (message_s, error_s): Removed; no longer needed. + (message, error, fatal, perror_with_name, pfatal_with_name): Moved + to output.c. + * makeint.h: Remove message_s(), error_s(), and + log_working_directory(). Remove the TRACE_* macros. + * doc/make.texi: Enhance documentation for output sync, and remove + MODE assignment for --trace. + * make.1: Remove MODE assignment for --trace. + * Makefile.am: Add new files. + * NMakefile.template: Ditto. + * SMakefile.template: Ditto. + * build_w32.bat: Ditto. + * dosbuild.bat: Ditto. + * make.lnk: Ditto. + * make_nsvc_net2003.vcproj: Ditto. + * makefile.vms: Ditto. + * po/POTFILES.in: Ditto. + 2013-07-22 Paul Smith <psmith@gnu.org> * implicit.c (pattern_search): Use PARSE_SIMPLE_SEQ() even for |