PDP-10 / its

Incompatible Timesharing System
Other
841 stars 80 forks source link

Trivial Gunner #2202

Closed larsbrinkhoff closed 1 year ago

larsbrinkhoff commented 1 year ago

See #2196. Trivial Gunner finds toplevel jobs at are not logged in and has been idle for at least 20 minutes, and guns them down.

larsbrinkhoff commented 1 year ago

I made an HOURLY link from DRAGON, but that didn't work. I wonder if the TTY output makes it block?

larsbrinkhoff commented 1 year ago

This bit should ensure the first OPEN is not called if run from Puff the Magic Dragon. But what about the second call? It looks like it will bail if it can't open TTY; can it do that in this case?

        TLNN B,%OPDDT           ;Or if not under DDT
         JRST [ SYSCAL OPEN,[ %CLBIT,,<%DOWOV+.UAO> ? %CLIMM,,TTYO
                                [SIXBIT /DSK/]
                                [SIXBIT /GUNNER/]
                                [SIXBIT /LOG/]
                                [SIXBIT /SPACY/]]
                 LOSE
                MOVEI A,TTYO
                CALL DSKEOF
                JRST GUNN09 ]
        SYSCAL OPEN,[%CLBIT,,<.UAO+%TJDIS> ? %CLIMM,,TTYO ? [SIXBIT /TTY/]]
         LOSE
larsbrinkhoff commented 1 year ago

Ah, it's probably because I have no SPACY directory. I'll test that theory.

larsbrinkhoff commented 1 year ago

The fact that the log goes to the SPACY directory suggests it was written by @cstacy. I put the source file in EJS since that's where I got it, but maybe SPACY or CSTACY would be better.

larsbrinkhoff commented 1 year ago

By setting LOG to 1 and single stepping to failure, I see the file has to exist for Trivial Gunner to run in file logging mode.

eswenson1 commented 1 year ago

Ugh. Good find. And yes, this version of gunner was last modified by CSTACY. It was, I believe, originally written by RWK, updated by me (EJS), and then updated by CSTACY.

cstacy commented 1 year ago

I haven't looked but I don't remember anything specifically about this program, but it is extremely likely that I hacked on it. We should just ask RWK if he originated it. (AFAIK he invented PWORD, too.)

My very first program on ITS was the gunner program for DM, which I wrote in MDL.

But please don't go looking for that one, as I imagine it's not great code -- first time out and clueless! :)

I was famous among the tourists for flushing people, LOL!

larsbrinkhoff commented 1 year ago

@cstacy, your programming secrets seem to be safe. All I could find of the MDL gunner was a binary version of SYS; ATSISIGN GUNNER from 1977. I will ask RWK if he remembers this Trivial Gunner.

cstacy commented 1 year ago

On 7/16/23 8:46 AM, Lars Brinkhoff wrote:

@ll I could find of the MDL gunner was a binary version of SYS; ATSISIGN GUNNER from 1977. I will ask RWK if he remembers this Trivial Gunner.

That's way too early to be me. My guess is that it's the same old one as from MC.

I woner of "Trivial" GUNNER is a different program than the GUNNER that we think was in ATSIGN. I'm going to look.

eswenson1 commented 1 year ago

I thought sys;atsign gunner on DM was always from TAA’s MIDAS version of GUNNER, no? Did you compare the 1977 binary with sysen2;gunner mtaNNN to see if it seems similar?

@cstacy was your MDL version actually called GUNNER?

cstacy commented 1 year ago

It's of course been a long time, but I looked this source code over and I definitely wrote this program.

I'm looking at an old copy I have here from before the Github project. I found it in the personal archive CSTACY;AR1 SRC1.

However, I don't know why I wrote it, what state of development it was in, or even if it works. It could have just been an experiment or work in progress.

The name "Trivial" GUNNER suggests to me that it's perhaps a functionally stripped down replacement for the original "real" GUNNER. Maybe GUNNER had stopped working, or the requirements changed, or maybe I wanted to change something and just thought the old one was too crufty. If there's no other versions of the GUNNER source around, maybe it's because we had somehow lost it.

It's using some conventions that I adopted from COMSAT. The "real" GUNNER would not have looked like that at all. Also, this code is extremely late in the development of ITS -- it even uses ALAN's FORMAT package!

There's a section "Map In Users" which is entirely commented out. That seems like it ought to be an important piece of code to be IFN'd away like that.

There are some comments in the source I would not have left in a released "official" system program. Such as the "Other Crap" heading.

If it had been installed, I would have moved it to one of the system source directories. We didn't really keep that much software in personal directories. (Especially in the latter years, when we had created more system source code directories.)

I rather doubt this particular program was deployed. But I have no recollection of the story. Are there any clues to match it with the binary you have in ATSIGN?

"I don't think this is the GUNNER you are looking for."

eswenson1 commented 1 year ago

I was wrong earlier. The atsign gunner that existed in the 80’s on DM was written by TAA in midas and the latest version (with recent edits by me to get it running) is in sysen2;gunner mta382. At the top of that source, it says that it is a replacement for the original Muddle version. I don’t believe we’ve found source for that one (but it must predate your Muddle version, @cstacy ).

I only find one tape in ToTS with a CSTACY directory on it, so unless your Muddle version was elsewhere on DM, it may well be lost.

cstacy commented 1 year ago

On 7/16/23 11:32 AM, Eric Swenson wrote:

I thought sys;atsign gunner on DM was always from TAA’s MIDAS version of GUNNER, no? Did you compare the 1977 binary with sysen2;gunner mtaNNN to see if it seems similar?

@cstacy was your MDL version actually called GUNNER?

I barely remember anything about it, except that it was my very first project, and also my first attempt at MDL. (And I didn't really understand Lisp yet.) Mine was an interactive program, not a daemon. You would run it when the system got crowded to help automate the flushing of online tourists. (Rather than doing it by hand.) Now that you mention it, I don't remember what mine was actually called -- it could have had some other name. Especially if there was a GUNNER daemon still running on DM in 1980.

I always thought GUNNER originated on MC, where there were lots of remote users (Consortium subscribers and tourists) who would forget to log out. From your mentioning TAA, I'm guessing that DM also needed a daemon soon after a certain program was discovered, somewhere West Of House.

cstacy commented 1 year ago

On 7/16/23 12:02 PM, Eric Swenson wrote:

I  it says that it is a replacement for the original Muddle version. I don’t believe we’ve found source for that one (but it must predate your Muddle version, @cstacy ).

Mine wasn't a daemon program. (If there was a MDL version of the daemon, I don't think I particularly knew about it.)

Not long after I wrote my MDL program, aside from being the User Accounts enforcer on DM, my focus somewhat shifted to the other machines (especially AI), because the next thing was working with Roger Duffey on the email overload crisis (solution resulting in the creation of "Digests"). That involved learning MACLISP and MIDAS.

So although I know we used it, my (beginner) MDL program could easily be lost.

I was still a tourist (living in Fairfax, Virginia) while all of this was going on. You were the MIT guy from nearby Maryland who had acquired a copy of the ZORK sources! (Don't remember if you had graduated yet.) I don't think I knew you were a Multician, but I was fascinated with Multics in high school (which I had just graduated).

larsbrinkhoff commented 1 year ago

The 1977 SYS; ATSIGN GUNNER binary starts TS MUD54 and wants to load GUNNER, presumably a Muddle SAVE file. There is no such SAVE file on the tapes, but I see in DM .TAPE database files there used to the a COMSYS; GUNNER SAVE. I think this would be the old "original muddle gunner, which knows only about COMBAT." Comment from the "new" DM GUNNER by @taa01776.