From: Alejandro Colomar <alx@kernel.org>
To: "G. Branden Robinson" <g.branden.robinson@gmail.com>
Cc: Hugo Buddelmeijer <hugo@buddelmeijer.nl>, linux-man@vger.kernel.org
Subject: Re: table layout in console_codes.4 (was: `make -R check` fails due to futex_waitv.2 and console_codes.4 being too wide)
Date: Fri, 23 Oct 2026 23:16:51 +0200 [thread overview]
Message-ID: <atvMKTY2CzXxDiGY@debian> (raw)
In-Reply-To: <20261023203216.mfhfyadcesawur55@illithid>
[-- Attachment #1: Type: text/plain, Size: 10350 bytes --]
Hi Branden,
> Date: 2026-10-23 15:32:16-0500
> From: "G. Branden Robinson" <g.branden.robinson@gmail.com>
>
[...]
>
> > > > I'd love a formal patch, especially with a good commit message.
> > > > :)
> > >
> > > I'm sure. But I'm dealing with yet another late-release-cycle fire
> > > drill in groff right now, unfortunately.
> >
> > I'm patient. MR.sed made me learn. :p
>
> I learned from it too.
>
> Some news on that front. Would you be willing to stage the roll-out
> of this transition?
Certainly! One major problem from your script was that it was huge and
difficult to understand. Partial scripts will be significantly simpler.
> The syscalls(2) page is what broke us before--you
> wanted extensive annotations to my sed scripts.
Actually, I would have preferred a pipeline of one-liner commands,
without having to be a sed(1) expert to understand it. Something like
the implementation of sortman(1) would be great.
> (Not unreasonable, but
> demanding of further effort on my part.) The rest seemed easy. Maybe
> if we can migrate:
>
> 1. everything but syscalls(2) first; then
Sure; as long as the commit message says something like "we're leaving
syscalls(2) --and only syscalls(2)-- out of this transition, because
it's way more complex than the rest", I'd take it.
> 2. migrate syscalls(2) in multiple passes, each of 1 sed script, each
> showing no change in the formatting of rendered text.
Yup.
> I think users and readers will enjoy (and could have been enjoying) a
> major benefit to their man page browsing experience even with only step
> 1 done. Now that GNU less has its own OSC 8 interpreter and
> appropriately equipped versions are making it into distributions, the
> power of man page hyperlinking is easy to see. Literally, even, with
> even more recent changes to apply underlining to hyperlinked character
> cells. The latest version of less, v712, released this past week, even
> defaults to "less -R".[0] A future I dreamed of in 2018 is finally
> arriving.
>
> In other news, Oracle finally did a thing I once thought they had done
> in Solaris 11, then had to correct my understanding about, and then had
> to re-correct myself again.
>
> About 2½ years ago, in SRU66 (a kind of service pack), an update to
> Solaris 11.4, Oracle completely discarded their AT&T System V troff.
> It's _gone_. What replaced it? groff 1.23.0--which supports groff
> man's `MR` macro.[1]
Wow! :-)
>
> They kept some auxiliary stuff like checkeq(1) and checkmm(1) (neither
> of which GNU eqn or groff mm need, since they internally implement more
> generous diagnostics than their AT&T implementations). And they
> implemented a bunch of wrappers to force preconv(1) into execution
> pipelines.
>
> So between groff >= 1.23.0 and, well, the _next_ release of mandoc(1)--
> any day now, it's to be hoped--support for `MR` will be nearly
> universal.
Very please CC Ingo in that patch. :)
> I didn't ever expect mandoc's release cadence to become slower than
> groff's!
Heh!
> > > And on second thought it occurs to me that you may not want that
> > > column in the table after all, since they are all *roff comments
> > > intended (I think) only for inspection by the document maintainer,
> > > not by the reader. In that case what you want to do is not add a
> > > column, but stop supplying excess table entries--in other words,
> > > discard the tab character before the `\"` comment escape sequence.
> >
> > Yes, and no.
> >
> > > diff --git a/man/man3/matherr.3 b/man/man3/matherr.3
> > > index 2e179e358..8711ee3cd 100644
> > > --- a/man/man3/matherr.3
> > > +++ b/man/man3/matherr.3
> > > @@ -200,9 +200,9 @@ .SS Math functions that employ matherr()
> > > acos(|x|>1) DOMAIN HUGE y EDOM
> > > asin(|x|>1) DOMAIN HUGE y EDOM
> > > atan2(0,0) DOMAIN HUGE y EDOM
> > > -acosh(x<1) DOMAIN NAN y EDOM \" retval is 0.0/0.0
> > > -atanh(|x|>1) DOMAIN NAN y EDOM \" retval is 0.0/0.0
> > > -atanh(|x|==1) SING (x>0.0)? y EDOM \" retval is x/0.0
> > > +acosh(x<1) DOMAIN NAN y EDOM\" retval is 0.0/0.0
> > > +atanh(|x|>1) DOMAIN NAN y EDOM\" retval is 0.0/0.0
> > > +atanh(|x|==1) SING (x>0.0)? y EDOM\" retval is x/0.0
> >
> > It was certainly more readable with the tab. Would a couple of spaces
> > be okay? Or will they produce spurious space too that might fail?
>
> The problem is that you'll still have a comment escape sequence in a
> table entry. Since groff 1.24.0, GNU tbl warns about that (unless the
> comment escape sequence occurs in a text block, where these escape
> sequenced don't cause problems). Unfortunately groff 1.24.x produce an
> extra warning diagnostic in this case that is not helpful. I just
> discovered that while composing this email and have scheduled a fix for
> groff 1.25.0.[2]
We can wait for 1.25.0.
> $ ./build/test-groff -tz -W style -m an -T utf8 ../man-pages/man3/matherr.3
> tbl:../man-pages/man3/matherr.3:240: warning: comment escape sequence '\"' in entry "EDOM\" different from log()"
> tbl:../man-pages/man3/matherr.3:241: warning: comment escape sequence '\"' in entry "EDOM\" different from log()"
> tbl:../man-pages/man3/matherr.3:248: warning: comment escape sequence '\"' in entry "EDOM\" +0 and -0"
> troff:../man-pages/man3/matherr.3:203: warning: missing closing delimiter in width computation escape sequence; expected special character or class 'tbl', got a newline [-w delim]
> troff:../man-pages/man3/matherr.3:204: warning: missing closing delimiter in width computation escape sequence; expected special character or class 'tbl', got a newline [-w delim]
> troff:../man-pages/man3/matherr.3:205: warning: missing closing delimiter in width computation escape sequence; expected special character or class 'tbl', got a newline [-w delim]
> troff:../man-pages/man3/matherr.3:240: warning: missing closing delimiter in width computation escape sequence; expected special character or class 'tbl', got a newline [-w delim]
> troff:../man-pages/man3/matherr.3:241: warning: missing closing delimiter in width computation escape sequence; expected special character or class 'tbl', got a newline [-w delim]
> troff:../man-pages/man3/matherr.3:248: warning: missing closing delimiter in width computation escape sequence; expected special character or class 'tbl', got a newline [-w delim]
> troff:../man-pages/man3/matherr.3:256: warning: missing closing delimiter in width computation escape sequence; expected special character or class 'tbl', got a newline [-w delim]
> ../man-pages/man3/matherr.3:199: warning: table wider than line length minus indentation
>
> The riot of delimiter warnings is the havoc that use of a comment escape
> sequence in a (non-text-block) table entry creates.
>
> I added that warning in groff 1.24.0 because without it, a user is
> unlikely to comprehend what is supposed to be wrong with their table.
>
> Or they would have been uncomprehending, had they enabled warnings in
> category "delim", which were not on by default. In groff 1.25.0, they
> will be.
I trust you to send me your best patch, because I don't know what to do
with it. If you think the best thing is to juts remove the tabs, I
guess I could live with it.
>
> > [...]
> > >
> > > (Also attached.)
> > >
> > > If the foregoing looks ugly, bear in mind that you're wandering a
> > > bit off the path with these comments.
> > >
> > > tbl(1):
> > > Limitations
> > > Within a tbl region (except in text blocks or on roff control
> > > lines), avoid escape sequences that read the rest of the input
> > > line, as \" and \! do.
> >
> > Hmmm.
>
> This is a consequence of how tbl works. It generates *roff `\w` escape
> sequences bracketing the table entry contents so that the formatter can
> compute their rendered widths. Without font metrics, tbl cannot do that
> itself.
>
> My recommendation is to move these "inline" comments to precede what
> they document.
>
> -acosh(x<1) DOMAIN NAN y EDOM \" retval is 0.0/0.0
> +.\" retval is 0.0/0.0
> +acosh(x<1) DOMAIN NAN y EDOM
Not a fan of this. Maybe just remove the tabs. Or maybe we want to
print these in the table as a new column?
> > > > > I was able to get a complete, successful check with the
> > > > > following command.
> > > > >
> > > > > $ make -R check NROFF_LINE_LENGTH=80 NROFFFLAGS=-Wstyle
> > > >
> > > > Thanks! Would you mind sending a formal patch set? =)
> > >
> > > I'll need a reminder when I feel less swamped (after groff 1.25.0,
> > > likely), or someone else can steal my fixes. :)
> >
> > Okay. Do you have an estimate of when I should poke you? As in maybe
> > one month or two?
>
> Say, two weeks after groff 1.25.0 final, which I'll announce here as
> usual. By then I should know if the release was a triumph, a disaster
> (and therefore will be keeping me busy), or met with the usual stony
> indifference.
Ok.
> > > Yeah, I wouldn't want to fool with it before it lands in an official
> > > release, either. But this _does_ mean that the Linux man-pages
> > > documents will appear to "regress" suddenly when the host system
> > > upgrades to groff 1.25.0, because you use `-ww` to turn on all
> > > warnings.
> >
> > If you're willing to spend some time on helping me address the
> > diagnostics by improving the pages, that's fine. :)
>
> I don't doubt it. I have a lot of irons in man page fires!
:-)
Have a lovely night!
Alex
>
> Regards,
> Branden
>
> [0] https://github.com/gwsw/less/commit/7f46e9ff46216f3e560cd1f41ddf3b36b11eec0e
> [1] https://blogs.oracle.com/solaris/whats-new-in-oracle-solaris-114-sru-66
>
> That blog entry doesn't make any _note_ of this change, but it's
> there. I have been able to examine it at cfarm.net.
>
> Also, there's this evidence:
>
> http://pkg.oracle.com/solaris/release/en/search.shtml?token=groff&action=Search
>
> [2] https://savannah.gnu.org/bugs/?68825
--
<https://www.alejandro-colomar.es>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2026-10-23 21:16 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-17 19:19 `make -R check` fails due to futex_waitv.2 and console_codes.4 being too wide Hugo Buddelmeijer
2026-10-19 6:20 ` Alejandro Colomar
2026-10-19 13:02 ` table layout in console_codes.4 (was: `make -R check` fails due to futex_waitv.2 and console_codes.4 being too wide) G. Branden Robinson
2026-10-19 16:55 ` Alejandro Colomar
2026-10-19 18:32 ` table layout in console_codes.4 Hugo Buddelmeijer
2026-10-19 22:41 ` table layout in console_codes.4 (was: `make -R check` fails due to futex_waitv.2 and console_codes.4 being too wide) G. Branden Robinson
2026-10-23 18:06 ` Alejandro Colomar
2026-10-23 20:32 ` G. Branden Robinson
2026-10-23 21:16 ` Alejandro Colomar [this message]
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=atvMKTY2CzXxDiGY@debian \
--to=alx@kernel.org \
--cc=g.branden.robinson@gmail.com \
--cc=hugo@buddelmeijer.nl \
--cc=linux-man@vger.kernel.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.