[ I've always posted these to TUHS with no objections, so I have no idea
whether COFF would be a better forum; feel free to spank me (I might
even enjoy it!) ]
We lost Per Brinch Hansen, a computer scientist, on this day in 2007. He
specialised in operating systems and concurrent programming, and wrote the
classic book "Operating System Principles" which was published in six
languages for decades. He also wrote another book "The Architecture of
Concurrent Programs" which demonstrated an entire operating system written
in Concurrent Pascal (much like the Lions' books on Unix).
-- Dave
My DuckDuckGo-fu appears to be on the blink (and I refuse to use Google
out of privacy concerns); is there a PDF/PS/groff somewhere? I don't use
fancy-wanky markup languages.
Thanks.
-- Dave
> Thank you for the info - I will certainly look at the USENIX tapes.
>
> I will try to port the C compiler to amd64 - while preserving as much of
> the original code as I can. But not sure if this is even feasible.
>
> Thanks and Regards
> Dibyendu
If that is your goal, you might want to start with the version included with 2.11BSD. It is essentially the same as the version from V7, but with 15 more years of bug fixes. I used that source to port V6 Unix to the TI990 architecture back in 2014/2015 and the good thing about it is that it still compiles with a modern gcc.
For your project, I think you would be able to use the first pass ‘c0’ almost unchanged. The second pass ‘c1’ would need major restructuring. It mainly builds a tree for each expression and then performs various transformations, many of which are PDP11 specific (but also portable ones, like handling of constant expressions). It then covers the tree with code fragments selected from a library. This library (‘optable') would need a full rewrite as well. The last pass ‘c2’ is the optimiser and is also highly PDP11 specific. It reads the assembler output of ‘c1’ function by function, building an instruction list. It then performs some portable optimisations (eliminating unnecessary jumps, etc.) and also more PDP11 specific optimisations (the most complex being removing redundant register loads - the concept of which would be reusable).
There are about 12,000 lines of code and as a rough guess I would say that some 40% needs rewriting. A new code fragment library would probably be some 2 to 3 thousand lines.
I recall reading about a project to revive the Ritchie C compiler one or two years ago, but a quick web search came up dry. Anybody else remember reading that?
Hi All.
I have (mostly) revived Doug McIlroy's C++ regular expression parsing
library. I gratefully acknowledge and thank him for allowing me to
publish the code and for his help in finding all the bits and pieces.
It's available at https://github.com/arnoldrobbins/mcilroy-regex .
The main things I've done are to gather all the bits and pieces, rename files
to have a .cpp extension, and get everything to compile using current g++
and standard make.
I'm at the point where I could use some help. The various tests
do not all run successfully.
1. make retest - a number of tests fail
2. ./tesgrep.sh - a number of tests fail
3. ./testsed.sh - tests fail with core dumps
Looking briefly, some of the code in sed plays C games, casting various
things arouond to pointers of different types and dereferencing them;
these things tend to cause trouble in C++.
I'm hopeful that more eyes on this code will help it come back to life
more quickly. Any and all help will be appreciated.
Thanks,
Arnold
P.S. Let's not start a flame war about C vs. C++ etc. etc. If you can
help, please just dive in. Otherwise, just go, "wow, neat work" and
move on to something else. :-) Thanks.
On 15/07/2018, Warren Toomey <wkt(a)tuhs.org> wrote (in part):
> Also:
> https://www.youtube.com/watch?v=NTfOnGZUZDk
>
> Where GREP Came From - Computerphile (with Brian Kernighan)
I was intrigued by BMK's comment that "ed" was never spokend as "ed"
by "those in the know", which leads me to wonder how things were
spoken. Here is a litte list of how I pronounce things [with others'
versions in brackets]. Others will no doubt be aghast.
ls - "list" sometimes "l s";
rm - "remove";
chmod - "change mode" [but I have heard "ch-mode"]
ar - "archive" [others have said "arrr"]
N.
Hi
I am interested in finding out if the last C compiler code (not the
earliest versions which I know
are available) written by Dennis Ritchie is available somewhere. I
assume that the C compiler in V7 code was written by him?
Thanks and Regards
Dibyendu
On 7/18/18, Doug McIlroy <doug(a)cs.dartmouth.edu> wrote:
>
> The famous exception is grep, which became a verb.
I think the similarity to "grab" and "grope" helped.
> "grep for" and "grep out".
"grep for" I'm familiar with. What does it mean to "grep out"?
-Paul W.
Arnold was clerly on the Unix Room wavelength. ^All those two-letter
commands were spelled out in conversation, even m-v. The pronunciation
of rmdir was hybrid: r-m-dir. But when one talked about an action--not
a command per se--verbs would be used: move or copy a file, list
a directory. The famous exception is grep, which became a verb. There
was no snappy ready-made verb that covered all the aspects of its use:
search for mentions in one file, find files that mention, look for
patterns, filter data, check for malformed data, ... The verb had
two idiomatic variants, "grep for" and "grep out".
Doug
Several decades ago, Jim Joyce of San Francisco was one of the
more colorful chaps in the UNIX scene. Among other ventures he
had "The Independent UNIX Bookstore", and during Usenix conferences
he would rent a nearby hotel suite to sell his books to the
conference attendants. Jim once told me the following story (yes,
the topic is about dmr anecdotes).
One day a young man came to the hotel suite and asked, in a
somewhat exaggerated voice, "the best book to learn C programming".
Jim pointed at a gentleman in a nearby armchair, reading, and said:
"ask that gentleman because he knows everything there is to know
about C". So the young man approached said gentleman, and repeated
his question. The answer he got was: "Sorry, I can't help you,
because I never had to learn C". Which left the young man flabbergasted.
--
Hendrik-Jan Thomassen <hjt(a)ATComputing.nl>
AT Computing Linux opleiders & consultants
Kerkenbos 1238 Tel +31 24 352 72 82
6546 BE Nijmegen www.atcomputing.nl
'If you think education is expensive, try ignorance.'
We do have ken on the list, so I won't be presumptious to ask for ken-related
anecdotes, but would anybody like to share some dmr anecdotes?
I never met Dennis in person, but he was generous with his time about my
interest in Unix history; and also with sharing the material he still had.
Dennis was very clever, though. He would bring out a new artifact and say:
well, here's what I still have of X. Pity it will never execute again, sigh.
I'm sure he knew that I would take that as a challenge. Mind you, it worked,
which is why we now have the first Unix kernel in C, the 'nsys' kernel, and
the first two C compilers, in executable format.
Any other good anecdotes?
Cheers, Warren
As I continue to push the boundaries of subjective topicism, I'd like
to mention that today was when Sir Maurice Wilkes FRS FReng was born way
back in 1913.
He had a bit to do with EDSAC, microprogramming, and that sort of thing.
And dmmmit, I missed Alan Turing's birthday last Saturday (23rd June, 1912),
and Komrad Zuse's back in 22nd June, 1910, along with the Qwerty keyboard
being patented by one Christopher Sholes back in 1868 (long story).
-- Dave
Hi All.
Kudos to Warren for helping me track down the original USENET postings
that make up a fun DMR story.
In October of 1985, a guy from Teklabs posted a long rant against
both Unix and the people at USENIX conferences. The original
rant is available here (thanks Warren!):
> https://www.tuhs.org/Usenet/comp.org.usenix/1985-October/000163.html
> and in this text file:
> https://www.tuhs.org/Usenet/comp.org.usenix/1985-October.txt.gz
Dennis replied - the relevant part of what he was replying to is
in his message available here:
> https://www.tuhs.org/Usenet/comp.unix/1985-October/005952.html
Here is the full text of Dennis's note:
| Groupies
|
| dmr at dutoit.UUCP dmr at dutoit.UUCP
| Wed Oct 9 15:30:04 AEST 1985
|
|------------------------------------------------------------------------
|
| tekadg!davidl writes, at considerable length and with widespread distribution:
|
| > ... Socially, Usenix is like a
| > spherical glob, with a handful of original software authors at the center (the
| > ones who wrote the original code, like the developers of Unix, C, etc. - the
| > ones whose names are always being bandied about). Around these, there's a
| > surrounding shell of what has been aptly called "Unix groupies" trying to
| > associate themselves, both logically and physically, with the "illuminati"
| > at the center. Typically, these loathsome little insects are system
| > administrators and hackers who spend their time either on the net or
| > endlessly rewriting UUCP or NROFF or, or, or... And, I'm told, there are
| > even some real, honest-to-goodness groupies (of the rock-star variety) who
| > spend their time trying get near the "inner circle" for - never mind...
| > it's believable, though - it's certainly consistent with the demeanor of
| > the rest of the proceedings.
|
| Usenix conventions, which are undeniably and appropriately narrow-minded
| and introverted, sport more than a few bores, but are notable for absence
| of loathsome insects. Even the irascible Rob Pike remarked after Portland,
| "Goodness, there were very few loathesome insects there."
|
| They are also marked by a lack of honest-to-goodness rock-star-variety
| groupies. Believe me on this. The free cocaine was nowhere in evidence,
| I consumed no cigar-sized hash bombers, the insistent, complaisant
| lovelies were elsewhere by the time I got back from dinner. Indeed, the
| plaster of Paris I had obtained in case anyone wanted a cast of my genitals
| went entirely unused.
|
| Still, I understand the party that AT&T threw in Washington
| was pretty wild. Too bad I missed it.
|
| DMR
All this was in October 1985.
At the Atlanta USENIX in the summer of 1986, there was some kind of
contest (I don't remember what) and they announced (undoubtedly as a joke)
that one of the prizes was "a plaster cast of Dennis Ritchie's genitals."
It got a good laugh.
Arnold
Ron Natalie:
My favorite 3B2ism was that the power switch was soft (uncommon then, not so
much now). I seem to recall that if the logged in user wasn't in a
particular group, pushing the power button was a no-op. You didn't have
sufficient privs to operate the power.
====
Surely you mean the current user didn't have sufficent power.
Norman Wilson
Toronto ON
Not quite a dmr anecdote, but maybe this list can clear up a statement that dmr reputedly made: “streams means something different when shouted”.
I think the claim goes back to around the turn of the millennium and as far as I know it is not disputed that dmr either said this or could have said this.
Now, from reading this list over the years my understanding of the above statement is that dmr designed streams as a mechanism to clean up the kernel handling of line disciplines in a context of access via a terminal and/or modem, and that STREAMS developed this into a way to integrate network stacks with the kernel — hence streams meant something different when shouted.
The original dmr paper (1984) on streams (http://cm.bell-labs.co/who/dmr/st.html) seemed to support this understanding, focussing on terminal handling in its discussion. Also, near the end it says: "Streams are linear connections; by themselves, they support no notion of multiplexing, fan-in or fan-out. [...] It seems likely that a general multiplexing mechanism could help in both cases, but again, I do not yet know how to design it.” This seemed to exclude usage for networking, which is typically multiplexed.
However, now that the V8 sources are available it is clear that the streams mechanism was used (by dmr?) to implement TCP/IP networking. He explains how that tallies with the above quote on multiplexing in a 1985 usenet post: https://groups.google.com/forum/#!topicsearchin/net.unix-wizards/subject$3A…
(if the post by dmr does not immediately appear, click on the 8-10-85 post by 'd...(a)dutoit.xn--uucp-y96a to make it fold out: this is the message I refer to).
The way I read this usenet post, dmr was actually reasonably content with implementing a network stack on top of (lowercase) streams. This then implies that he was alluding to something else when saying “streams means something different when shouted” (or maybe he never said it).
Any opinions on what he might have meant?
Anent 3B's: Last time I visited Paul Allen's Living Computer Museum
the only working Unix on display was running on a 3B2. Apparently
the machine was robust if nothing else.
doug
All, I've removed the moderation on the TUHS list. Given that you would
like to chat about non-TUHS stuff, I've made a new list:
coff(a)tuhs.org
E-mail me if you want to subscribe. I'll be in the road until the
weekend but I will process requests daily.
Cheers! Warren
> I was poking around on the Unix v7 man page archive the other day, and
> discovered to my delight that BCPL roff's request list was documented
> there.
Yes, it's the same spec, though reimplementated; there was no BCPL
compiler for the PDP-11.
> Unfortunately, it was marked up in...BCPL roff embedded within
> a man page, which hopelessly confused groff.
I edited the v7 manual and I believe I proofread every man page. How
could I have overlooked the misbehavior of the .li request*, which was
even then not in the reference manual's list of n/troff requests? On
closer examination, .li does appear in a condensed alphabetical list of
requests--and it appears in the source. But if Joe never described it,
it's no surprise that groff dropped it. It is totally unnecessary--a
bit of special pleading rendered obsolete by Joe's elegant invention
of \&.
doug
* .li causes the next line to be read literally, even if it begins
with a dot.
Greg Lehey:
No, that was Peter Weinberger, as dmr confirmed. There's quite a
story behind what happened to the stencil. I'll let Warren tell it,
but if you want to cheat, check
http://www.lemis.com/grog/diary-oct2002.php#17
====
There are many stories behind the use and abuse of Peter's
face. The canonical source is
http://spinroot.com/pico/pjw.htmlspinroot.com belongs to Gerard Holzman, who was involved
with many creative uses of digitized photography during
my time at the Labs. (Also much work on software reliability,
which he now pursues at JPL.)
The org chart with every face replaced by Peter's was on
the wall of the UNIX Room when I first visited 1127 in
February 1984. I suspect it appeared not long after Peter
became a department head, but I don't know just when that
was.
Peter didn't really take the alleged glory of being a
department head all that seriously, just the responsibilities.
One of the official glories was that Department Heads were
supposed to get carpet in their offices, atop the standard
linoleum tiles. Peter didn't want it, and (as he told me
the story later) had to argue with Facilities a lot not to get it.
Somehow this resulted in a trophy: a small square of carpet
stuck to the wall outside his office.
Norman Wilson
Toronto ON
Greetings,
I'd like to thank everybody that sent me data for my unix kernel size
stuff. There's two artifacts I've crated. One I think I've shared before,
which is my spreadsheet:
https://docs.google.com/spreadsheets/d/13C77pmJFw4ZBmGJuNarBUvWBxBKWXG-jtvA…
The second are some simplified graphs and the first half of my BSDcan talk:
http://www.bsdcan.org/2018/schedule/events/934.en.html
The video should be available soon for my talk as well, but it's not up
yet. If there's interest, I'll post an update when it is.
Warner
> From: Mike Markowski
> a cute, slender gal came into the lab. ... I typed mkfs... On the plus
> side, I ended up marrying the girl.
OK, so now I _have_ to hear the backstory - _when_ did you tell her what
happened? Then? (Maybe she noticed the look on your face once you realized
what you'd done? :-) Later? Never? :-)
Noel
I've told this story so much that my kids hear me start it and go "is that
the Unix guy? Yeah, we've heard this". And I think many of you have heard
it as well so you can hit delete, but for the newbies to the list here goes.
Decades ago I was a grad student at UWisc and pretty active on comp.arch
and comp.unix-wizards (I was not a wizard but I've lived through, and
written up, the process of restoring a Masscomp after having done some
variant of rm -rf / so a stupid wizard wanna be?)
>From time to time, some Unix kernel thing would come up and I'd email
...!research!dmr and ask him how that worked.
He *always* replied. To me, a nobody. All he cared was that the question
wasn't retarded (and I bet to him some of mine were but the questions showed
that I was thinking and that was good enough for him). I remember a long
discussion about something, I think PIPEBUF but not sure, and at some point
he sent me his phone number and said "call me". Email was too slow.
So yeah, one of the inventors of Unix was cool enough to take some young
nobody and educate him. That's Dennis.
I've tried to pass some of that energy forward to my kids, telling them
that if you want to learn, smart people like that and they will help you.
Dennis was a humble man, a smart man, and a dude willing to pass on what
he knew.
I miss him and cherish the interactions I had with him.
OK, so now I'm a bit p*ssed off. We've losy Johnny a few days ago because of
the traffic on the list and now Tim is asking to be unsubscribed.
First up: Unix Heritage. I don't mind a bit of drift but seriously?! I
put in a nugde to wind up the comp.arch chat but that didn't help.
Secondly: a few of you need to pull your heads in.
The TUHS list is going to be moderated for the next couple of days. If you
really feel it necessary, you can post a _summary_ of your comp.arch position
and then stop.
Posts on Unix anecdotes and on-topic stuff I will let through.
Cheers, Warren