On Sat, 2021-02-20 at 17:49 +0100, David Brown wrote: > > > On 20/02/2021 16:46, David Malcolm wrote: > > On Sat, 2021-02-20 at 15:25 +0100, David Brown wrote: > > > > > > I think we need to think about both of these use-cases e.g. as we > > implement our diagnostics, and that we should mention this > > distinction > > in our UX guidelines... > > > > > Is it possible to distinguish these uses, and then have different > > > default flags? Perhaps something as simple as looking at the > > > name > > > used > > > to call the compiler - "cc" or "gcc" ? > > > > > > > ...but I'm wary of having an actual distinction between them in the > > code; it seems like a way to complicate things and lead to "weird" > > build failures. > > > > Fair enough.
[...snip...] How about the following addition to the User Experience Guidelines? gcc/ChangeLog: * doc/ux.texi: Add subsection contrasting interactive versus batch usage of GCC. --- gcc/doc/ux.texi | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gcc/doc/ux.texi b/gcc/doc/ux.texi index fdba5da1598..28d5994d10f 100644 --- a/gcc/doc/ux.texi +++ b/gcc/doc/ux.texi @@ -86,6 +86,31 @@ information to allow the user to make an informed choice about whether they should care (and how to fix it), but a balance must be drawn against overloading the user with irrelevant data. +@subsection Sometimes the user didn't write the code + +GCC is typically used in two different ways: + +@itemize @bullet +@item +Semi-interactive usage: GCC is used as a development tool when the user +is writing code, as the ``compile'' part of the ``edit-compile-debug'' +cycle. The user is actively hacking on the code themself (perhaps a +project they wrote, or someone else's), where they just made a change +to the code and want to see what happens, and to be warned about +mistakes. + +@item +Batch rebuilds: where the user is recompiling one or more existing +packages, and GCC is a detail that's being invoked by various build +scripts. Examples include a user trying to bring up an operating system +consisting of hundreds of packages on a new CPU architecture, where the +packages were written by many different people, or simply rebuilding +packages after a dependency changed, where the user is hoping +``nothing breaks'', since they are unfamiliar with the code. +@end itemize + +Keep both of these styles of usage in mind when implementing diagnostics. + @subsection Precision of Wording Provide the user with details that allow them to identify what the -- 2.26.2