bugGNU roff - Bugs: bug #62233, stop referring to roff as a group...

 
 

bug #62233: stop referring to roff as a group of languages

Submitter:  John Gardner <alhadis>
Submitted:  Wed 30 Mar 2022 01:49:36 AM UTC
   
 
Category:  General Severity:  3 - Normal
Item Group:  Documentation Status:  Fixed
Privacy:  Public Assigned to:  gbranden
Open/Closed:  Closed Planned Release:  1.23.0
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Sat 16 Apr 2022 09:07:24 AM UTC, comment #9: 


commit 80afae9f405a038c66d5682368f4069d8f9d0d54
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date:   Wed Apr 13 12:55:00 2022 +1000

    [docs]: Speak in terms of "the roff language".

    * doc/groff.texi:
    * doc/ms.ms:
    * man/groff.7.man: Characterize "roff language" in the singular, not the
      plural, emphasizing the similarity of extant specimens.

    * doc/groff.texi (Conventions Used in This Manual): Add paragraph
      discussing denotations of "groff" and "roff".

    Fixes <https://savannah.gnu.org/bugs/?62233>.  Thanks to John Gardner
    and Dave Kemper for the discussion.


G. Branden Robinson <gbranden>
Group administrator
Wed 13 Apr 2022 02:20:15 AM UTC, comment #8: 

I'm sold.  Working on it.

G. Branden Robinson <gbranden>
Group administrator
Wed 30 Mar 2022 06:06:47 PM UTC, comment #7: 

Bug submitted.  If you have any additional info that might help them debug (e.g., you Previewed before Submitting, and the entire comment looked fine then), post it over at http://savannah.nongnu.org/support/index.php?110626

Dave <barx>
Group Member
Wed 30 Mar 2022 05:55:04 PM UTC, comment #6: 

Very odd.  All five paragraphs got emailed (http://lists.gnu.org/r/bug-groff/2022-03/msg00211.html), and all show up in the "Post a Comment" box if you hit the "Quote" button above comment #4.  So savannah has retained the entire comment in its innards; it's only in the display that everything beyond the first paragraph is eaten.  Looks like a savannah bug to me.

Since all the other multi-paragraph comments in this bug report display OK, I wonder if you accidentally put a control character into your post that's confusing savannah?  It's some kind of edge case; I've often bloviated at length in savannah comments and not had it cut me off so rudely.

I'll open a bug against savannah about it; they're usually quick about addressing straightforward rendering problems like this.

Dave <barx>
Group Member
Wed 30 Mar 2022 11:20:22 AM UTC, comment #5: 

I've no idea why Savannah ate 90% of that comment... How the hell do you post a multiline comment on this thing?

John Gardner <alhadis>
Wed 30 Mar 2022 11:18:53 AM UTC, comment #4: 

Let's be practical. Users know Roff when they see it: a backslash-laden markup language punctuated by directives that begin with a full-stop or apostrophe at the very beginning of a line, often with terse, cryptic-looking names. This description fits AT&T, GNU, and Heirloom's input syntaxes equally well, and these distinctive qualities are immediately recognisable even to readers with minimal exposure to the Troff system.

On the other hand, users aren't going to discriminate between implementations when reading a document's source code. Nobody opens an +verbatim+.ms-verbatim- file and thinks "Is this language GNU Roff or Heirloom Roff"? Hell, with the amount of overlap between modern implementations, it won't always be possible to distinguish which flavour of Troff a document was written for (particularly in macro packages).

Ergo, readers will understand what "the roff language" refers to, but how they interpret "roff languages" depends largely on their awareness of other Troff implementations, and/or whether their exposure to Troff extends beyond cargo-culted man(7) pages.

> I've never seen a BNF-style grammar for it


Because *BNF grammars are ill-equipped to describe languages that can modify the rules of their own syntax at runtime. TeX is the better-known example of such a language, but this applies to Roff as well.

> C programmers speak even to each other in terms of "C99", "C11", "K&R C"


Yes, but nobody considers C99 a different language to C11, or C89, right? Rather, they're acknowledged to be different revisions of a standard that build on the one that preceded it.

John Gardner <alhadis>
Wed 30 Mar 2022 10:38:22 AM UTC, comment #3: 


comment #2:

> I do see your point, but I'm not sure I'm sold on the idea that the lack of a formal spec constitutes grounds for considering the various roff implementations as each a separate language unto itself.


It's not quite grounds, but it is suggestive to me.

> They seem more akin to dialects: someone who knows one dialect can pretty easily make sense of a document written in another.  (If that "someone" is a person.  Computers are less forgiving, but this is inherent in the rigidity of algorithms; C code that uses gcc extensions might fail to compile on other C compilers, but no one seems to be clamoring to call such code a separate language.)


C programmers speak even to each other in terms of "C99", "C11", "K&R C", and over on TUHS we sometimes see references to "Typesetter C" (guess what typesetter they mean?).

I'll grant, that might reinforce your point as much as it does mine.  These languages are all "C" for broad purposes, and people get more specific when they need to.

> The sheer amount of effort that most modern troffs put into reproducing even the most absurd aspects of Unix V7 troff seems to argue that they're all seeking to speak a common tongue.


Acknowledged.

> I appreciate your wanting to be as accurate as possible.  But does sticking to strict accuracy here obscure a deeper truth about the basic commonalities of all the roff variants?


I should research a point I've been wondering about for a while.  As far as I know, roff(1) didn't have escape sequences at all.  (At the time nroff was written, as I understand it, it didn't have macros, either, but they were retrofitted into it before it was left to...stabilize.)

Okay, I'm beginning to budge on the point.

G. Branden Robinson <gbranden>
Group administrator
Wed 30 Mar 2022 09:15:35 AM UTC, comment #2: 

I do see your point, but I'm not sure I'm sold on the idea that the lack of a formal spec constitutes grounds for considering the various roff implementations as each a separate language unto itself.  They seem more akin to dialects: someone who knows one dialect can pretty easily make sense of a document written in another.  (If that "someone" is a person.  Computers are less forgiving, but this is inherent in the rigidity of algorithms; C code that uses gcc extensions might fail to compile on other C compilers, but no one seems to be clamoring to call such code a separate language.)  The sheer amount of effort that most modern troffs put into reproducing even the most absurd aspects of Unix V7 troff seems to argue that they're all seeking to speak a common tongue.

I appreciate your wanting to be as accurate as possible.  But does sticking to strict accuracy here obscure a deeper truth about the basic commonalities of all the roff variants?

Dave <barx>
Group Member
Wed 30 Mar 2022 03:15:18 AM UTC, comment #1: 


original submission:

> Our Texinfo manual uses the term "roff languages" (plural) instead of "[the] roff language" (referring to a specific entity).


Yes.  This term is, I think, my coinage, and if it's not, I've done a lot to propagate it through our documentation.

Bernd used the same term as an umbrella under which to group the lexica of macro packages; I don't find that a worthwhile usage since none of these differ in syntax.  I rewrite these when I happen across them.

> The former wording is misleading and inconsistent with docs that (correctly) refer to Roff as a solitary programming language,


What documents are these?

> albeit one that's been extended several times by various implementations.


I'm resistant to making such a change.

I guess the main reason is that I cannot see that anyone anywhere has formally defined "the roff language".  I've never seen a BNF-style grammar for it, and the section "Text" I wrote for our Texinfo manual is the closest thing I've seen to an informal survey of the syntax.  (One can distill such a thing from CSTR #54, but that document doesn't try to present the syntax per se, instead admixing it with a comprehensive survey of features.  Admittedly, my approach isn't pure either, because it's larded with hand-holding pedagogy.)

By saying "roff languages", I do not suggest the existence of a single formal specification of the grammar (which doesn't exist--wait, here comes somebody to tell me that Unix V7 troff C source files with a hand-written recursive descent parser constitutes one--no, it doesn't, and if it did it would invalidate the identification of groff as a "roff language", which is probably the point of the intervention, so go away), and I create uncertainty in the reader's mind regarding the existence of same.

That's good!  Or, at least, it fails to pretend, which is better than lying.

Do you see the method behind my madness?  Where does there exist a formal spec of "the roff language" that will admit Unix V7 troff, Heirloom Doctools troff, and GNU troff?

G. Branden Robinson <gbranden>
Group administrator
Wed 30 Mar 2022 01:49:36 AM UTC, original submission:  

Our Texinfo manual uses the term "roff languages" (plural) instead of "[the] roff language" (referring to a specific entity).

The former wording is misleading and inconsistent with docs that (correctly) refer to Roff as a solitary programming language, albeit one that's been extended several times by various implementations.

John Gardner <alhadis>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by barx (Posted a comment)
  • -email is unavailable- added by gbranden (Posted a comment)
  • -email is unavailable- added by alhadis (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2022-04-16 gbranden StatusIn Progress Fixed
        Open/ClosedOpen Closed
        Planned ReleaseNone 1.23.0
        Summary[doc] Stop referring to Roff as a group of languages stop referring to roff as a group of languages
    2022-04-13 gbranden StatusNeed Info In Progress
    2022-03-30 gbranden StatusNone Need Info
        Assigned toNone gbranden

    Back to the top

    Powered by Savane 3.13-bb6a.
    Corresponding source code