On Mon, 20 Nov 2017 08:48:10 -0800
Ben Pfaff <b...@ovn.org> wrote:

> On Mon, Nov 20, 2017 at 11:42:43AM -0200, Flavio Leitner wrote:
> > On Sun, 19 Nov 2017 10:58:11 -0800 Ben Pfaff <b...@ovn.org> wrote:  
> > > The other technical issue here is about whether && and || should be
> > > at the beginning or end of a line.  The coding style document,
> > > intentionally, does not take an explicit position on this, and I did
> > > not realize that the examples in the document are biased toward
> > > putting them at the beginning of the line.  OVS uses a mix of
> > > positions.  I personally tend to put them at the beginning of a line
> > > because I have a long history of writing code in the GNU coding
> > > style, which mandates this positioning, but others feel exactly the
> > > opposite (for example I believe that kernel style favors end-of-line
> > > positioning).  This is a debate that frankly I don't care much for
> > > and I'd prefer to leave it as a matter to individual taste.  (This
> > > is also why the coding style document gives some freedom in the
> > > positioning of /* and */ in comment blocks: there is a range of
> > > viewpoints on this and I think the answer doesn't matter.)  If
> > > necessary, I favor adding an explicit statement to the document
> > > saying that lines may be split before or after binary operators.
> > > (On the other hand I do prefer ? and : at the beginning of a line.)  
> > 
> > It all makes sense except for the freedom in the coding style. Too much
> > freedom means no standard.
> > 
> > It is natural that the code evolves and maybe new things will impact on
> > the current coding style guidelines.  I agree we don't need to rewrite
> > OVS every time that happens, but as it happened in this case, one could
> > update the style being used in a file at some point, so that the coding
> > style document rules the major portion of the code base.
> > 
> > I came from the kernel and yet the patch uses the other style, which
> > I figured was the preferable one. Even with that fossil in me a bit
> > reluctant to adopt mid-block declarations, I honestly don't care as
> > long as I can see a pattern ruling a good portion of the code.
> > 
> > Yes, I realize the proposed patch (please drop it) has changes going
> > in the other direction because it never occurred to me that we could
> > update the coding style with regards to where to break lines. 
> > 
> > How to decide which one is preferable?  Maybe take a snapshot of OVS
> > today and see what is mostly used and take from there?  
> 
> One reason that the coding style takes no position is that I can see an
> argument for each possibility.  Positioning a binary operator before a
> line break gives the operands a more consistent look, e.g.:
> 
>         a = (b |
>              c |
>              d);
> 
> but positioning after a line break better draws the eye to the binary
> operator, which makes it more obvious what's happening, e.g.:
> 
>         if (a
>             && b
>             && c)
> 
> These days, I personally choose a style depending on which of those
> factors I consider more important in an individual situation.
> 
> What do you think?

Both have pros and cons, so I have no definitive answer to each one
is better.

But I find more difficult to read and code when we have mixed styles,
don't you?

Interesting that the kernel style favors the end-of-line positioning,
so if we choose that, OVS would be one step closer to the kernel DP
coding style.

A quick stats shows OVS preference is more towards the other way though.
$ git grep '^[ \t]\+[&|\|]\{2\}' *.c | wc -l
1346 (60%)

$ git grep '[&|\|]\{2\}[ ]*$' *.c | wc -l 
865  (40%)

Perhaps it all boils down to the lack of documentation in the coding
style saying what you just said above. Because I was trying to follow
the style in each file, so every time I switch to another file, I have
to stop and find out which style is being used again and again. That
is annoying.  Therefore, your criteria helps a lot, because now I know
it's not per project and neither per file, it's about which one I consider
more suitable in each individual situation.

Thanks,
-- 
Flavio

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to