groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] <OK> Re: Back to the future


From: Mike Bianchi
Subject: Re: [Groff] <OK> Re: Back to the future
Date: Tue, 4 Mar 2014 11:51:11 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, Mar 04, 2014 at 12:57:20AM -0500, Eric S. Raymond wrote:
> Peter Schaffter <address@hidden>:
>       :
> > Corollary to acknowledging that groff's primary role is as a
> > typesetting backend is keeping debates about manpages, semantically
> > useful macros, and well-formed input files distinct from discussions
> > about code development.  What goes on in macroland should stay
> > in macroland.
> 
> Again, I agree.  Thus my hygiene proposal; that's how we keep the 
> macroland abstractions from being violated (when it's a good idea
> to enforce that, which is admittedly not always).

>>> On Tue, Feb 25, 2014 at 11:06:09AM -0500, Eric S. Raymond wrote:
>>> Now let us imaging adding two primitives to groff:
>>> 
>>> 1. Declare hygienic.  Takes a request or macro name, sets a 'hygienic'
>>> bit on it.
>>> 
>>> 2. Enable hygienic node.  After this point, all explicit requests without
>>> their hygienic bit set are disabled and cause a fatal error.  They
>>> can only be used within hygienic macro expansions.
>>> 
>>> Given this pair of primitives, backward compatibility and the goal of
>>> achieving semantic markup in groff would no longer be in conflict.
>>> Instead, macro packages get to choose where they sit on the
>>> structured-vs.-expressive continuum by what set of requests they
>>> allow.

> > If others on the list are prepared to make--and debate--"big
> > picture" suggestions for a statement of this sort, I will see to
> > the compiling and writing of it.

> All hail the new project leader! :-)

I propose the hygienic feature as a first project after we agree on the mission
statement.

        \#      declare all groff macros hygienic, default
        .hygienic ON   GROFFALL

        \#      declare all groff macros not hygienic
        \#      excludes  .hygienic
        .hygienic OFF  GROFFALL

        \#      change given macros hygienic modes
        .hygienic { OFF | ON }  macroname ...

        .macroset macrosetname  macroname ...          ?
        .hygienic { OFF | ON }  macrosetname ...       ?

        \#      set hygienic mode
        .hygienic { DISABLE | ENABLE }

It would help me stay disciplined in my own macro packages.

--
 Mike Bianchi
 Foveal Systems

 973 822-2085

 address@hidden
 http://www.AutoAuditorium.com
 http://www.FovealMounts.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]