Larry McVoy wrote
> Well, we had begin and end blocks. And other than that, the whole thing
> is a wad that is called per line. That was definitely awk inspired.
The way I have used m4, a program is executed just once from top to bottom.
There is no input file. Another way to describe it is that the program is
the input file, which happens to have some program elements interspersed.
But m4 never acts as awk does, running the whole "wad" on each line of
a separate input file.
Of course, one often puts definitions in one file, and "data" in another
and catenates them. Then, however, it is only convention--not language
design--that keeps the program and data separate. In awk, the
separation is absolute.
> I'm surprised you see lisp and haskell. The language came from me
> and I've never touched haskell and I tried to like lisp, I really
> did, but it never grew on me. Care to explain why you saw that?
The parenthesized decomposition of a list comes straight out of Lisp,
with car-cdr terminology (referring to parts of an IBM 700-series word)
modernized to Haskell's more intuitive head and tail. The functional
style of programming imitates Haskell within the confines of m4 syntax,
but of course. Lisp founded the functional tradition.
The word "atom" is borrowed from Lisp, "foldl", "foldr", and "zip" come
from Haskell.
Doug
On Mon, Jul 21, 2025 at 9:28 AM Larry McVoy <lm(a)mcvoy.com> wrote:
>
> Well, we had begin and end blocks. And other than that, the whole thing
> is a wad that is called per line. That was definitely awk inspired.
>
> I'm surprised you see lisp and haskell. The language came from me
> and I've never touched haskell and I tried to like lisp, I really
> did, but it never grew on me. Care to explain why you saw that?
>
> For what it is worth, nobody cares because all that code is dead, but
> I'm proud of that little language, it's miles and miles beyound what
> SCCS could do. I whipped up that json dspec pretty quickly and my
> memory is it just worked, we didn't have to go back and fix anything.
>
> And it is fast. It used to be lex/yacc but that was too slow so Rob
> rewrote it as a recursive-descent parser that was boatloads faster.
> We actually used that language quite a bit.
>
> On Mon, Jul 21, 2025 at 07:19:00AM -0400, Douglas McIlroy wrote: > No awk
> at all. Much imitation of Lisp and Haskell > > On Sunday, July 20, 2025,
> Larry McVoy <lm(a)mcvoy.com> wrote: > > > On Sun, Jul 20, 2025 at 07:06:38PM
> -0700, Larry McVoy wrote: > > > On Sun, Jul 20, 2025 at 08:30:45PM -0400,
> Douglas McIlroy wrote: > > > > I just posted the most heavily commented
> code I have ever written. > > > > It's a radical (mis?)application of m4,
> which is about as inscrutable > > > > as any language short of APL. The
> ratio of comments to code is more > > > > than 3:1. > > > > It's at
> www.cs.dartmouth.edu/~doug/barem4.m4. 3:1 may be > > > > overkill, but
> I think 2:1 would not be unreasonable. > > > > > > > > Doug > > > > > >
> Whenever I see something like this, it reminds me of one of my engineers >
> > > who said you couldn't make BK produce json out put. > > > > > > Hold
> my beer. > > > > > > http://mcvoy.com/lm/bkdocs/dspec-changes-json-v.txt
> > > > > > > It's a lot less miserable than the m4 (and I'm a fan of m4).
> > > > > It's pretty awk inspired. > > -- > > --- > > Larry McVoy
> Retired to fishing > > http://www.mcvoy.com/lm/boat > >
>
> --
> ---
> Larry McVoy Retired to fishing http://www.mcvoy.com/lm/boat
Hi All.
As a back burner project, I have the sources for a book, given to me
by the author, from around 1981. It was originally formatted using
the device independent troff suite. It used the -ms macros plus an
additional set of custom macros. I have the additional macros.
The book used tbl and pic. A quick grep does not find any instances
of .EQ, so it looks like eqn isn't needed.
I would like to be able to format the book and generate PDF.
What's the best way to go about this? Using groff in compatibility
mode? Or the Heirloom troff suite? If the latter, what's the
canonical location for it?
I will be working on Linux, Ubuntu 24.04.
Any and all advice will be welcome.
Thanks,
Arnold
Folks,
For those of you who were unable to attend, I took this photo
yesterday, at the end of the closing remarks for ATC'25 in Boston:
https://photos.app.goo.gl/tcaAFQgjGPn5s8Dh7
As most of you know, USENIX has sunsetted the conference, and this
was the last time ATC will be run, though of course other USENIX
conferences will continue in its place. But I wanted to be in the room
as it ended, and I snapped this as everything was winding down, and am
now sharing it with our community.
For those of you who were able to attend, it was wonderful to see
a number of familiar faces, and also meet some folks I've known of and
interacted with here and elsewhere, face-to-face. USENIX also turned
50 this year, and the organization made sure to create space for
reflection on its history; remembrances were shared by Clem Cole, Bill
Cheswick, Doug McIlroy, Andrew Hume, Peter Honeyman, Tom Lyon, and
others.
On a personal note, I found this very meaningful: I was once told,
"never meet your heroes." However, in the Unix community, by and large
my heroes are wonderfully pleasant, generous, and kind people in real
life, all of whom have either indirectly or directly had a profound
influence on the course of my career and life. Thank you for that; it
was an honor to share space with you.
While ATC is ending, it is also clear that there is a vibrant
research community flourishing, building on the legacy of work created
by the USENIX community and shared through this conference. Many of
you nurtured that community, laying its framework, shepherding and
guiding its work, cultivating new generations of researchers while
providing the basic tools we all depend on, and thus creating the
fertile ground on which it now grows. What greater professional
accomplishment could one hope for?
Perhaps it is best not to think of this as an end, but an epoch
marking the transition from one stage of the community's evolution to
the next.
- Dan C.
> I opened them all in vim instances running in the background at login time,
> and then I read email until they were all loaded. I then put the process
> with the file I needed into the foreground, examined it, and returned to
> the shell with :stop (which all command line editors should have) when I
> was done. Worked like a charm.
A curious mix of present and past tenses. Haven't window systems made
foreground/background distinctions irrelevant to most applications,
including editors? To my mind :stop is none of an editor's business.
Doug
I always recoiled from vi's plethora of commands. Then came sam, and I
haven't looked back since. It handles multiple windows with barely
more commands than ed, real regular expressions, good mouse support,
and great global editing capability. It can even run by script without
a screen.
Doug
Hello all,
What teleprinter models were used at Bell Labs, particularly by the Unix groups? Judging by troff escape sequences, it expected a Teletype Model 37, and early all-caps support implies Model 33 usage. But I don’t have a sense of what users and the core developers used.
I am working on building a Teletype Model 37 ASR emulator for my PiDP-11 with the goal of replicating the early Unix experience as accurately as possible without physical hardware.
As I get deeper into research, I’ve learned of a variety of configuration options beyond what the operator could configure with buttons, e.g., sub-models which come with different components, optional components which can be installed later, and features that can be configured by a craftsman. Here are some examples:
- Two-color was optional
- The shift-out character set was configurable
- An ASR could come without a tape reader/puncher
- Half-line forward and reverse was optional
- Character sizes varied, e.g., 72 chars per line at 10 chars per inch, adjustable up to 80 per line; or 86 per line at 12 per inch
- The paper could be roll paper (friction feed)or flat-folded, form-feed paper with marginal perforations (sprocket feed)
- Paper sizes varied, e.g., 3 to 8-1/2 wide or, for sprocket feed, up to 11 inches long and 9-1/2 wide
- Some printed control characters; most didn’t
- Holding a key could be configured to repeat the character
- They could operate half-duplex (transmitted data is copied by the sender) or full-duplex (only received data is copied)
- They could receive and transmit at various speeds
That’s a lot of options and it’s not exhaustive.
The Model 37 product catalog[0] has tables of many configurations and their catalog numbers. Is there a list of the teleprinters purchased by Bell Labs? With that, I could possibly narrow it down like how Warner Losh identified the PDP-7 model used for Unix V0.
Thanks!
Thalia Archibald
[0]: https://ia800702.us.archive.org/32/items/TNM_Model_37_terminal_product_cata…
[1]: https://bsdimp.blogspot.com/2019/07/the-pdp-7-where-unix-began.html
About a week ago, I designed a sticker for ed users. Hands up, I kind of half stole the tagline, but they're not-for-profit and I only did it because I couldn't find ed stickers by anyone else:
https://i.postimg.cc/hjS5Wt6Z/esgag-fin3f.png
As an homage to both teleprinters and monochrome monitors, the lettering is in a typewriter font and a representation of monitor green. The actual stickers have rounded corners and are 2-inches wide so ideal for laptops, desktop monitors or even teleprinters!
If anyone on this list wants one, please contact me off-list and I will mail it to you, wherever in the world you live. These stickers are free/gratis and it will be my pleasure to post one to you.
I haven't received them yet, they should arrive tomorrow, but I've had stickers made by the same company before and they were decent quality.
Best regards,
Cameron
Folks,
It has been great to read about everyone's preferences, uses and recollections for and of editors. In my ignorance, until just a few days ago I knew of perhaps only ed, vi, vim, nano and emacs so it has been a bonus to learn of all the others and their variants.
In a somewhat related thread that seemed to end up on COFF and on here, Warner said, in part, "It may just be an odd quirk of when I grew up...", and I think that and other factors leads each of us to use the different tools we use.
My earliest hands on computer experiences involved machines with monochrome display capabilities, no GUI and very little little memory to work with and those are some of the influences that led me, now, to ed. One of my favorite parts is opening a file or writing an edited file.
ed somefile
438
<add some more lines>
w
672
So simple and, for me, relatable. In the sample file above, the enlarged file would just about fit in my first computer, a Sinclair ZX81 which came with 1KB of RAM. In short, everyone needs to wear the shoe that best fits them.
What I've found, with ed, is that it helps me focus more intently on what I'm typing, regardless of whether it's code or a magazine article. Always at the back of mind when I use ed, especially if I run into a problem with my operation of it, is the thought, "Operating systems and languages were created on this.". That humbles me every time.
Best regards,
Cameron
-------- Original Message --------
On 20/07/2025 02:28, Warner Losh <imp(a)bsdimp.com> wrote, in part:
> It may just be an odd quirk of when I grew up
>
> Warner
It's not exactly a UNIX artifact but in the late 60s - early 70s when
we wanted a break at night we'd go down to the second floor of building
2 which had a PDP-15/GRIN-2 and play space war. It sticks in my memory
because there was an Etch-A-Sketch hanging on the side of one of the
equipment racks with a sign under it that said "In case of fire, throw
in".
Anyway, I have a hunk of DEC fan-fold paper tape with double-sun space
war on it; the boot address is written on the leader in my teen-age
handwriting.
Somewhere I have a paper tape reader. When I have some spare cycles
I plan to read that tape in and try to get it running as folks have
VMs for that architecture. Probably will have to build a button box
to go with it - I recall that there was an 8 button box, 4 for each
player - turn left, turn right, accelerate, and shoot. And it also
read the front panel console switches to change the game settings
such as limited/unlimited ammo, limited/unlimited fuel, tumble-mode,
etc.
Another non-UNIX artifact that I came across is a 1974 BTL directory.
The departmental index is fascinating - gives a view of what a real
research lab looked like.
Jon
I see the Wikipedia "Flag day (computing)" [1] article references two
semi-different ESR sources [2,3] to support the claim:
> This systems terminology originates from a major change in the Multics
operating system's definition of ASCII, which was scheduled for the United
States holiday, Flag Day, on June 14, 1966.
I don't doubt the validity, but I'm looking for other "citation worthy"
sources that supplement this claim --- ideally that predate the ESR ones,
so that they are unambiguously independent.
1. https://en.wikipedia.org/wiki/Flag_day_(computing)
2. http://www.catb.org/jargon/html/F/flag-day.html
3. *The New Hacker's Dictionary*
<https://books.google.com/books?id=g80P_4v4QbIC&pg=PA192>pp. 192–
--
Royce Williams
Tech Solvency