On Sun, Oct 20, 2024 at 01:23:23AM -0400, Dan Plassche wrote:
>
> On Sat, 19 Oct 2024, Jonathan Gray wrote:
>
> > PWB was an early external distribution with troff.
> >
> > Documents for the PWB/UNIX Time-Sharing System
> > https://datamuseum.dk/wiki/Bits:30007124
> > https://bitsavers.org/pdf/att/unix/PWB_UNIX/
> >
> > NROFF/TROFF User's Manual
> > October 11, 1976
> > datamuseum.dk, pp 325-357
> > bitsavers, pp 217-249
> >
> > Addendum to the NROFF/TROFF User's Manual
> > May 1977
> > datamuseum.dk, p 358
> > bitsavers, p 250
> >
> > fonts described in:
> > Administrative Advice for PWB/UNIX
> > 23. PHOTOTYPESETTING EQUIPMENT AND SUPPLIES
> > datamuseum.dk, p 647
>
> Thank you Jonathan. I was previously not sure where to place the
> PWB documentation in the timeline but a clearer picture is
> emerging.
>
> Based on the v6 "NROFF User's Manual" revised in 1974 and
> published in 1975, I can now see that the PWB documentation with
> the "NROFF/TROFF User's Manual" from 1976-77 has most of the
> content that later appears in v7. The major change immediately
> beforehand was the rewrite of troff into C.[1] Some clear
> differences are the combination of nroff and troff manpages and
> the addition of troff specific features like the special fonts
> into the user's manual.
>
> [1]. Apparently in 1976:
> https://www.tuhs.org/Archive/Distributions/USDL/unix_program_description-tr…
"It was rewritten in C around 1975"
Kernighan in CSTR 97, A Typesetter-independent TROFF
I've seen references to
"Documents for Use with the Phototypesetter (Version 7)"
which was likely distributed with the licensed phototypesetter tape in 1977.
What may have been the manual distributed with that tape is also close to v7.
https://www.tuhs.org/cgi-bin/utree.pl?file=Interdata732/usr/source/troff/dochttps://www.tuhs.org/Archive/Distributions/Other/Interdata/
tuhs Applications/Spencer_Tapes/unsw3.tar.gz
usr/source/formatters/troff/doc/
>>> malloc(0) isn't undefined behaviour but implementation defined.
>>
>> In modern C there is no difference between those two concepts.
> Can you explain more about your view
There certainly is a difference, but in this case the practical
implications are the same: avoid malloc(0). malloc(0) lies at the high end
of a range of severity of concerns about implementation-definedness. At the
low end are things like the size of ints, which only affects applications
that may confront very large numbers. In the middle is the default
signedness of chars, which generally may be mitigated by explicit type
declarations.
For the size of ints, C offers guardrails like INT_MAX. There is no test to
discern what an error return from malloc(0) means.
Is there any other C construct that implementation-definedness renders
useless?
Doug
Hi All.
For anyone who's interested, my QED archive at
https://github.com/arnoldrobbins/qed-archive has been updated. Changes
were provided by Sean Jensen.
The usenix-80-caltech subdirectory is now more complete and the README.md
points at Sean's updated QED port which now works with Unicode.
I thank him.
Arnold
So with all that has happened with the Internet Archive lately, I
do find myself a bit concerned regarding the UNIX materials that
I know to only exist there. Selfishly, this includes my own
uploads here: https://archive.org/details/@segaloco
I was curious if anyone has any suggestions on places beyond just
IA and TUHS where I could see about getting this stuff mirrored?
Unfortunately my stuff runs afoul of bitsavers's DPI requirements,
that's the only other source that immediately comes
to mind where these materials would find home. Any thoughts?
Warren, I know you had mentioned a "write only" archive you
maintain regarding materials that need to be mothballed until legal
understandings are reached, would you be comfortable with my
contributing any of my materials the Caldera license does not apply
to there?
- Matt G.
Hi,
A scan of the printed UNIX Version 6 documents set is now online
at the link below since last week. The set consists of documents
accompanying the manual pages in the programmer's manual (similar
to volume 2 in v7).
https://www.computerhistory.org/collections/catalog/102659317
The [nt]roff user manual, tmg compiler-compiler, and m6 macro
processor memos were previously missing from the distributions
in TUHS and later efforts to re-create the documentation.
I have been working on finding this documentation as part of
researching roff history. Still interested in earlier copies of
the internal memoranda from Ossanna that served as the NROFF
User's Manual since v3, the TROFF User's Manual after v5, and
TROFF Made Trivial starting around v4. Based on the manpage
histories, the documentation was revised for v4, 5, and 6.
Best,
Dan Plassche
> Who created the "cat" command and did they have the
> word "catenate" or "concatenate" in their heads?
Ken Thompson wrote "cat" for the PDP-7, with "concatenate" in
mind. The cat(1) page in the v1 manual is titled, "concatenate (or
print) files". Only later did someone in Research--I don't know
who--remark on the existence of the shorter synonym. It was
deliberately adopted in v7, perhaps because it better mirrored
the command name.
But brevity is the defensible argument for "catenate", while
familiarity boosts "concatenate". It stll takes some conscious
effort for me to use the former, However, I sense sinister
vibes in "concatenate", driven by the phrase "concatenation
of events", which often is used to explain misfortune.
Doug
I always forget that TUHS can't handle pictures. Perhaps Warren will let my
post through, but in any case here's a link to the mail, reformatted but
otherwise intact, with photos, on Mastodon.
https://hachyderm.io/@robpike/113322062117546253
To pique your interest, here's the first paragraph.
*In August 1981 we had a persistent problem with the RP06 on our PDP-11/70
crashing disks. It even crashed once while the DEC repairman was standing
next to it trying to figure out why the previous pack had died. We
collected a few dead packs, and they were forming a pile. Lillian, never
one to miss an opportunity, suggested building a mobile.*
-rob
Hello, all.
In 2002, Caldera released Ancient Unix code under Caldera
license:
<https://www.tuhs.org/Archive/Caldera-license.pdf>
based on the four-clause BSD license:
<https://spdx.org/licenses/BSD-4-Clause.html>
Consequently, it was used by derived projects, such as
Traditional Vi:
<https://ex-vi.sourceforge.net/>
This proect having been abandoned and orphaned since 2005, I
wanted to host it on GNU Savanna and there to breath some
life into it. Unfortunately, the 4-clause BSD license is
incompatible with GPL:
<https://www.gnu.org/licenses/license-list.html#OriginalBSD>
The incompatibilty is due entirely to the infamous third
clause about adverising. Three years prior to Caldera's
release of old Unix code, The Berkley Univercity removed
this clause, producing the GNU-compatible modified BSD
License:
<https://opensource.org/license/BSD-3-clause>
They published a notice to that effect on their FTP:
<ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change>
Although it has been taken down[1], copies exist all over
the internet, e.g.:
<https://raw.githubusercontent.com/abbrev/punix/refs/heads/master/README.Imp…>
That said, is there a chance that the copyright holder of
Ancient Will agree to release a similar note regarding
everying released under Caldera license? If there is, whom
shall I contact about it? It will benefit everybody using
Ancient Unix code.
____________________
1. Why the murrain of FTP servers all over the world?
Hi folks,
A few months ago I reported on my efforts to reconstruct London &
Reiser's paper on their port of Unix to the VAX-11/780.[1]
I formerly characterized this as "the UNIX/32V port", but since London
& Reiser's paper predates the release of Seventh Edition Unix by about
six months, UNIX/32V came _after_ Seventh Edition by about the same
number of months, and the pace of Unix development was particularly
ferocious in this period[2], I felt that my identification of London &
Reiser's work with UNIX/32V may have been hasty. I also may have
overinterpreted Dennis Ritchie's words on the subject.
"Tom London and John Reiser, working from the 7th Edition and the
Interdata 8/32 system, generated a VAX 11/780 version of the system,
which, in its distribution format, would be called 32V."
That phrase "in its distribution format" could cover a variety of
changes, some of which perhaps did not match London & Reiser's
intentions or views expressed in their paper. More conservative
implications seemed prudent.
I'd thus like to present what I consider to be my "final" draft, subject
of course to feedback from these mailing lists. I'm pleased to report
that I've addressed all of the XXX points I identified in the source of
my first draft, points where I felt groff mm could be enhanced to aid
the rendering of historical documents like this. I consequently expect
groff 1.24's mm package to support several new features prompted
specifically by this work. Quoting the forthcoming NEWS file...
* The m (mm) macro package now supports a user-definable hook macro
`AFX`, which if defined is called by `AF` in lieu of the latter's
normal operation. Applications include customization of letterhead.
* The m (mm) macro package now supports a user-definable hook macro
`RPX`, which if defined is called by `RP` to format the reference
list caption string `Rp` instead of the default formatting.
* The m (mm) macro package now supports an `Aumt` string to suppress
the appearance of positional arguments to the `AU` macro in the
document heading used by memorandum types 0-3 and 6. By default, all
such arguments appear, except the second (author initials). For
example, a value of "3 4" more accurately reproduces London &
Reiser's 1978 paper describing the porting of Unix to the VAX-11/780.
* The m (mm) macro package now supports an `Rpfmt` string specifying
the `LB` macro arguments that the package uses to format the items in
a reference list.
* The m (mm) macro package no longer superscripts _and_ brackets a
reference mark (the `Rf` string). Instead, the new `Rfstyle`
register controls its formatting. The default, 0, selects bracketing
in nroff mode and superscripting in troff mode. Set `Rfstyle` to 3
in a document to obtain groff mm's previous mark formatting behavior.
[I might still update or revert the changed default; I want to
research the behavior of historical mm implementations.]
The "32vscan.pdf" document from which I prepared this reconstruction is
available at Dennis Ritchie's memorial home page.[3] I have attached
the reconstructed mm source document and two PDFs, rendered with groff
1.23.0 (the current stable release), and groff Git HEAD (exercising the
new features listed above).[4]
I offer the caveat that these cannot be pixel-perfect recreations
because (1) I have no information about the precise paper dimensions or
margins London & Reiser used[5]; (2) the fonts employed in rendering the
documents are not identical, metrically or otherwise; and (3) AT&T and
GNU troffs use different hyphenation systems and therefore sometimes
break words differently. These factors all impact the placement of line
and page breaks, and these are avowedly and clearly distinguishable.
There are furthermore a few discrepancies that I decided weren't worth
the trouble at this time to reconcile, like selective encroachment of
cover sheet material beyond the page margins. None affect the utility
of the document (in my opinion).
With that large disclaimer in place, I welcome feedback on the quality
of the reproduction.
Finally, I reiterate my encouragement that the document be _read_. In
my opinion, the final two sections "Commands" and "Software portability"
are well worth consideration in hindsight. To the extent that we
continue to boast, sometimes glibly, of C as a "portable assembly
language", be it in its current ISO C23 incarnation; as ANSI C89, the
last revision blessed by Ritchie; or in the form used when London and
Reiser wrote, their experiences and recommendations laid out a program
of better delivering on that promise.
Regards,
Branden
[1] https://www.tuhs.org/pipermail/tuhs/2024-June/030041.html
[2] 1980, for example, saw releases of 3BSD, System III, PWB/UNIX 2.0,
and 4BSD.
[3] https://www.bell-labs.com/usr/dmr/www/portpapers.html
[4] You may notice a difference in the sizes of the two PDFs, surprising
in light of their shared source document. This is thanks to a new
feature forthcoming in Deri James's gropdf(1) output driver: font
subsetting.
[5] ...or where, if anywhere, the authors "cheated" the margins
temporarily, for instance with `ll` or `pl` requests. Even with mm
macro package sources available, such things would be invisible to
the reconstructor.
Folks:
Long story short, I have a unpublished manuscript that a faculty member in my department wrote late 1980's early 2000's. He did the entire thing in troff, eqn, and pic.
The faculty member is still alive. A publisher is interested in the manuscript. I have all of the source files on an old unix machine that still has troff, eqn and pic. It also has groff. This issue is that the pic commands are bracketed by .G1 and .G2 not .PS & .PE. The original machine he would have used would have ran AT&T Sys V on an AT&T 3B20. Below is one of the files. Any thoughts on the .G1 .G2? I can get the files that have only eqn and troff to create postscript, but the .G1/.G2 is not understood by pic. I tried replacing the .G1/.G2 with .PS/PE and it failed. I must be missing another program that uses the .G1/2
Thanks
.sp -3.5
.fp 1 Z
.fp 2 XI
.ps 11
.tl ' ' '1-10'
.EQ
delim $$
gsize 11
.EN
.po 0.9i
.vs 15
.G1
frame wid 5.7 ht 6.0 invis
coord x 0.2, 100 y -40, +22 log x
grid left from -30 to +20 by 10 ""
grid left from -40.04 to +19.96 by 10 ""
grid left from -39.96 to +20.04 by 10 ""
grid left from -39 to +22 by 1 ""
grid bot from 0.4 to 40 by *10 ""
grid bot from 1 to 100 by *10 ""
grid bot from 0.2 to 20 by *10 ""
grid bot from 0.3 to 30 by *10 ""
grid bot from 0.5 to 50 by *10 ""
grid bot from 0.6 to 60 by *10 ""
grid bot from 0.7 to 70 by *10 ""
grid bot from 0.8 to 80 by *10 ""
grid bot from 0.9 to 90 by *10 ""
ticks out left from -40 to +20 by 10
ticks out bot from 0.2 to 20 by *10
ticks out bot from 0.4 to 40 by *10
ticks out bot from 1 to 100 by *10
draw solid
0.2 19.93
2 19.93
10 5.97
100 -34.02
new solid
0.2 20.07
2 20.07
10 6.05
100 -33.95
new dotted
for i=0.45 to 23 by *1.05 do
{
w=i*i
f=200/sqrt(w*w+104*w+400)
next at i,20*log(f)
}
label left "\u\udB \d\d"
label bot "\(*w, rad/s"
.G2
.in 2
Fig. 1.4. Graph of the magnitude in dB of $H(s)~=~200 over{s sup 2~+~12^s~+~20}^,$$~s~=~j^omega$.
Doug Jacobson
University Professor, Dept. Electrical & Computer Engineering
Sunil & Sujata Gaitonde Professorship in Cybersecurity
Director: ISU Center for Cybersecurity Innovation and Outreach
Mail Address: 2520 Osborn Dr, 2215 Coover Hall
Iowa State University
PH: (515) 294-8307 Fax (515) 294-8432
Office: 371 Durham Hall
Center web site: http://www.cyio.iastate.edu/<https://urldefense.com/v3/__http:/www.cyio.iastate.edu/__;!!DZ3fjg!oVZir7OL…>
Personal web site: http://www.dougj.net<https://urldefense.com/v3/__http:/www.dougj.net/__;!!DZ3fjg!oVZir7OL4VMZHCY…>