I did just that. The National Bureau of Standards picked it up
in NBS Handbook 131, "Using ANS FORTRAN" (1980). It is expressed
in the same formalism that Burroughs used for Algol.
Doug
Thhis is a cross-posting from the groff mailing list, where
it was speculated that without roff there might be no Unix.
Old hands will be familiar with the story.
> Without roff, Unix might well have disappeared.
The patent department and the AT&T president's office are the
only in-house examples I know where Unix was adopted because
of *roff.
The important adoptions, which led Berk Tague to found
a separate Unix Support Group, were mainstream telephone
applications and PWB, a Unix-based IDE.
The first telephone application happened in the field. An
engineer in Charlotte, NC, heard of this cheap easily programmed
system and proposed to use it to automate the scheduling and
dispatch of maintenance on the floor of a wire center. Ken
visited to help get them started.
The first Bell Labs telephone application was automating
the analysis of central-office trouble reports. These had
been voluminous stacks of punched cards that reported every
anomaly detected in huge electromechanical switches. The Unix
application captured the data on line and identfied systematic
failures in real time.
The patent adoption was a direct result of Joe Ossanna's
salesmaship. Other early adopters were self-motivated,
but the generous support lent by Ken, Joe, and others was
certainly a tipping force that helped turn isolated events
into a self-sustaining movement.
Doug
Regardless of standards considerations, if there's any advice
that needs to be hammered into man authors, it's to be concise
and accurate, but not pedantic. As Will Strunk commanded,
"Omit needless words."
The most needless words of all are promotional. No man page
should utter words like "powerful", "extraordinarily versatile",
"user-friendly", or "has a wide range of options".
As another instance of the rule, it would be better to recommend
short subtitles than to help make them long by recommending
quotes. If anything is said about limited-length macros, it
would best be under BUGS.
As editor for v7-v10, I would not offer v7 as a canonical
model. It owed its use of boldface in SYNOPIS to the limited
number of fonts (Typically R,F,I,S) that could be on our
typesetter at the same time. For v9 we were able to follow
Kernighan and adopt a distinct literals font (L, which happened
to be Courier but could have been identified with bold had we
wished). I still think this is the best choice.
As for options, v7 is a very poor model. It has many pages
that describe options in line, just as v1 had done for its
few options (called flags pre-v7). By v10 all options were
displayed in a list format.
For nagging reasons of verbal continuity, the options displays
were prefaced by *needless words* like, "The following options
are recognized". A simple OPTIONS heading would be better.
Unfortunately, an OPTIONS heading would intrude between the
basic description and less important details that follow
the options. (I don't agree that it would come too closely
after DESCRIPTION; a majority of man pages already have even
shorter sections.) OPTIONS could be moved to the end of
DESCRIPTION. However, options may well be the biggest reason
for quick peeks at man pages; they should be easy to spot. It
has reasonably been suggested that OPTIONS should be a .SS
subsection. That might be followed by .SS DETAILS.
Doug
Grant:
Sorry, I mistook the context to be that you wrote something to write the
cf file / language for you.
===
Yep, evidently I didn't write clearly enough. Sorry about that.
(Which links us nicely back to the Subject: line, and
the concise clarity of the original manual-entry style!)
Norman Wilson
Toronto ON
WIlliam Cheswick <ches(a)cheswick.com> wrote:
> As for the configuration: when Norman Wilson moved to Toronto, he
> implemented some form of little language for configuring sendmail,
> treating it somewhat as an assembly language.
Bill's half right. I didn't invent a language; I used what was there.
I decided that the best way to deal with Sendmail's own configuration
language was to treat it as I would the assembly language for a
specialized, irregularly-designed microprocessor:
1. Understand as well as possible what the instructions actually do;
2. Write the simplest possible program that will get the job done;
3. Avoid extra layers of macros and so on that hide the details, because
that also hides the irregularities and makes it harder to understand
and debug;
4. By the same reason, don't just copy someone else's program that
does something complicated; write your own and do things simply.
Sendmail has plenty of design flaws (not just in the language), as
I'm sure Eric will acknowledge; but I think the biggest problem
people have had with it that most people copied the rather-complicated
sample configuration files shipped with the source rather than just
reading the manual, doing a few experiments to understand the behaviour,
and writing something simple.
On the other hand, I've never quite understood why so many people
treat device drivers as scary and untouchable, copying an existing
one and hacking it until it seems to work rather than understanding
what the device actually does and writing a simple program to control
it. So perhaps my brain just doesn't work normally.
Norman Wilson
Toronto ON
On 2018-11-29 1:04 PM, Ken Thompson wrote:
> its name became astro and it is on the old backup tapes.
> written in c. it has old elements for everything. published
Thanks.
Was it rewritten? Your story has it dating at least back to 1966, which
made me think it might not have been C.
--Toby
> elements are now in a different form and a different time
> base, so it needs updating to bring it into the 21st century.
> if all you want is the earth, moon, and sun, then it might
> be ok. the earth rotation fudge (delta-t) might need to be
> re-estimated to get second accuracy.
>
>
> On Thu, Nov 29, 2018 at 9:54 AM, Toby Thain <toby(a)telegraphics.com.au> wrote:
>> On 2018-11-27 11:48 PM, Ken Thompson via TUHS wrote:
>>> ...
>>> a version of azel was maintained all the time
>>> i was at bell labs.
>>
>> As soon as I read this it's been on my mind to ask: Does this program
>> survive? Presumably it was Fortran? What did it run on?
>>
>> --Toby
>>
>
> Joe sold the (not really existent) UNIX system to the patent department of AT&T,
> which in turn bought the urgently needed PDP11. Without that there would be no
> UNIX. Without Joe there would be no UNIX.
That one's an urban legend. The PDP-11 was indeed a gift from another department,
thanks to a year-end budget surplus. Unix was up and running on that machine when
Joe corralled the patent department.
Nevertheless the story is consistent with Joe's talent for playing (or skirting)
the system to get things done. After Joe, the talent resurfaced in the
person of Fred Grampp. Lots of tales await Grampp's popping up from Dave
Horsford's calendar.
> Runoff was moved to Multics fairly early: here's its entry from the Multics
> glossary: "A Multics BCPL version of runoff was written by Doug McIlroy
> and Bob Morris."
Morris did one port and called it roff. I did the BCPL one, adding registers,
but not macros. Molly Wagner contributed a hyphenation algorithm. Ken
and/or Dennis redid roff in PDP-11 assembler. Joe started afresh for the
grander nroff, including macros. Then Joe bought a phototypesetter ...
> Sun was sort of the Bell Labs of the time ... I wanted to go there and had
> to work at it a bit but I got there. Was Bell Labs in the 60's like that?
Yes, in desirability. But Bell Labs had far more diverse interests. Telephones,
theoretical physics, submarine cables, music, speech, fiber optics, Apollo.
Wahtever you wanted to know or work on, you were likely to find kindred
types and willing management.
> was that voice synthesizer a votrax or some other thing?
Yes. Credit Joe again. He had a penchant for hooking up novel equipment.
When the Votrax arrived, its output was made accessible by phone and also
by loudspeaker in the Unix lab. You had to feed it a stream of ASCII-
encoded phonemes. Lee McMahon promptly became adept at writing them
down. After a couple of days' play in the lab, Lee was working in his
office with the Votrax on speakerphone in the background. Giving no
notice, he typed the phonemes for "It sounds better over the telephone".
Everyone in the lab heard it clearly--our own "Watson, come here" moment.
But phonemes are tedious. Believing that it could ease the
task of phonetic transcription, I wrote a phonics program, "speak",
through which you could feed English text for conversion to
phonemes. At speak's inaugural run, Bob Morris typed one word,
"oarlock", and pronounced the program a success. Luckily he didn't
try "coworker", which the program would have rendered as "cow orker".
Max Matthews from acoustics research called it a breakthrough.
The acoustics folks could synthesize much better speech, but it
took minutes of computing to synthesize seconds of sounds. So
the Unix lab heard more synthetic speech in a few days than the
experts had created over all time.
One thing we learned is that people quickly get used
to poor synthetic speech just like they get used to
foreign accents. In fact, non-native speakers opined
that the Votrax was easier to understand than real people,
probably due to the bit of silence that the speak program
inserted between words to help with mental segmentation.
One evening someone in the Unix room playing with the
synthesizer noticed a night janitor listening in from
the corridor. In a questionable abuse of a non-exempt
employee, the Unix person typed, "Stop hanging around
around and get back to work." The poor janitor fled.
AT&T installed speak for the public to play with at Epcot.
Worried that folks would enter bad words that everybody
standing around could hear, they asked if I could filter them
out. Sure, I said, just provide me with a list of what to
delete. Duly, I received on letterhead from the VP for
public relations a list of perhaps twenty bad words. (I have
always wondered about the politics of asking a secretary to
type that letter.) It was reported that girls would try the
machine on people's names, while boys would discover that
the machine "didn't know" bad words (though it would happily
pronounce phonetic misspellings). Alas, I mistakenly discarded
the infamous letter in cleaning house to leave Bell Labs.
Doug
We lost J.F. Ossanna on this day in 1977; he had a hand in developing
Unix, and was responsible for "roff" and its descendants. Remember him,
the next time you see "jfo" in Unix documentation.
-- Dave
Hello,
For your information (and to reduce my guilt for posting off topic
sometimes), I have 4.1BSD running with Chaosnet patches from MIT. I'm
adding a Unibus CH11 network interface to SIMH. It's not working fully
yet, but it's close.
Best regards,
Lars Brinkhoff
> From: Larry McVoy
> (*) I know that nroff was "new run off" and it came from somewhere, MIT?
> Some old system ... I've never seen docs for the previous system and I
> kinda think Joe took it to the next level.
Definitely!
The original 'runoff' was on CTSS, written by Jerry Saltzer. It had a
companion program, 'typset', which was an editor for preparing runoff input. A
memo describing them is available here:
http://web.mit.edu/Saltzer/www/publications/ctss/AH.9.01.html
>From the look of things, it didn't have any macro capability.
Runoff was moved to Multics fairly early: here's its entry from the Multics
glossary:
A Multics BCPL version of runoff was written by Doug McIlroy and Bob
Morris. A version of runoff in PL/I was written by Dennis Capps in
1974.
...
Multics documentation was transitioned from the Flexowriters to use of
runoff when the system became self-hosting about 1968. runoff was used for
manuals, release bulletins, internal memos and other documentation for most
of the 70s. To support this use, Multics runoff had many features such as
multi-pass execution and variable definition and expansion that went far
beyond the CTSS version. Multics manuals were formatted with complex macros,
included by the document source, that handled tables of contents and
standard formatting, and supported the single sourcing of the commands
manual and the info files for commands.
So the BCPL version would have been before Bell exited the project. I'm not
sure if the 'macros' comment refers to the BCPL version, or the PL/I. Here's
the Multics 'info' segment about runoff:
http://web.mit.edu/multics-history/source/Multics/doc/info_segments/runoff.…
which doesn't mention macros, but lists a few things that might be used for
macros. It refers to "the runoff command in the MPM Commands" volume (a
reference to "Multics Programmer's manual: Commands and Active Functions") for
details; this is available on bitsavers, see page 3-619 in "AG92-03A",
February 1980 edition.
Noel