qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] When to use qemu/typedefs.h
Date: Wed, 31 Jul 2019 10:40:26 +0200	[thread overview]
Message-ID: <54711eb6-4d87-665a-c95a-749ee125b7c9@redhat.com> (raw)
In-Reply-To: <87zhku90bd.fsf@dusky.pond.sub.org>

On 31/07/2019 08.37, Markus Armbruster wrote:
> Paolo Bonzini <pbonzini@redhat.com> writes:
> 
>> On 30/07/19 15:15, Eric Blake wrote:
>>>> We occasionally give up and use types directly rather than their typedef
>>>> names, flouting the coding style.  This patch does.  Trades messing with
>>>> qemu/typedefs.h for having to write 'struct' a few times.
>>
>> I think Markus made the right call here.  Using "struct Foo;" in headers
>> is a null price to pay if all you need is declaring a pointer-typed
>> field or parameter.
> 
> Eduardo posted a patch to HACKING to clarify this non-usage of typedef
> is okay.
> 
> Should we continue to mandate typedef names elsewhere?  It adds
> cognitive load: you have to decide where to put the typedef, and when
> not to use it.

IMHO we should get rid of mandating typedefs. They are causing too much
trouble - e.g. do you also remember the issues with duplicated typedefs
in certain compiler versions in the past? (these should be hopefully
gone now, but still...)

And many QEMU developers are also working on the Linux kernel, which
rather forbids typedefs. Having to switch your mind back and forth
whether to use typedefs or not is really annoying.

So if you ask me, stop mandating it! It's ok as optional feature in QEMU
for types that are used all over the place, but we really should not
enforce it for each and every struct anymore.

 Thomas


  parent reply	other threads:[~2019-07-31  8:41 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-26 12:05 [Qemu-devel] [PATCH 00/28] Tame a few "touch this, recompile the world" headers Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 01/28] include: Make headers more self-contained Markus Armbruster
2019-07-26 16:50   ` Alistair Francis
2019-07-26 12:05 ` [Qemu-devel] [PATCH 02/28] Include generated QAPI headers less Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 03/28] qapi: Split error.json off common.json Markus Armbruster
2019-07-26 13:53   ` Eric Blake
2019-07-26 14:34     ` Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 04/28] memory: Fix type of IOMMUMemoryRegionClass member @parent_class Markus Armbruster
2019-07-26 16:06   ` Philippe Mathieu-Daudé
2019-07-26 12:05 ` [Qemu-devel] [PATCH 05/28] queue: Drop superfluous #include qemu/atomic.h Markus Armbruster
2019-07-31 10:54   ` Thomas Huth
2019-07-26 12:05 ` [Qemu-devel] [PATCH 06/28] trace: Eliminate use of TARGET_FMT_plx Markus Armbruster
2019-07-26 16:04   ` Philippe Mathieu-Daudé
2019-07-26 12:05 ` [Qemu-devel] [PATCH 07/28] trace: Do not include qom/cpu.h into generated trace.h Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 08/28] Include sysemu/reset.h a lot less Markus Armbruster
2019-07-26 16:03   ` Philippe Mathieu-Daudé
2019-07-26 16:48     ` Alistair Francis
2019-07-26 12:05 ` [Qemu-devel] [PATCH 09/28] Include migration/qemu-file-types.h " Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 10/28] ide: Include hw/ide/internal a bit less outside hw/ide/ Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 11/28] typedefs: Separate incomplete types and function types Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 12/28] Include hw/irq.h a lot less Markus Armbruster
2019-07-26 16:52   ` Alistair Francis
2019-07-26 12:05 ` [Qemu-devel] [PATCH 13/28] Clean up inclusion of exec/cpu-common.h Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 14/28] migration: Move the VMStateDescription typedef to typedefs.h Markus Armbruster
2019-07-26 15:51   ` Philippe Mathieu-Daudé
2019-08-02  9:47   ` Paolo Bonzini
2019-07-26 12:05 ` [Qemu-devel] [PATCH 15/28] Include migration/vmstate.h less Markus Armbruster
2019-07-26 16:54   ` Alistair Francis
2019-07-26 12:05 ` [Qemu-devel] [PATCH 16/28] Include exec/memory.h slightly less Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 17/28] Include qom/object.h " Markus Armbruster
2019-07-26 15:53   ` Philippe Mathieu-Daudé
2019-07-26 12:05 ` [Qemu-devel] [PATCH 18/28] Include hw/hw.h exactly where needed Markus Armbruster
2019-07-26 22:14   ` Alistair Francis
2019-07-26 12:05 ` [Qemu-devel] [PATCH 19/28] Include qemu/queue.h slightly less Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 20/28] Include qemu/main-loop.h less Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 21/28] Include hw/qdev-properties.h less Markus Armbruster
2019-07-29 19:16   ` Eduardo Habkost
2019-07-30  6:33     ` Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 22/28] Include hw/boards.h a bit less Markus Armbruster
2019-07-26 20:29   ` Alistair Francis
2019-07-29 20:07   ` Eduardo Habkost
2019-07-30 11:03     ` Markus Armbruster
2019-07-29 20:17   ` Eduardo Habkost
2019-07-30 11:06     ` Markus Armbruster
2019-08-02 14:37       ` Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h Markus Armbruster
2019-07-29 19:44   ` Eduardo Habkost
2019-07-30 11:01     ` [Qemu-devel] When to use qemu/typedefs.h (was: [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h) Markus Armbruster
2019-07-30 13:15       ` Eric Blake
2019-07-30 13:28         ` Paolo Bonzini
2019-07-30 21:07           ` [Qemu-devel] [RFC] HACKING: Document 'struct' keyword usage Eduardo Habkost
2019-07-30 21:32             ` Eric Blake
2019-07-31  8:35             ` Thomas Huth
2019-08-01 18:50               ` Eduardo Habkost
2019-08-01 19:23                 ` Paolo Bonzini
2019-08-02  7:02                   ` Thomas Huth
2019-08-01 17:21             ` Aleksandar Markovic
2019-07-31  6:37           ` [Qemu-devel] When to use qemu/typedefs.h Markus Armbruster
2019-07-31  6:43             ` Paolo Bonzini
2019-07-31  8:40             ` Thomas Huth [this message]
2019-07-31 10:45               ` Peter Maydell
2019-07-31 10:51                 ` Daniel P. Berrangé
2019-07-30 20:55         ` [Qemu-devel] When to use qemu/typedefs.h (was: [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h) Eduardo Habkost
2019-07-26 12:05 ` [Qemu-devel] [PATCH 24/28] Include sysemu/hostmem.h less Markus Armbruster
2019-07-26 15:57   ` Philippe Mathieu-Daudé
2019-07-29 19:47   ` Eduardo Habkost
2019-07-30 12:07   ` Igor Mammedov
2019-08-02  9:53   ` Paolo Bonzini
2019-08-02 13:20     ` Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 25/28] numa: Move remaining NUMA declarations from sysemu.h to numa.h Markus Armbruster
2019-07-26 15:57   ` Philippe Mathieu-Daudé
2019-07-29 19:48   ` Eduardo Habkost
2019-07-26 12:05 ` [Qemu-devel] [PATCH 26/28] Clean up inclusion of sysemu/sysemu.h Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 27/28] sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h Markus Armbruster
2019-08-02  9:48   ` Paolo Bonzini
2019-08-02 13:16     ` Markus Armbruster
2019-08-02 13:21       ` Paolo Bonzini
2019-08-06 16:26         ` Markus Armbruster
2019-08-02 20:36       ` Markus Armbruster
2019-07-26 12:05 ` [Qemu-devel] [PATCH 28/28] Include sysemu/sysemu.h a lot less Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54711eb6-4d87-665a-c95a-749ee125b7c9@redhat.com \
    --to=thuth@redhat.com \
    --cc=armbru@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).