On Tue, Mar 04, 2014 at 12:57:20AM -0500, Eric S. Raymond wrote:
> Peter Schaffter <[email protected]>:
> :
> > 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
[email protected]
http://www.AutoAuditorium.com
http://www.FovealMounts.com