All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julia Lawall <julia.lawall-L2FTfq7BK8M@public.gmane.org>
To: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
Cc: devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 2/5] annotations: Add position information to various calls
Date: Tue, 16 Jan 2018 09:37:11 +0100 (CET)	[thread overview]
Message-ID: <alpine.DEB.2.20.1801160936440.4548@hadrien> (raw)
In-Reply-To: <20180116083334.GI30352-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>



On Tue, 16 Jan 2018, David Gibson wrote:

> On Mon, Jan 15, 2018 at 10:28:38AM +0100, Julia Lawall wrote:
> >
> >
> > On Mon, 15 Jan 2018, David Gibson wrote:
> >
> > > On Thu, Jan 11, 2018 at 04:21:44PM +0100, Julia Lawall wrote:
> > > > > > +	old_node->srcpos = srcpos_copy_all(new_node_begin_srcpos);
> > > > >
> > > > > This doesn't seem right.  Replacing the old position with the new
> > > > > makes sense for indivudal properties where the whole value is also
> > > > > replaced.  But for nodes we really need to track both locations.
> > > > >
> > > > > I think the extra complexity here is why I didn't add this tracking
> > > > > earlier.
> > > >
> > > > I have the following example:
> > > >
> > > > /dts-v1/;
> > > >
> > > > / {
> > > >         #address-cells = < 1 >;
> > > >         #size-cells = < 1 >;
> > > >
> > > >         tree_1: soc@0 {
> > > >         	reg = <0x0 0x0>;
> > > >         };
> > > >
> > > >         foo: foo_node {
> > > >                 prop_1: added-prop = <0x99>;
> > > >         };
> > > >
> > > >         bar_node {
> > > >                 added-prop = <0x77>;
> > > >         };
> > > >
> > > > };
> > > >
> > > > /include/ "test_b1.dts"
> > > > /include/ "test_c1.dts"
> > > >
> > > > -------------------
> > > >
> > > > Then test_b1.dts and test_c1.dts are both /include/ "test_d.dts".  And
> > > > test_d.dts is:
> > > >
> > > > / {
> > > >         foo_node {
> > > >                 added-prop = <0x1 0x2 0x3>;
> > > >         };
> > > >
> > > >         foo_node {
> > > >                 added-prop = <0x1 0x2 0x3>;
> > > >         };
> > > >
> > > >         bar: bar_node {
> > > >                 added-prop = <0x5>;
> > > >         };
> > > > };
> > > >
> > > > ----------
> > > >
> > > > The point of the example is that via the includes there are tw ways to
> > > > reach test_d.dts.
> > > >
> > > > Accordingly, by accumulating a list of positions in merge_nodes, I end up with:
> > > >
> > > > /dts-v1/;
> > > >
> > > > / { /* tests/test_d.dts:1, tests/test_d.dts:1, tests/test_a.dts:10 */
> > > > 	#address-cells = <0x1>; /* tests/test_a.dts:11 */
> > > > 	#size-cells = <0x1>; /* tests/test_a.dts:12 */
> > > >
> > > > 	tree_1: soc@0 { /* tests/test_a.dts:14 */
> > > > 		reg = <0x0 0x0>; /* tests/test_a.dts:15 */
> > > > 	}; /* tests/test_a.dts:16 */
> > > >
> > > > 	foo: foo_node { /* tests/test_d.dts:6, tests/test_d.dts:2, tests/test_d.dts:6, tests/test_d.dts:2, tests/test_a.dts:18 */
> > > > 		prop_1: added-prop = <0x1 0x2 0x3>; /* tests/test_d.dts:7 */
> > > > 	}; /* tests/test_d.dts:8, tests/test_d.dts:4, tests/test_d.dts:8, tests/test_d.dts:4, tests/test_a.dts:20 */
> > > >
> > > > 	bar: bar_node { /* tests/test_d.dts:10, tests/test_d.dts:10, tests/test_a.dts:22 */
> > > > 		added-prop = <0x5>; /* tests/test_d.dts:11 */
> > > > 	}; /* tests/test_d.dts:12, tests/test_d.dts:12, tests/test_a.dts:24 */
> > > > }; /* tests/test_d.dts:13, tests/test_d.dts:13, tests/test_a.dts:26 */
> > > >
> > > > --------
> > > >
> > > > For example, in the last line, we see tests/test_d.dts:13 twice, because it
> > > > is merged in twice.  Is this what is wanted?  Should it be there only once?
> > > > Should there be some indication on how tests/test_d.dts:13 is reached?
> > > > This is a fake example, but I saw some examples with duplicated positions
> > > > in the Linux kernel code.
> > >
> > > Right, that's ugly, but it's not that easy to fix.  Really we'd need
> > > to merge/overlap each element in the list to accumulate them.  Going
> > > back to the original proposal isn't a solution though because of cases
> > > like this, which will be much more common that duplicated includes:
> > >
> > > / {
> > > 	foo {
> > > 		compatible = "...";
> > > 		reg = < .. >;
> > > 		ranges = < ... >;
> > > 		lots = ...;
> > > 		of = ...;
> > > 		other = ...;
> > > 		properties = ...;
> > > 	};
> > > }
> > >
> > > &{/foo} {
> > > 	one-tiny-change = "yes";
> > > };
> > >
> > > The original proposal would annotate the output with *only* the
> > > location of the one-tiny-change, which is extremely misleading.  Much
> > > worse than duplicated locations.
> >
> > It's only the label on the braces that is affected.  compatible, reg, etc
> > should still have their original locations.
>
> Sure, it'll be ok if the errors are able to reference a specific
> property.  But we can't really count on that - it seems likely that
> there will be errors which refer to a node, but can't really point at
> a specific property as the problem.

OK, there is the complete list with no duplicates in the revised patch
series.

julia

  parent reply	other threads:[~2018-01-16  8:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-08 13:36 [PATCH 0/5] annotations Julia Lawall
     [not found] ` <1515418607-26764-1-git-send-email-Julia.Lawall-L2FTfq7BK8M@public.gmane.org>
2018-01-08 13:36   ` [PATCH 1/5] annotations: Check for NULL pos Julia Lawall
     [not found]     ` <1515418607-26764-2-git-send-email-Julia.Lawall-L2FTfq7BK8M@public.gmane.org>
2018-01-09 10:04       ` David Gibson
     [not found]         ` <20180109100400.GK2131-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2018-01-09 10:32           ` Julia Lawall
2018-01-10  6:08       ` Frank Rowand
     [not found]         ` <d7cae26a-a92f-6a39-61ca-05fee9509722-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-10  6:29           ` Julia Lawall
2018-01-08 13:36   ` [PATCH 2/5] annotations: Add position information to various calls Julia Lawall
     [not found]     ` <1515418607-26764-3-git-send-email-Julia.Lawall-L2FTfq7BK8M@public.gmane.org>
2018-01-08 22:29       ` Rob Herring
     [not found]         ` <CAL_JsqKaXY+K9LKH1qL1i-OhTjX1Kqvb6F3FJywwrPNZzLCz4A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-09  0:58           ` Frank Rowand
2018-01-09  6:16           ` Julia Lawall
2018-01-09 14:19             ` Rob Herring
2018-01-09 11:16       ` David Gibson
     [not found]         ` <20180109111614.GL2131-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2018-01-09 12:27           ` Julia Lawall
2018-01-10  5:32             ` David Gibson
     [not found]               ` <20180110053255.GE19773-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2018-01-10  6:26                 ` Julia Lawall
2018-01-10  6:34           ` Julia Lawall
2018-01-11 15:21           ` Julia Lawall
2018-01-15  7:36             ` David Gibson
     [not found]               ` <20180115073609.GA26066-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2018-01-15  9:28                 ` Julia Lawall
2018-01-16  8:33                   ` David Gibson
     [not found]                     ` <20180116083334.GI30352-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2018-01-16  8:37                       ` Julia Lawall [this message]
2018-01-10  6:25       ` Frank Rowand
     [not found]         ` <a0d1314a-8c1f-e553-dacc-62274c6b4cca-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-10  6:29           ` Frank Rowand
     [not found]             ` <bd068783-e34a-293c-ff03-d6dd37bff219-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-10  6:31               ` Julia Lawall
2018-01-10  6:30           ` Julia Lawall
2018-01-08 13:36   ` [PATCH 3/5] annotations: short annotations Julia Lawall
     [not found]     ` <1515418607-26764-4-git-send-email-Julia.Lawall-L2FTfq7BK8M@public.gmane.org>
2018-01-09 11:21       ` David Gibson
     [not found]         ` <20180109112130.GM2131-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2018-01-09 21:01           ` Frank Rowand
2018-01-08 13:36   ` [PATCH 4/5] annotations: shorten file names Julia Lawall
     [not found]     ` <1515418607-26764-5-git-send-email-Julia.Lawall-L2FTfq7BK8M@public.gmane.org>
2018-01-10  5:44       ` David Gibson
     [not found]         ` <20180110054410.GF19773-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2018-01-10  6:28           ` Julia Lawall
2018-01-08 13:36   ` [PATCH 5/5] annotations: add --annotate-full option Julia Lawall
     [not found]     ` <1515418607-26764-6-git-send-email-Julia.Lawall-L2FTfq7BK8M@public.gmane.org>
2018-01-10  6:32       ` Frank Rowand
     [not found]         ` <e249131c-5a60-f17c-a0ad-3a9aa3db8570-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-10  6:36           ` Julia Lawall
2018-01-10  8:50       ` David Gibson

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.20.1801160936440.4548@hadrien \
    --to=julia.lawall-l2ftfq7bk8m@public.gmane.org \
    --cc=david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org \
    --cc=devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.