All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
To: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	John Bonesio <bones-RkXMcIGFT/TR7s880joybQ@public.gmane.org>
Subject: Re: Proposal: new device-tree syntax and semantics for extending information from included dts files
Date: Sat, 16 Oct 2010 18:02:38 +1100	[thread overview]
Message-ID: <20101016070238.GE5036@yookeroo> (raw)
In-Reply-To: <20101014045413.GK15286-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>

On Wed, Oct 13, 2010 at 10:54:13PM -0600, Grant Likely wrote:
> On Thu, Oct 14, 2010 at 02:48:21PM +1100, David Gibson wrote:
> > On Wed, Oct 13, 2010 at 07:40:36PM -0600, Grant Likely wrote:
> > > &some-node {
> > > 	node-to-remove /remove/;
> > > 
> > > 	node-to-replace /remove/;
> > > 	node-to-replace { prop = "blah"; };
> > > };
> > > 
> > > I don't like this one because it implies ordering between the first
> > > and second 'node-to-replace' definitions, and to this point the syntax
> > > has not imposed any order assumptions.
> > 
> > Hrm.  Well, more precisely I was thinking of:
> > 
> > &{/some/node} /remove/;
> > 
> > &{/some/node} {
> > 	new-contents;
> > };
> > 
> > Since I thought the original proposal was that these node /replace/,
> > /extend/ whatnot were only valid at the top level (for the reasons
> > we've discussed on previous occasions).
> 
> Hmmm, I thought we had figured out how to solve those issues by using
> a flag to indicate that a node or property "masks out" the same node
> or property in a preceding top-level tree.

Um.. I don't follow.

> > We do already have ordering
> > amongst the top level items, since the last one wins.
> 
> Right, but the ordering has been explicitly restricted to the top
> level trees using the "stack of overlays" conceptual model.

Right, my point exactly.  I'm suggesting we keep it restricted to the
top level by only allowing these replace/remove operators (whatever
they look like) at the top level.

> > Now, if using
> > labels rather than full paths it does get a bit curlier on the
> > implementation side.  But I don't think it would be that hard to make
> > labels stick around attached to a path, even when the path itself is
> > removed.
> 
> Ah right, the issue here was that a previous tree could be holding a
> label reference that gets deleted in an overlay.  And there are
> questions about what happens if a label is removed and then the same
> label attached to a new node, specifically because labels aren't
> resolved until after the trees are fully parsed.  (let me know if I'm
> remembering incorrectly).  I think this is solvable though, but we're
> going to need to define the semantics.
> 
> I need to review the details though.  I can't remember all the ways
> that the code handles label resolution.

Right.  Having labels move around seriously muddies the waters, since
the whole idea of labels is to unambiguously refer to a node.  I think
the sanest thing is to prohibit duplicate labels, even if the labelled
nodes have been removed between the duplicate declarations.  In the
later stages of processing, then, referring to a deleted label would
be detectable and trigger an error at that point.

[snip]
> > > Or perhaps with the keyword preceding:
> > > 
> > > &some-node {
> > > 	/remove-prop/ property-to-remove;
> > > 	property-to-replace = "new value";
> > > 	property-to-replace-with-empty-prop;
> > > 
> > > 	/remove-node/ node-to-remove;
> > > 	/remove-node/ node-to-replace { prop = "blah"; };
> > > };
> > 
> > 
> > I prefer this last example to the two previous ones.
> 
> Combining your last suggestion with this would give:

Uh, sorry, not all of my suggestions were intended to be used in
conjuction.  Some were alternate possibilities which do not mix well.

> &some-node {
> 	/remove-prop/ property-to-remove;

For example if we're doing node removal as a "replace with nothing",
then we'd certainly do the same for properties, i.e. "prop =
/undefine/;" not a /remove-prop/ keyword.

> 	property-to-replace = "new value";
> 	property-to-replace-with-empty-prop;
> 
> 	/replace-node/ node-to-remove /undefined/;
> 	/replace-node/ node-to-replace { prop = "blah"; };
> };
> 
> I'm not sure.  It feels a little muddy.  It's late though.  I'm going
> to go sleep on it, and take a fresh look in the morning.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

  parent reply	other threads:[~2010-10-16  7:02 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1286920561.4535.1315.camel@riker>
2010-10-13 23:17 ` Proposal: new device-tree syntax and semantics for extending information from included dts files Grant Likely
     [not found]   ` <20101013231747.GD15286-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2010-10-13 23:41     ` Proposal: new device-tree syntax and semantics for extendinginformation " Stephen Neuendorffer
     [not found]       ` <d223e561-ed6e-44c2-8a99-8959e85ae022-+Ck8Kgl/v0/nHLUNXTEFU7jjLBE8jN/0@public.gmane.org>
2010-10-14  0:45         ` David Gibson
2010-10-14  1:46           ` Grant Likely
     [not found]             ` <20101014014657.GF15286-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2010-10-14  3:31               ` David Gibson
2010-10-14 16:38           ` Stephen Neuendorffer
     [not found]             ` <21eeaef0-fc78-47c9-b1c5-bfefaa55fb85-RaUQJvECHis6W+Ha+8ZLibjjLBE8jN/0@public.gmane.org>
2010-10-15 15:18               ` Grant Likely
     [not found]                 ` <20101015151840.GB32705-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2010-10-15 16:10                   ` Stephen Neuendorffer
     [not found]                     ` <b04d95cc-c35b-4597-8fbe-f7c48f23ef92-+Ck8Kgl/v09DUMyIFHz4objjLBE8jN/0@public.gmane.org>
2010-10-15 19:32                       ` Grant Likely
     [not found]                         ` <AANLkTinPWv94Xoz+mDxiE=KujQYAyQj9PsPWHEORypJ3-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-15 19:48                           ` Stephen Neuendorffer
     [not found]                             ` <eba820f8-3e4f-4d57-9024-39cc562a99eb-+Ck8Kgl/v0/0H8R8xLlBI7jjLBE8jN/0@public.gmane.org>
2010-10-15 19:56                               ` Grant Likely
     [not found]                                 ` <AANLkTikWfMXEbdwFY6FNoMwuD6fC74Kohtr3QRJqSrM0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-15 19:59                                   ` Stephen Neuendorffer
     [not found]                                     ` <ed27a45d-3607-41e3-831f-1d7e3dd44379-RaUQJvECHis6W+Ha+8ZLibjjLBE8jN/0@public.gmane.org>
2010-10-15 20:11                                       ` Grant Likely
     [not found]                                         ` <AANLkTikzyDFiQZzPmeos6pf_DS33RvkfER+Mz0jceSJy-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-15 20:20                                           ` Stephen Neuendorffer
     [not found]                                             ` <4da0557a-d204-4e38-8a82-b0996a9a5af1-RaUQJvECHitCYczPSvLbDrjjLBE8jN/0@public.gmane.org>
2010-10-15 23:58                                               ` Grant Likely
     [not found]                                                 ` <AANLkTinzf3vhs_OUUeiVYOFbOPLFHA+dei810H2gyDGS-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-16  7:10                                                   ` David Gibson
2010-10-15 20:35                                           ` John Bonesio
2010-10-15 21:25                                             ` John Bonesio
2010-10-15 23:51                                             ` Grant Likely
2010-10-16  7:05                       ` David Gibson
2010-10-14  0:38     ` Proposal: new device-tree syntax and semantics for extending information " David Gibson
2010-10-14  1:40       ` Grant Likely
     [not found]         ` <20101014014036.GE15286-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2010-10-14  1:49           ` Grant Likely
2010-10-14  3:08           ` John Bonesio
2010-10-14  3:37             ` Grant Likely
2010-10-14  4:00             ` David Gibson
2010-10-14  3:48           ` David Gibson
2010-10-14  4:54             ` Grant Likely
     [not found]               ` <20101014045413.GK15286-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2010-10-16  7:02                 ` David Gibson [this message]
2010-10-16 18:57                   ` Grant Likely
     [not found]                     ` <AANLkTi=QaV5KvhFzyci2yykmsV9+Zz71vmoRrrFDGvK--JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-16 19:50                       ` John Bonesio
2010-10-17  6:17                         ` Grant Likely
2010-10-19  2:48                       ` 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=20101016070238.GE5036@yookeroo \
    --to=david-xt8fgy+axnrb3ne2bgzf6laj5h9x9tb+@public.gmane.org \
    --cc=bones-RkXMcIGFT/TR7s880joybQ@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@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.