LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Christoph Hellwig <hch@infradead.org>,
	Linux Doc Mailing List <linux-doc@vger.kernel.org>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	linux-kernel@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH 13/18] wait: wait.h: Get rid of a kernel-doc/Sphinx warnings
Date: Thu, 10 May 2018 10:04:13 -0300	[thread overview]
Message-ID: <20180510100413.754d1399@vento.lan> (raw)
In-Reply-To: <20180510122036.GD12217@hirez.programming.kicks-ass.net>

Em Thu, 10 May 2018 14:20:36 +0200
Peter Zijlstra <peterz@infradead.org> escreveu:

> On Thu, May 10, 2018 at 06:38:05AM -0300, Mauro Carvalho Chehab wrote:
> > Em Thu, 10 May 2018 01:38:38 -0700
> > Christoph Hellwig <hch@infradead.org> escreveu:
> >   
> > > >   * Use either while holding wait_queue_head::lock or when used for wakeups
> > > > - * with an extra smp_mb() like:
> > > > + * with an extra smp_mb() like::    
> > > 
> > > Independent of any philosophical discussion not allowing a setence to
> > > end with a single ':' is completely idiotic.  Please fix the tooling
> > > instead to allow it, as it is very important for being able to just
> > > write understandable comments.  
> 
> That is exactly my point; the whole rst stuff detracts from normal text.
> It makes both reading and writing harder than it needs to be.
> 
> > Patches are welcome, although I don't see any easy way to solve it.
> > 
> > In English, the common case is that a line with ends with a colon is
> > followed by a list. E. g.  
> 
> (google) Dictionary says:
> 
> "a punctuation mark (:) used to precede a list of items, a quotation, or
> an expansion or explanation."
> 
> An enumeration (list) is just one of many possible uses of the colon.

True, but the point is that whatever tool is used, it should be able
to uniquely unambiguously identify what it follows.

For example, it if is a list of items, it should keep parsing the
semantics markups inside it e. g. marking %FOO as a constant,
and bar() as a function, etc, following kernel-doc syntax. 

But, if it is a quote, a code example or an ascii artwork, it
should disable all such parsers, enclosing the result into a
literal block.

> > However, in this specific case, it is followed by an ascii artwork. 
> > The double colon is a notation that tells Sphinx to not parse the
> > lines at the next block, placing the contents of it inside a literal
> > block. It is used also when the next lines contain a code example,
> > in order to avoid parsing things like @, () and * inside the code 
> > block.
> > 
> > The kernel-doc tool might eventually have some parsing logic that
> > would replace something to a '::' before sending it to Sphinx.  
> 
> I think typically there will be an 'empty' line between the colon ending
> and the 'example/explanation'. This seems true for a number of comments
> I found in drm using the '::' nonsense.

Unfortunately, that's not true treewide. The presense/absense of a
blank line after a line ending with a colon doesn't indicate if the contents
below should be handled as a literal block or not[1].

[1] you can verify some use cases with:
	$ git grep -A2 "\*.*\s.*:$" -- $(git grep kernel-doc:: Documentation/|cut -d : -f 4-)

> Simple regexes don't do multi-line patterns, but maybe the kerneldoc
> thing can parse it differently.

kernel-doc is a regex-based parser (and not an AI engine). It will do only
what it is programmed for, based on a clear regex-based semantics.

Independently on how easy/hard it would be to use a multi-line pattern
for this, what it is required is a clear non-hint based pattern that
will provide a match for a part of the tag that should be escaped
from normal parsing rules. The m/::$/ is a clear rule.

Do you have a proposal for some other rule? If so, I can see how
feasible is to add it there.

Thanks,
Mauro

  reply	other threads:[~2018-05-10 13:04 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-07  9:35 [PATCH 00/18] Fix some build warnings/errors with Sphinx Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 01/18] docs: can.rst: fix a footnote reference Mauro Carvalho Chehab
2018-05-07 18:41   ` Oliver Hartkopp
2018-05-07  9:35 ` [PATCH 02/18] docs: fix location of request_firmware & friends Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08 15:49   ` Luis R. Rodriguez
2018-05-09 12:26     ` Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 03/18] docs: */index.rst: Add newer documents to their respective index.rst Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08 15:59   ` Jonathan Corbet
2018-05-07  9:35 ` [PATCH 04/18] docs: admin-guide: add bcache documentation Mauro Carvalho Chehab
2018-05-08 16:01   ` Jonathan Corbet
2018-05-07  9:35 ` [PATCH 05/18] docs: core-api: add cachetlb documentation Mauro Carvalho Chehab
2018-05-07 12:29   ` Andrea Parri
2018-05-08 14:40     ` Jani Nikula
2018-05-08 16:02       ` Andrea Parri
2018-05-08 16:28         ` Andrea Parri
2018-05-08 18:05       ` Mauro Carvalho Chehab
2018-05-08 18:28         ` Mauro Carvalho Chehab
2018-05-08 19:05           ` Andrea Parri
2018-05-08 16:04   ` Jonathan Corbet
2018-05-08 16:51     ` Andrea Parri
2018-05-07  9:35 ` [PATCH 06/18] docs: core-api: add cgroup-v2 documentation Mauro Carvalho Chehab
2018-05-08 15:51   ` Jonathan Corbet
2018-05-09 12:02     ` Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 07/18] docs: core-api: add circular-buffers documentation Mauro Carvalho Chehab
2018-05-07 12:31   ` Andrea Parri
2018-05-08 16:08   ` Jonathan Corbet
2018-05-07  9:35 ` [PATCH 08/18] docs: driver-api: add clk documentation Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08 16:10   ` Jonathan Corbet
2018-05-07  9:35 ` [PATCH 09/18] net: mac80211.h: fix a bad comment line Mauro Carvalho Chehab
2018-05-07 12:37   ` Kalle Valo
2018-05-07 12:38     ` Johannes Berg
2018-05-09 12:04       ` Mauro Carvalho Chehab
2018-05-09 12:04         ` Johannes Berg
2018-05-07  9:35 ` [PATCH 10/18] rcu: rcupdate.h: get rid of Sphinx warnings at rcu_pointer_handoff() Mauro Carvalho Chehab
2018-05-07 14:23   ` Paul E. McKenney
2018-05-09 11:55     ` Mauro Carvalho Chehab
2018-05-14 19:40       ` Paul E. McKenney
2018-05-07  9:35 ` [PATCH 11/18] docs: crypto_engine.rst: Fix two parse warnings Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 12/18] time: timer.c: adjust a kernel-doc comment Mauro Carvalho Chehab
2018-05-13 14:00   ` [tip:timers/core] timers: Adjust " tip-bot for Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 13/18] wait: wait.h: Get rid of a kernel-doc/Sphinx warnings Mauro Carvalho Chehab
2018-05-09  8:41   ` Peter Zijlstra
2018-05-09 14:45     ` Jonathan Corbet
2018-05-09 15:20       ` Peter Zijlstra
2018-05-09 18:35         ` Jonathan Corbet
2018-05-09 18:50           ` Markus Heiser
2018-05-09 19:31           ` Peter Zijlstra
2018-05-10 12:23       ` Andrea Parri
2018-05-10 13:15         ` Jonathan Corbet
2018-05-10 16:52           ` Andrea Parri
2018-05-10 17:45             ` Mauro Carvalho Chehab
2018-05-10  8:38   ` Christoph Hellwig
2018-05-10  9:38     ` Mauro Carvalho Chehab
2018-05-10 12:20       ` Peter Zijlstra
2018-05-10 13:04         ` Mauro Carvalho Chehab [this message]
2018-05-10 13:30       ` Jonathan Corbet
2018-05-10 13:31         ` Jonathan Corbet
2018-05-10 14:21         ` Mauro Carvalho Chehab
2018-05-10 15:38           ` Jonathan Corbet
2018-05-10 16:42             ` Mauro Carvalho Chehab
2018-05-10 17:14               ` Mauro Carvalho Chehab
2018-05-11  7:06               ` Markus Heiser
2018-05-07  9:35 ` [PATCH 14/18] fbdev: modedb.c: fix a kernel-doc markup Mauro Carvalho Chehab
2018-05-15 10:22   ` Bartlomiej Zolnierkiewicz
2018-05-07  9:35 ` [PATCH 15/18] iio: iio.h: use nested struct support on " Mauro Carvalho Chehab
2018-05-07 17:08   ` Jonathan Cameron
2018-05-09 12:00     ` Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 16/18] mtd: rawnand.h: use nested union kernel-doc markups Mauro Carvalho Chehab
2018-05-07  9:46   ` Boris Brezillon
2018-05-07 11:32     ` Mauro Carvalho Chehab
2018-05-09 12:02       ` Boris Brezillon
2018-05-09 12:10       ` Mauro Carvalho Chehab
2018-05-09 12:22         ` Boris Brezillon
2018-05-09 13:28           ` Mauro Carvalho Chehab
2018-05-09 15:56   ` Boris Brezillon
2018-05-07  9:35 ` [PATCH 17/18] docs: uio-howto.rst: use a code block to solve a warning Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-07  9:35 ` [PATCH 18/18] w1: w1_io.c: fix a kernel-doc warning Mauro Carvalho Chehab
2018-05-08 11:03   ` Evgeniy Polyakov
2018-05-09 12:32     ` Mauro Carvalho Chehab
2018-05-09 13:11       ` Jonathan Corbet
2018-05-10 10:37         ` Evgeniy Polyakov
2018-05-08 16:13 ` [PATCH 00/18] Fix some build warnings/errors with Sphinx Jonathan Corbet
2018-05-08 17:36   ` Luis R. Rodriguez

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=20180510100413.754d1399@vento.lan \
    --to=mchehab+samsung@kernel.org \
    --cc=corbet@lwn.net \
    --cc=hch@infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mchehab@infradead.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --subject='Re: [PATCH 13/18] wait: wait.h: Get rid of a kernel-doc/Sphinx warnings' \
    /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

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).