bugGNU roff - Bugs: bug #62900, [mm] want pic flyback support

 
 

bug #62900: [mm] want pic flyback support

Submitter:  G. Branden Robinson <gbranden>
Submitted:  Mon 15 Aug 2022 04:17:57 AM UTC
   
 
Category:  Macro mm Severity:  1 - Wish
Item Group:  Feature change Status:  Fixed
Privacy:  Public Assigned to:  gbranden
Open/Closed:  Closed Planned Release:  1.23.0
* Mandatory Fields

Add a New Comment Rich Markup
   

Wed 17 Aug 2022 09:53:37 PM UTC, comment #1: 


commit 9101cecb3b2a7b08f5469497faffc0e2ba5001eb
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date:   Mon Aug 15 00:00:02 2022 -0500

    [mm]: Add new `PY` macro for pic flyback support.

    * contrib/mm/m.tmac (PY): Add new macro.

      (PE): Replace `init@reset` call with `PY` (and then space by half a
      vee as before).

    * contrib/mm/groff_mm.7.man (PY): Document it.

    Fixes <https://savannah.gnu.org/bugs/?62900>.


G. Branden Robinson <gbranden>
Group administrator
Mon 15 Aug 2022 04:17:57 AM UTC, original submission:  

See bug #60504 for background.

Unfortunately, a lack of communication (or something) between AT&T's mm team and Brian Kernighan foreclosed the possibility of the mm macro package supporting pic's `PF` token for ending a picture with "flyback" to the vertical position before it was drawn.

Since mm's `PF` is used for page footer management and has valid semantics if given no arguments, peaceful coexistence is foreclosed.

We can recover from this misfortune by introducing an alternate ending token `PY`, recognized by GNU pic and GNU mm, which does the same job as `PF` in the `pic` sense.

`PY` comes from the first (and stressed) vowel in "flyback".  It, too, collides with an existing usage, the postal address macro for Piscataway in AT&T ms.  From what I've seen, these postal address macros were used only in cover sheets for document formats groff ms also doesn't support.)  groff ms has never supported this macro and the population of Bell Labs ms documents employing pic originating from the Piscataway location is unknown.  I will self-servingly speculate that it is zero.

And even if it's not, I and other folks on the groff mailing list can aid with the surely minor changes that would be required to cope with them.

I judged "PL" a bad choice because I have plans to use it more widely as a register name for setting the page length on groff command lines.  Strictly, this isn't a name space collision because registers use a different space from macros/strings/diversions/requests, but it still seemed like a bad idea.  Further, the "l" in flyback "feels" phonemically weak, being a secondary member of a consonant cluster.  (This sort of casuistry is what we are reduced to when someone decides that TWO CHARACTERS ARE ENOUGH FOR YOUR IDENTIFIER NAME SPACE.  Gates and Allen thought the same when implementing BASIC for Intel 8080-based microcomputers in the 1970s.)

I considered extending GNU pic to use a longer token, like "PICF", but pic employs a hand-written recursive descent parser with limited pushback and it really looked like too much work with a substantially greater risk of introducing bugs.

Thus do I step on 'PY', intending to ruin it for everyone else henceforth.  Embrace groff and make your identifiers as long as you want.  (Or don't use pic if you don't need it.)

G. Branden Robinson <gbranden>
Group administrator

 

(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 gbranden (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 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2022-08-17 gbranden StatusIn Progress Fixed
        Open/ClosedOpen Closed
        Planned ReleaseNone 1.23.0

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code