[Top][All Lists]

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

Re: [Groff] mdoc considered harmful

From: Ingo Schwarze
Subject: Re: [Groff] mdoc considered harmful
Date: Fri, 7 Mar 2014 22:46:22 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Hi Eric,

Eric S. Raymond wrote on Fri, Mar 07, 2014 at 04:03:49PM -0500:
> Kristaps Dzonsons <address@hidden>:
>> esr wrote:

>>> The effort required to get this far with mdoc was extreme even for
>>> me. Thus I consider that effort very unlikely to be successfully
>>> replicated - I doubt anyone else will have the stamina required.

>> Er...

> An implementation by the *designer of mandoc* -

Please do not confuse mandoc(1) and mdoc(7).

Kristaps is the designer of the mandoc(1) utility program,
but not the designer of the mdoc(7) markup language.

I still do not know who designed the mdoc(7) language.  The Berkeley
Computer Systems Research Group SCCS logs clearly show that the
design and implementation were mostly ready by June 11, 1990, when
Cynthia Livingston switched the system to work with mdoc(7) and
man(7) by default, and when she started to convert all the manuals.
But she didn't check in the actual macro file until March 7, 1991.
The first release containing the macro set was 4.3BSD-Reno, released
in June 1990.

It is possible that Cynthia designed it herself, or she may
has taken up the work of another CSRG member.  Maybe i'll ask
Marshall Kirk McKusick one day, he will probably remember,
and if he doesn't, he can ask Cynthia.

> which, moreover, does not do semantic parsing -

Oh, it does.  Run

  mandoc -Ttree file.mdoc

and you see the tree of semantically annotated nodes.
That's why it's so good as a basis for [X]HTML and databases.

> is not much evidence that anyone else can ever do it.
> You had the option of changing the source language to
> make your job easier.  I didn't.

Kristaps would have liked to change the source language now and
then, for example he wanted to abolish .Xo, and he even started to
head into that direction at one or two points in time, but we didn't
have that option.  The task was to support the many thousands of
existing real-world mdoc(7) manuals, using the classical language
as it is defined, and supporting both semantic output
and byte-by-byte-groff-identical terminal output.


reply via email to

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