[PATCH 0/3] target: Rename headers using .def extension to .h.inc

Philippe Mathieu-Daudé posted 3 patches 1 year, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20221025235006.7215-1-philmd@linaro.org
Maintainers: Laurent Vivier <laurent@vivier.eu>, Richard Henderson <richard.henderson@linaro.org>, David Hildenbrand <david@redhat.com>, Cornelia Huck <cohuck@redhat.com>, Thomas Huth <thuth@redhat.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
target/m68k/{qregs.def => qregs.h.inc}                 |  0
target/m68k/translate.c                                |  4 ++--
target/s390x/tcg/{insn-data.def => insn-data.h.inc}    |  2 +-
.../s390x/tcg/{insn-format.def => insn-format.h.inc}   |  0
target/s390x/tcg/translate.c                           | 10 +++++-----
target/tricore/{csfr.def => csfr.h.inc}                |  0
target/tricore/translate.c                             |  4 ++--
7 files changed, 10 insertions(+), 10 deletions(-)
rename target/m68k/{qregs.def => qregs.h.inc} (100%)
rename target/s390x/tcg/{insn-data.def => insn-data.h.inc} (99%)
rename target/s390x/tcg/{insn-format.def => insn-format.h.inc} (100%)
rename target/tricore/{csfr.def => csfr.h.inc} (100%)
[PATCH 0/3] target: Rename headers using .def extension to .h.inc
Posted by Philippe Mathieu-Daudé 1 year, 6 months ago
We use the .h.inc extension to include C headers. To be consistent
with the rest of the codebase, rename the C headers using the .def
extension.

IDE/tools using our .editorconfig / .gitattributes will leverage
this consistency.

Philippe Mathieu-Daudé (3):
  target/m68k: Rename qregs.def -> qregs.h.inc
  target/s390x: Rename insn-data/format.def -> insn-data/format.h.inc
  target/tricore: Rename csfr.def -> csfr.h.inc

 target/m68k/{qregs.def => qregs.h.inc}                 |  0
 target/m68k/translate.c                                |  4 ++--
 target/s390x/tcg/{insn-data.def => insn-data.h.inc}    |  2 +-
 .../s390x/tcg/{insn-format.def => insn-format.h.inc}   |  0
 target/s390x/tcg/translate.c                           | 10 +++++-----
 target/tricore/{csfr.def => csfr.h.inc}                |  0
 target/tricore/translate.c                             |  4 ++--
 7 files changed, 10 insertions(+), 10 deletions(-)
 rename target/m68k/{qregs.def => qregs.h.inc} (100%)
 rename target/s390x/tcg/{insn-data.def => insn-data.h.inc} (99%)
 rename target/s390x/tcg/{insn-format.def => insn-format.h.inc} (100%)
 rename target/tricore/{csfr.def => csfr.h.inc} (100%)

-- 
2.37.3


Re: [PATCH 0/3] target: Rename headers using .def extension to .h.inc
Posted by Markus Armbruster 1 year, 6 months ago
Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> We use the .h.inc extension to include C headers. To be consistent
> with the rest of the codebase, rename the C headers using the .def
> extension.
>
> IDE/tools using our .editorconfig / .gitattributes will leverage
> this consistency.
>
> Philippe Mathieu-Daudé (3):
>   target/m68k: Rename qregs.def -> qregs.h.inc
>   target/s390x: Rename insn-data/format.def -> insn-data/format.h.inc
>   target/tricore: Rename csfr.def -> csfr.h.inc
>
>  target/m68k/{qregs.def => qregs.h.inc}                 |  0
>  target/m68k/translate.c                                |  4 ++--
>  target/s390x/tcg/{insn-data.def => insn-data.h.inc}    |  2 +-
>  .../s390x/tcg/{insn-format.def => insn-format.h.inc}   |  0
>  target/s390x/tcg/translate.c                           | 10 +++++-----
>  target/tricore/{csfr.def => csfr.h.inc}                |  0
>  target/tricore/translate.c                             |  4 ++--
>  7 files changed, 10 insertions(+), 10 deletions(-)
>  rename target/m68k/{qregs.def => qregs.h.inc} (100%)
>  rename target/s390x/tcg/{insn-data.def => insn-data.h.inc} (99%)
>  rename target/s390x/tcg/{insn-format.def => insn-format.h.inc} (100%)
>  rename target/tricore/{csfr.def => csfr.h.inc} (100%)

I wonder why we use any of .def, .h.inc, .inc.h, .c.inc, .inc.c.  Why
not .h and call it a day?  No need to configure each and every editor to
tread these as C code.
Re: [PATCH 0/3] target: Rename headers using .def extension to .h.inc
Posted by Peter Maydell 1 year, 6 months ago
On Thu, 27 Oct 2022 at 15:40, Markus Armbruster <armbru@redhat.com> wrote:
> I wonder why we use any of .def, .h.inc, .inc.h, .c.inc, .inc.c.  Why
> not .h and call it a day?  No need to configure each and every editor to
> tread these as C code.

It says "this isn't actually a header in the usual sense". That's
useful for automated scripted checks (eg we don't want
scripts/clean-header-guards.pl to add the standard #include header
guards to this sort of file) and for humans (if you see one of these
files included as part of the normal #include block at the top of
a .c file that's probably a mistake; if you see it being used then
you know there's likely multiple-inclusion shenanigans going on.)

thanks
-- PMM
Re: [PATCH 0/3] target: Rename headers using .def extension to .h.inc
Posted by Markus Armbruster 1 year, 6 months ago
Peter Maydell <peter.maydell@linaro.org> writes:

> On Thu, 27 Oct 2022 at 15:40, Markus Armbruster <armbru@redhat.com> wrote:
>> I wonder why we use any of .def, .h.inc, .inc.h, .c.inc, .inc.c.  Why
>> not .h and call it a day?  No need to configure each and every editor to
>> tread these as C code.
>
> It says "this isn't actually a header in the usual sense". That's
> useful for automated scripted checks (eg we don't want
> scripts/clean-header-guards.pl to add the standard #include header
> guards to this sort of file) and for humans (if you see one of these
> files included as part of the normal #include block at the top of
> a .c file that's probably a mistake; if you see it being used then
> you know there's likely multiple-inclusion shenanigans going on.)

scripts/clean-header-guards.pl needs exclude patterns anyway.

Comments would likely work better for humans than obscure naming
conventions.

Make them stylized, and they work for scripts, too.
Re: [PATCH 0/3] target: Rename headers using .def extension to .h.inc
Posted by Peter Maydell 1 year, 6 months ago
On Thu, 27 Oct 2022 at 18:17, Markus Armbruster <armbru@redhat.com> wrote:
>
> Peter Maydell <peter.maydell@linaro.org> writes:
>
> > On Thu, 27 Oct 2022 at 15:40, Markus Armbruster <armbru@redhat.com> wrote:
> >> I wonder why we use any of .def, .h.inc, .inc.h, .c.inc, .inc.c.  Why
> >> not .h and call it a day?  No need to configure each and every editor to
> >> tread these as C code.
> >
> > It says "this isn't actually a header in the usual sense". That's
> > useful for automated scripted checks (eg we don't want
> > scripts/clean-header-guards.pl to add the standard #include header
> > guards to this sort of file) and for humans (if you see one of these
> > files included as part of the normal #include block at the top of
> > a .c file that's probably a mistake; if you see it being used then
> > you know there's likely multiple-inclusion shenanigans going on.)
>
> scripts/clean-header-guards.pl needs exclude patterns anyway.

Yes, in theory instead of having a systematic convention for
filenames we could instead give the files names that don't
let you easily distinguish them from plain old header files and
require every use like this to update clean-header-guards.pl,
but that seems to me to be clearly worse than maintaining the
filename convention that we already have.

> Comments would likely work better for humans than obscure naming
> conventions.
>
> Make them stylized, and they work for scripts, too.

We already have a stylized convention, it's the filename...
Comments inside the .inc file are also helpful, of course.

-- PMM
Re: [PATCH 0/3] target: Rename headers using .def extension to .h.inc
Posted by Markus Armbruster 1 year, 6 months ago
Peter Maydell <peter.maydell@linaro.org> writes:

> On Thu, 27 Oct 2022 at 18:17, Markus Armbruster <armbru@redhat.com> wrote:
>>
>> Peter Maydell <peter.maydell@linaro.org> writes:
>>
>> > On Thu, 27 Oct 2022 at 15:40, Markus Armbruster <armbru@redhat.com> wrote:
>> >> I wonder why we use any of .def, .h.inc, .inc.h, .c.inc, .inc.c.  Why
>> >> not .h and call it a day?  No need to configure each and every editor to
>> >> tread these as C code.
>> >
>> > It says "this isn't actually a header in the usual sense". That's
>> > useful for automated scripted checks (eg we don't want
>> > scripts/clean-header-guards.pl to add the standard #include header
>> > guards to this sort of file) and for humans (if you see one of these
>> > files included as part of the normal #include block at the top of
>> > a .c file that's probably a mistake; if you see it being used then
>> > you know there's likely multiple-inclusion shenanigans going on.)
>>
>> scripts/clean-header-guards.pl needs exclude patterns anyway.
>
> Yes, in theory instead of having a systematic convention for
> filenames we could instead give the files names that don't
> let you easily distinguish them from plain old header files and
> require every use like this to update clean-header-guards.pl,
> but that seems to me to be clearly worse than maintaining the
> filename convention that we already have.

Handle that just like for plain .h: when you re-run the script, you fix
its complaints either by fixing the header or by adding it to the
exclude pattern.

>> Comments would likely work better for humans than obscure naming
>> conventions.
>>
>> Make them stylized, and they work for scripts, too.
>
> We already have a stylized convention, it's the filename...

True.  But its opaque both for tools (editors mostly) and humans.  Tools
need to be configured, and humans need to be taught.

Moreover, we don't have *a* stylized convention, we have *two*: funny
filenames (several patterns, but that's fixable), and exclude patterns.

> Comments inside the .inc file are also helpful, of course.

Let's add a third!  Stylized comments!

I'll shut up now :)
Re: [PATCH 0/3] target: Rename headers using .def extension to .h.inc
Posted by Alex Bennée 1 year, 6 months ago
Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> We use the .h.inc extension to include C headers. To be consistent
> with the rest of the codebase, rename the C headers using the .def
> extension.
>
> IDE/tools using our .editorconfig / .gitattributes will leverage
> this consistency.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

-- 
Alex Bennée