On Fri, Feb 10, 2023 at 10:44 AM Clem Cole <clemc@ccc.com> wrote:
> On Fri, Feb 10, 2023 at 10:34 AM Dan Cross <crossd@gmail.com> wrote:
>> If I recall correctly (and it's been a while...) csup, CVSup, et al
>> were based on `sup`, which was a file distribution tool somewhat like
>> `rdist`, which came from CMU. csup/cvsup was optimized for moving
>> source code deltas (a la CVS repositories) around. I recall a
>> graphical client written in Modula-3?
>
> Right -- ??maybe?? Bob Baron or one of the Mach guys did it - used the DEC Modula-3 IIRC.
That sounds right for `sup`. I vaguely remember it being associated
with Coda, as well? I believe the BSDs used it to distribute source
code (in addition to or instead of anoncvs?) in the 90s.
The original sup was on the 4.4BSD tapes, and was written in C' It may
have come from Mach.
It looks like CVSup was done by John Polstra in Modula-3. It was being
used for FreeBSD in at least 1996, but I don't know when they started
using it. It's mostly disappeared, but archive.org has a snapshot of
its old web site:
https://web.archive.org/web/20060103034312/http://www.cvsup.org/faq.html
Yes. FreeBSD didn't offer anoncvs because CVS was so terrible at handling the
high rate of change for the FreeBSD project. I don't think any of the other
BSD projects ever used it officially, but I have a vague memory of there being
unofficial NetBSD and OpenBSD mirrors. The latter two projects focused on
using anoncvs, to the present day (though both now have git and other mirrors).
DragonFlyBSD used it briefly since it started with CVS and then transitioned to
git, when it stopped using it entirely.
anoncvs didn't cache the state, but cvsupd did, so with the high number of clients
FreeBSD had, cvsupd could handle the load, while anoncvs made the machine fall
over a lot due to all the file I/O and some, long since fixed, bugs in the new-at-the-time
unified buffer cache code. The data for cvsupd's working set could fit into memory,
but cvs's scanning of the whole tree blew any caching in the kernel out of the water
in addition to hitting the above bugs....
`csup` was a reimplementation in C (without the GUI part, I imagine)
because the Modula-3 dependency was a pain.
Yes. The compilers were slow to update, the old ones stopped working
due to the compilers heavy knowledge of threads, which were undergoing
flux in the base FreeBSD system, so updates were always tricky. Plus
there were issues with different upstreams accepting FreeBSD patches
for various reasons that I have only a vague recollection of. There were two
or three compilers, IIRC: The original DEC one, then an egcs based one
and then a gcc one when egcs and gcc "reunited"... This was an unbelievable
pain, with few people knowing how to properly do a bringup and John retiring
or becoming semi-retired in this time period.
cvsup was there for FreeBSD/alpha, but never made the transition to powerpc,
sparc64 or mips because the modula-3 compiler support for those platforms
at the time was terrible to non-existent... And IIRC the transition from the DEC
compiler to egcs was motivated by trying to fix this problem, but I don't think it
ever really worked out that way... I also think amd64 was an issue too, but
my recollections on that are fuzzy.
Warner
Warner
>> The SUPDUP protocol used by ITS hosts was a "Display Protocol" based
>> on TELNET: https://www.rfc-editor.org/rfc/rfc734
>
> Exactly - popular with the LISP hackers. I started to implement it in the CMU Distributed Front-End years ago but never finished it - I don't know if it was ever completed.
Oh yeah, I imagine it was implemented on Lisp machines, probably for
connecting to ITS. Lars, do you know?
- Dan C.