Hey Unix history nerds:

Do we know who wrote tar(1)? Like, the original tar.c included in V7 Research Unix (which is the earliest one I can find). The list of potential culprits is pretty short, but there's no attribution I can find.

(If you have an answer, please clarify where you got it from, and reference any contemporaneous/primary sources if you've got them.)

@cliffle Do you have the TUHS CD-ROM? It may be in the SCCS files there, contact Warren Toomey ([email protected]) who will probably have the definitive answer.

@ChuckMcManis Interesting, I'll reach out -- but I'm pretty sure tar.c started life before sccs had escaped the PWB Unix branch into Research. So I'd be surprised if it had revision history from before the V7 release.

I would be delighted to be wrong about this!

@cliffle I do think tar started life earlier, just that when it was added to sccs the initial commit might have included "this is an archive utility written by ..."
@ChuckMcManis well that would be marvelous, let's find out

@ChuckMcManis @cliffle (I don’t have anything to add to the tar history, but…)

The JDK sources prior to #OpenJDK were maintained in Teamware/CodeMgr which used SCCS as a storage format. I occasionally have a hunt through them, using the Mac x64 port by the late Jörg Schilling, running in emulation on my Mac M4. All my old shell aliases still work.

#Java

@stuartmarks @cliffle Is "Teamware" what Avocet became? You can go back and see some of my old commits 😆
@ChuckMcManis @cliffle Yep, Avocet turned into Code Manager and then Teamware. Or Teamware was the product line, or something. I didn’t know you worked on Avocet. I knew Evan Adams, Claeton Giordano, and John Treacy.
@stuartmarks @cliffle I didn't work on Avocet, I was on the original Java team so some of my commits to the Java repo would be from me 🙂 I had switched to Avocet because it was part of the SunOS/SVR4 merge and I was doing ONC stuff, and then joined First Person and it was back to SunOS 4 and SCCS. But I did do the first JVM on Solaris 2.0 and got "Hello Hello Hello World World World" running. (Java + Green threads)

@ChuckMcManis @cliffle Oh you worked on early Java and not early Avocet! Ok maybe I’ll look for some of your changesets (erm, “deltas” in SCCS parlance) in the old JDK sources. ah green threads, how we’ve missed you… NOT.

BTW we are finally removing Thread.stop() for good.

@stuartmarks @cliffle on thread.stop that was my comment on the halting problem and making final really final 😀 we had so many discussions about that

@ChuckMcManis @cliffle Oh yes and the discussions continue! Well Thread.stop is gone. But final still doesn’t quite mean final, yet… see JEP 500. (Dunno if you care to follow this stuff.)

https://openjdk.org/jeps/500

@stuartmarks @cliffle Yeah. See while I was part of the original Java group I wasn't a *language* guy, I was a *systems* guy. So I was worried about things like "How are we going to make it secure, exportable according to the NSA, AND remotely executing?" I was amused by the language debates (is Boolean a first class thing? How about unsigned ints? are different sized floats distinct types? Etc. 1/2
@stuartmarks @cliffle Thread.stop() and 'final' were a very long very deep debate about could you stop a thread AND guarantee final? Did it violate the language safety if a thread never stopped even if you told it to? (because it was hung) and if you create a deadlock by garbage collecting a dead thread who was holding state until a final clause could execute could you detect that? There were many worms in that can, many worms.
@cliffle @ChuckMcManis
TUHS email list seems to indicate Ken wrote the first cut of tar because he wasn’t a fan of cpio. He kept the tp/stp interface and there are other references to upgrade from V6 to V7 Unix using tar (see below). There was a v6tar.c that existed specifically to tar up V6 to restore on v7 (file systems were not compatible).

https://www.tuhs.org/pipermail/tuhs/2019-September/018452.html

Guide for moving to v7 from v6:
https://minnie.tuhs.org/PUPS/Setup/v7_setup.html
[TUHS] PWB vs Unix/TS