Message ID | 20230420155723.1711048-8-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | docs: various (style, punctuation and typo fixes) | expand |
Alex Bennée <alex.bennee@linaro.org> wrote: > While not explicitly disallowing header macro abuse (because that > would make us hypocrites) lets at least address some things to think > about. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > docs/devel/style.rst | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/docs/devel/style.rst b/docs/devel/style.rst > index 68aa776930..5bc6f2f095 100644 > --- a/docs/devel/style.rst > +++ b/docs/devel/style.rst > @@ -300,6 +300,20 @@ putting those into qemu/typedefs.h instead of including the header. > > Cyclic inclusion is forbidden. > > +Generative Includes > +------------------- > + > +QEMU makes fairly extensive use of the macro pre-processor to > +instantiate multiple similar functions. While such abuse of the macro > +processor isn't discouraged it can make debugging and code navigation > +harder. You should consider carefully if the same effect can be > +achieved by making it easy for the compiler to constant fold or using > +python scripting to generate grep friendly code. > + > +If you do use template header files they should be named with the > +``.c.inc`` or ``.h.inc`` suffix to make it clear they are being > +included for expansion. > + > C types > ======= Reviewed-by: Juan Quintela <quintela@redhat.com> Fair enough.
diff --git a/docs/devel/style.rst b/docs/devel/style.rst index 68aa776930..5bc6f2f095 100644 --- a/docs/devel/style.rst +++ b/docs/devel/style.rst @@ -300,6 +300,20 @@ putting those into qemu/typedefs.h instead of including the header. Cyclic inclusion is forbidden. +Generative Includes +------------------- + +QEMU makes fairly extensive use of the macro pre-processor to +instantiate multiple similar functions. While such abuse of the macro +processor isn't discouraged it can make debugging and code navigation +harder. You should consider carefully if the same effect can be +achieved by making it easy for the compiler to constant fold or using +python scripting to generate grep friendly code. + +If you do use template header files they should be named with the +``.c.inc`` or ``.h.inc`` suffix to make it clear they are being +included for expansion. + C types =======
While not explicitly disallowing header macro abuse (because that would make us hypocrites) lets at least address some things to think about. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- docs/devel/style.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+)