I went looking for the three IPC reports:
For more information about this system, see:
- "Interprocess Communication Extensions for the UNIX Operating System: I -
Design Considerations", Rand Corporation, Report R-2064/1-AF, June 1977.
- "Interprocess Communication Extensions for the UNIX Operating System: II
- Implementation", Rand Corporation, Report R-2064/2-PR, April 1977.
- "UNIX TCP User's Guide", Bolt Beranek and Newman Inc., Report No. 3724
And could only find the first one online at
Do we have the other two anywhere?
>> I don't recall any use of Chaos in 1127. Possibly one of
>> the nearby groups who also used the Research system needed
>> it at some point
> Speculating wildly, maybe there was a Lisp machine somewhere?
None that I can remember.
> for some years I've been using the phrase "algebraic syntax" to
> characterize languages such as Algol, C/C++, Fortran, Java(Script), Ruby, etc.
> However, I can't find this usage in Wikipedia or elsewhere
I think "Algol-like" is the closest term in common use, though it
doesn't have the exact connotation that I think you intend.
Nowadays, I think of languages like Haskell as being "algebraic"
in the deeper sense of having taken much inspiration from
modern algebra, and being preeminently suitable for application
to algebraic domains.
Vic Vyssotsky used the term "narrative language" as quite
a close synonym of your "algebraic syntax", but I think his
usage was equally idiosyncratic.
> o operator overloading
> I never could figure out why Stroustrup implemented that "feature"; let's
> see, this operator usually means this, except when you use it in that
> situation in which case it means something else. Now, try debugging that.
Does your antipathy extend to C++ IO and its heavily overloaded << and >>?
The essence of object-oriented programming is operator overloading. If you
think integer.add(integer) and matrix.add(matrix) are good, perspicuous,
consistent style, then you have to think that integer+integer and
matrix+matrix are even better. To put it more forcefully: the OO style
is revoltingly asymmetric. If you like it why don't you do everyday
arithmetic that way?
I strongly encouraged Bjarne to support operator overloading, used it
to write beautiful code, and do not regret a bit of it. I will agree,
though, that the coercion rules that come along with operator (and
method) overloading are dauntingly complicated. However, for natural uses
(e.g. mixed-mode arithmetic) the rules work intuitively and well.
Mathematics has prospered on operator overloading, and that's why I
wanted it. My only regret is that Bjarne chose to set the vocabulary of
infix operators in stone. Because there's no way to inroduce new ones,
users with poor taste are tempted to recycle the old ones for incongruous
C++ offers more features than C and thus more ways to write obscure code.
But when it happens, blame the writer, not the tool.
> From: Jacob Ritorto
> I had a suspicion that maybe the clock isn't working on the 11/73.
> Would that make sense?
Would definitely explain the symptoms.
> Maybe I have to check jumpers on the 11/73 to be sure its clock is
There is a jumper on the KFJ11-A that enables/disables the clock®ister;
W9 (closest to the handles) should be removed to enable the clock.
(I really need to add the jumpers to the KDJ11-A page on the Computer History
I bought one of Oscar's kits a while back and I just got around to putting
it together. It was kind of neat booting up a straight V6 (it's been a
long time) and playing with those DEC operating systems that I had learned
to hate (Really Sh-ty Timesharing System). I had hoped that someone,
somewhere had a JHU/BRL dist around (well if you do, I'd love to get it).
But since the thing is mostly just a decoration in my office, I just hacked
the idle function in 2.11 BSD to mimic the one that JHU Unix had.
I had a disk in my 11/83 that I'd set up for autoboot. The pdp11 would
load block 0, load /boot and happily count down 5 seconds, then continue on
with kernel loading & regular bringing up of the system to multiuser.
That was cool!
So I pulled that disk out and plugged it into my other system with a dual
height 11/73 (this system has same CMD CQD-200 scsi controller) and it gets
to the countdown part and stops! I'm wondering why.
The initial bootblock load is apparently fine and loading and running of
boot is happening.. its just that the countdown stays stuck at five and I
have to hit <cr> to get it to boot (and the rest of the boot sequence is
I had a suspicion that maybe the clock isn't working on the 11/73. Would
that make sense? Maybe boot is actually using a clock somehow? Maybe I
have to check jumpers on the 11/73 to be sure its clock is enabled?
Just thought I'd float the question here in case someone remembers this
oddity before I start digging / "use the source."
There was a recent message I now can't find that I wanted to reply to,
something about which type to use to get a certain effect.
I wanted to reply to say that I felt that it was not really the best way to
go, to have one set of type names that tried to denote both i) the semantics
of the data, and ii) the size of the item, using arbitrary names.
This came up for me when we started to try and write portable networking code.
There, you need to be able to specify very precisely how long fields are
(well, in lower-level protocols, which use non-printable formats). How to do
that in a way that was portable, in the compilers of the day, was a real
struggle. (It might be doable now, but I think the fixes that allowed it were
still just patches to something that had gone in the wrong direction, above.)
I created a series of macros for type definitions, ones that separately and
explicitly specified the semantics and size. They looked like 'xxxy', where
'xxx' was the semantics (signed and unsigned integers, bit field, etc),
and 'y' was a length indication (byte, short, long, and others). So you'd
see things like 'unsb' and 'intl'.
The interesting twist was a couple of unusual length specifiers; among them,
'w' stood for 'the machine's natural word length', and 'f' meant 'no
particular length, just whatever's fastest on this architecture/compiler, and
at least 16 bits'. The former was useful in OSy type code; the latter for
locals and things where nobody outside the machine would see them.
Then you'd have to have a file of macro definitions (only one per machine)
which translated them all into the local architecture/compiler - some didn't
go, of course (no 'unsb' on a PDP-11), but it all worked really, really well,
for many years.
E.g. at one point, as a dare/hack, I said I'd move the MOS operating system, a
version written in portable C (with that type name system) to the AMD 29000
over one night. This wasn't totaly crazy; I'd already gotten the debugger (a
DDT written in similar portable C) to run on the machine, so I knew where the
potholes were. I'd have to write a small amount of machine language (which I
could traslate from the M68K version), but most of it should just compile and
go. I didn't quite make it, it wasn't quite running when people started coming
in the next morning; but IIRC it started to work later that day.
> Isn't it nonstandard (although I am aware of some compilers that do it) to
> default the type of char to unsigned?
"The implementation shall define char to have the same range,
representation, and behavior as either signed char or unsigned char."
(Technically it's a separate type from both of them.)
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
Was Chaos networking in use at the labs, or is it just an artifact
present on the surviving tape?
I don't recall any use of Chaos in 1127. Possibly one of
the nearby groups who also used the Research system needed
it at some point, perhaps before my time (I arrived in
I certainly don't remember anyone raising objections to