qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, alex.williamson@redhat.com,
	andrew@codeconstruct.com.au, andrew@daynix.com,
	arei.gonglei@huawei.com, berrange@redhat.com, berto@igalia.com,
	borntraeger@linux.ibm.com, clg@kaod.org, david@redhat.com,
	den@openvz.org, eblake@redhat.com, eduardo@habkost.net,
	farman@linux.ibm.com, farosas@suse.de, hreitz@redhat.com,
	idryomov@gmail.com, iii@linux.ibm.com, jamin_lin@aspeedtech.com,
	jasowang@redhat.com, joel@jms.id.au, jsnow@redhat.com,
	leetroy@gmail.com, marcandre.lureau@redhat.com,
	marcel.apfelbaum@gmail.com, michael.roth@amd.com, mst@redhat.com,
	mtosatti@redhat.com, nsg@linux.ibm.com, pasic@linux.ibm.com,
	pbonzini@redhat.com, peter.maydell@linaro.org, peterx@redhat.com,
	philmd@linaro.org, pizhenwei@bytedance.com, pl@dlhnet.de,
	richard.henderson@linaro.org, stefanha@redhat.com,
	steven_lee@aspeedtech.com, thuth@redhat.com,
	vsementsov@yandex-team.ru, wangyanan55@huawei.com,
	yuri.benditovich@daynix.com, zhao1.liu@intel.com,
	qemu-block@nongnu.org, qemu-arm@nongnu.org,
	qemu-s390x@nongnu.org, kvm@vger.kernel.org
Subject: Re: [PATCH 01/18] qapi: Smarter camel_to_upper() to reduce need for 'prefix'
Date: Wed, 31 Jul 2024 11:43:52 +0200	[thread overview]
Message-ID: <ZqoHWPOeqF7uGncx@redhat.com> (raw)
In-Reply-To: <20240730081032.1246748-2-armbru@redhat.com>

Am 30.07.2024 um 10:10 hat Markus Armbruster geschrieben:
> camel_to_upper() converts its argument from camel case to upper case
> with '_' between words.  Used for generated enumeration constant
> prefixes.
> 
> When some of the words are spelled all caps, where exactly to insert
> '_' is guesswork.  camel_to_upper()'s guesses are bad enough in places
> to make people override them with a 'prefix' in the schema.
> 
> Rewrite it to guess better:
> 
> 1. Insert '_' after a non-upper case character followed by an upper
>    case character:
> 
>        OneTwo -> ONE_TWO
>        One2Three -> ONE2_THREE
> 
> 2. Insert '_' before the last upper case character followed by a
>    non-upper case character:
> 
>        ACRONYMWord -> ACRONYM_Word
> 
>    Except at the beginning (as in OneTwo above), or when there is
>    already one:
> 
>        AbCd -> AB_CD

Maybe it's just me, but the exception "at the beginning" (in the sense
of "after the first character") seems to be exactly where I thought
"that looks strange" while going through your list below. In particular,
I'd expect X_DBG_* instead of XDBG_*. I also thought that the Q_*
spelling made more sense, though this might be less clear. But in case
of doubt, less exceptions seems like a good choice.

> +    # Copy remainder of ``value`` to ``ret`` with '_' inserted
> +    for ch in value[1:]:
> +        if ch.isupper() == upc:
> +            pass
> +        elif upc:
> +            # ``ret`` ends in upper case, next char isn't: insert '_'
> +            # before the last upper case char unless there is one
> +            # already, or it's at the beginning
> +            if len(ret) > 2 and ret[-2] != '_':
> +                ret = ret[:-1] + '_' + ret[-1]

I think in the code this means I would have expected len(ret) >= 2.

Kevin



  parent reply	other threads:[~2024-07-31  9:45 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-30  8:10 [PATCH 00/18] qapi: Reduce use of 'prefix' Markus Armbruster
2024-07-30  8:10 ` [PATCH 01/18] qapi: Smarter camel_to_upper() to reduce need for 'prefix' Markus Armbruster
2024-07-30  9:13   ` Daniel P. Berrangé
2024-07-30 12:22     ` Markus Armbruster
2024-07-30 13:33       ` Avihai Horon
2024-07-31  5:12         ` Markus Armbruster
2024-07-31  5:59           ` Avihai Horon
2024-07-31  6:37             ` Markus Armbruster
2024-07-31  9:43   ` Kevin Wolf [this message]
2024-08-09  9:03     ` Markus Armbruster
2024-07-30  8:10 ` [PATCH 02/18] tests/qapi-schema: Drop temporary 'prefix' Markus Armbruster
2024-08-12 10:04   ` Thomas Huth
2024-07-30  8:10 ` [PATCH 03/18] qapi/block-core: " Markus Armbruster
2024-07-30  8:10 ` [PATCH 04/18] qapi/common: " Markus Armbruster
2024-07-30 15:07   ` Cédric Le Goater
2024-07-30  8:10 ` [PATCH 05/18] qapi/crypto: " Markus Armbruster
2024-07-30  8:57   ` Daniel P. Berrangé
2024-07-30  8:10 ` [PATCH 06/18] qapi/ebpf: " Markus Armbruster
2024-07-30  8:10 ` [PATCH 07/18] qapi/machine: " Markus Armbruster
2024-07-30  9:28   ` Zhao Liu
2024-07-30  8:10 ` [PATCH 08/18] qapi/ui: " Markus Armbruster
2024-07-30  8:10 ` [PATCH 09/18] qapi/machine: Rename CpuS390* to S390Cpu, and drop 'prefix' Markus Armbruster
2024-07-30  9:08   ` Daniel P. Berrangé
2024-07-30  9:26   ` Zhao Liu
2024-08-09  7:10     ` Markus Armbruster
2024-08-12 10:09   ` Thomas Huth
2024-07-30  8:10 ` [PATCH 10/18] qapi/crypto: Drop unwanted 'prefix' Markus Armbruster
2024-07-30  8:58   ` Daniel P. Berrangé
2024-07-30  8:10 ` [PATCH 11/18] qapi/crypto: Rename QCryptoHashAlgorithm to *Algo, and drop prefix Markus Armbruster
2024-07-30  9:01   ` Daniel P. Berrangé
2024-07-30 12:26     ` Markus Armbruster
2024-07-31  9:46       ` Daniel P. Berrangé
2024-08-02 14:27         ` Markus Armbruster
2024-07-30  8:10 ` [PATCH 12/18] qapi/crypto: Rename QCryptoCipherAlgorithm " Markus Armbruster
2024-07-30  9:02   ` Daniel P. Berrangé
2024-07-30  8:10 ` [PATCH 13/18] qapi/crypto: Rename QCryptoIVGenAlgorithm " Markus Armbruster
2024-07-30  9:03   ` Daniel P. Berrangé
2024-07-30  8:10 ` [PATCH 14/18] qapi/crypto: Rename QCryptoAkCipherAlgorithm " Markus Armbruster
2024-07-30  9:03   ` Daniel P. Berrangé
2024-07-30  8:10 ` [PATCH 15/18] qapi/crypto: Rename QCryptoRSAPaddingAlgorithm " Markus Armbruster
2024-07-30  9:04   ` Daniel P. Berrangé
2024-07-30  8:10 ` [PATCH 16/18] qapi/crypto: Rename QCryptoAFAlg to QCryptoAFAlgo Markus Armbruster
2024-07-30  9:05   ` Daniel P. Berrangé
2024-07-30  8:10 ` [PATCH 17/18] qapi/cryptodev: Drop unwanted 'prefix' Markus Armbruster
2024-07-30  9:06   ` Daniel P. Berrangé
2024-07-30  8:10 ` [PATCH 18/18] qapi/cryptodev: Rename QCryptodevBackendAlgType to *Algo, and drop prefix Markus Armbruster
2024-07-30  9:06   ` Daniel P. Berrangé

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=ZqoHWPOeqF7uGncx@redhat.com \
    --to=kwolf@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=andrew@codeconstruct.com.au \
    --cc=andrew@daynix.com \
    --cc=arei.gonglei@huawei.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=berto@igalia.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=clg@kaod.org \
    --cc=david@redhat.com \
    --cc=den@openvz.org \
    --cc=eblake@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=farman@linux.ibm.com \
    --cc=farosas@suse.de \
    --cc=hreitz@redhat.com \
    --cc=idryomov@gmail.com \
    --cc=iii@linux.ibm.com \
    --cc=jamin_lin@aspeedtech.com \
    --cc=jasowang@redhat.com \
    --cc=joel@jms.id.au \
    --cc=jsnow@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=leetroy@gmail.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=michael.roth@amd.com \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=nsg@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pizhenwei@bytedance.com \
    --cc=pl@dlhnet.de \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=stefanha@redhat.com \
    --cc=steven_lee@aspeedtech.com \
    --cc=thuth@redhat.com \
    --cc=vsementsov@yandex-team.ru \
    --cc=wangyanan55@huawei.com \
    --cc=yuri.benditovich@daynix.com \
    --cc=zhao1.liu@intel.com \
    /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).