stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: runall.sh replacement
Date Fri, 21 Jul 2006 21:35:22 GMT
Andrew Black wrote:
> Greetings all
> 
> Attached is a slightly modified version of the patch from yesterday.
> Changes from the previous version:
>     - Compatibility layer support (via --compat/--nocompat switches)
>     - Handle failure to fork()
> 
> I suspect that some changes may be required before submission, but I 
> also consider this to be in a mostly usable state.
[...]

Very good! We do need to make a few changes. One is making sure it's
(also) valid C++ (since it's now being compiled with C++ compilers).
I suspect gcc might let it slide but sigaction() is a C interface
that takes a C (i.e., extern "C") function, so handle_alrm() needs
to be decorated with extern "C" in C++ (i.e., when __cplusplus is
#defined).

The other change I'd like to make is to the names of some of the
files :) Here's what I'm thinking:

   watchdog.{cpp,h}   --> exec.{cpp,h}
   parse_opts.{cpp,h} --> cmdopt.{cpp,h}
   util.{cpp,h}       --> ???

I'm not too fond of files named util etc. because they end up being
collections of all kinds of odds and ends that don't seem to fit
anywhere else, and make a convenient excuse not thinking about the
logical organization of a program.

We have two functions in util.cpp: terminate() (which should be
renamed to something that better expresses the purpose of the
function -- i.e., to issue a diagnostic *and* then [maybe] exit),
and rw_basename(), the replacement for the UNIX basename().

rw_basename() is only called from runall.c, so it might as well
be defined (static) there.

terminate() could go in its own file, say diag.{cpp,h}, after
being renamed to something like issue_diag(). The whole program
should use issue_diag() for all types of diagnostic messages,
i.e, for both errors and warnings (with the distinction being
that the latter don't cause the program to exit with a non-zero
status but allow it to continue).

There are other tweaks that I'd like to make to the code but those
can be made after the commit. The file name changes should be made
prior to it.

Could you make the naming changes and resubmit the patch? Also,
in your ChangeLog, please avoid using wildcards instead of file
names and instead spell out the name of each file in full.

Thanks!
Martin

Mime
View raw message