Coccinelle Archive on lore.kernel.org
 help / color / Atom feed
From: Julia Lawall <julia.lawall@inria.fr>
To: Markus Elfring <Markus.Elfring@web.de>
Cc: Coccinelle <cocci@systeme.lip6.fr>
Subject: Re: [Cocci] Replacing #define directives with the help of SmPL
Date: Sun, 28 Mar 2021 13:46:20 +0200 (CEST)
Message-ID: <alpine.DEB.2.22.394.2103281343310.2854@hadrien> (raw)
In-Reply-To: <173fa182-4127-aaba-262e-e3953a81a1e2@web.de>


[-- Attachment #1: Type: text/plain, Size: 1920 bytes --]



On Sun, 28 Mar 2021, Markus Elfring wrote:

> > If you find that something does not work satisfactorily, propose a
> > semantic patch and show what doesn't work.
>
> @display@
> @@
> *#define

Obviously this doesn't work.  Just like

@@
@@
*if

doesnt' work.

> > I'm not going to try to solve a problem when I don't know what the problem is.
>
> Another SmPL script example:
>
> @display2@
> identifier i;
> expression e;
> @@
> *#define i e
>
>
> elfring@Sonne:~/Projekte/Coccinelle/janitor> spatch show_define_usage2.cocci /usr/include/pipewire-0.3/pipewire/client.h
> …
> -#define PW_CLIENT_EVENT_INFO		0
> …

And what is the problem here?

>
>
> > I think that this tranformation would be diffficult to make using Coccinelle,
>
> * I imagine also that it can be challenging to determine which preprocessor identifiers
>   can really be converted to enumerations.
>
> * My programmer eyes were trained for some pattern recognition.
>   https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/981
>   https://github.com/issues?q=is%3Aissue+author%3Aelfring+%22+enum%22
>
>
> > due to the need to ensure that the enum values are end up in the
> > right order, if you want to rely on the implicit values of enums.
>
> I am looking again for the application of algorithms according to
> longest common text (or prefixes) in used symbols.

This may (or may not) give you the right grouping, but you will still have
to ensure that the elements end up in the right order, unless you want to
provide all the values explicitly.

>
> > Furthermore, if this is targeting C code, the benefits will be limited,
> > because C considers enums to be the same as ints.
>
> * Will such a transformation help with software debugging?

Not likely, because the compiler provides no support and the definitions
are typically far from the uses.

julia

>
> * Would you like to reuse another named data type?
>
> Regards,
> Markus
>

[-- Attachment #2: Type: text/plain, Size: 136 bytes --]

_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

  parent reply index

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-28  7:19 Markus Elfring
2021-03-28  9:29 ` Julia Lawall
     [not found]   ` <1b5f6d22-5b89-097f-37bd-13b3b2ab011a@web.de>
2021-03-28 10:47     ` Julia Lawall
     [not found]       ` <173fa182-4127-aaba-262e-e3953a81a1e2@web.de>
2021-03-28 11:46         ` Julia Lawall [this message]
     [not found]           ` <b80fe77f-0a11-2000-522e-836c9368eaa6@web.de>
2021-03-28 12:48             ` Julia Lawall
     [not found]           ` <b761969f-181b-5951-0730-11c340e236ab@web.de>
2021-03-28 14:08             ` Julia Lawall
     [not found]           ` <f720b262-708f-a603-3470-b374db625578@web.de>
2021-03-28 14:45             ` Julia Lawall
     [not found]               ` <fa66fce2-e60e-1907-7c8b-fd9ceedb8086@web.de>
2021-04-04 11:58                 ` [Cocci] Excluding quotes from strings of #define directives Julia Lawall
2021-04-04 12:11                   ` Markus Elfring
2021-04-04 12:19                     ` Julia Lawall
     [not found]                       ` <b9f6aceb-7e68-303d-bd1e-d41a7992b58b@web.de>
2021-04-05  7:09                         ` [Cocci] Checking support for compound expressions (according to #define directives) Julia Lawall
     [not found]                           ` <8561006e-7dc6-0f62-ecf0-c93146976925@web.de>
2021-04-05  7:54                             ` Julia Lawall
2021-04-05  8:46                               ` Markus Elfring
2021-04-05  8:53                                 ` Julia Lawall
2021-04-05 10:37                               ` [Cocci] Improve the handling of string literals with SmPL Markus Elfring
     [not found]       ` <eaa316bd-4c73-fcbb-bfad-20426348b1c2@web.de>
2021-03-28 15:17         ` [Cocci] Replacing #define directives with the help of SmPL Julia Lawall

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=alpine.DEB.2.22.394.2103281343310.2854@hadrien \
    --to=julia.lawall@inria.fr \
    --cc=Markus.Elfring@web.de \
    --cc=cocci@systeme.lip6.fr \
    /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

Coccinelle Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/cocci/0 cocci/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 cocci cocci/ https://lore.kernel.org/cocci \
		cocci@systeme.lip6.fr
	public-inbox-index cocci

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/fr.lip6.systeme.cocci


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git