I don't know diddly about CLU, but I suspect that CLUSYS is a MDL runtime instance that has been loaded with the CLU runtime (written in MDL) and dumped (to TS CLUSYS) such that the CLU function will be the toplevel function. That's why the fload() is like MDL --- it is MDL. And also the dumping of the HELLO program is essentially a recapitulation of the above process. As for what is "actually compiled" here, I am not sure. But I think the CLU runtime includes at least some of the MDL runtime. How much CLU is piggybacking on MDL here is unclear - could just be the loading and dumping mechanism. (Or maybe they just more or less copied that from MDL.) Whether the CLU code is compiled to intermediate MDL, which is then compiled, I do not know. The user's application might be directly compiled to machine code. I wonder how that CLU REPL works! So, not sure if CLU was 100% self-hosted at this point. Since the CLU system files are all available on the ITS emulator project, someone could go look at see exactly what's going on here. I am just guessing about how it works based on how this demo looks to me. I remember undergrad students learning and using CLU around 1983. The course was about software engineering and focused on teams of people doing development (as opposed to basic programming concepts). I don't think they were on a PDP-10 at that time. (Definitely not using ITS, and I don't think TOPS-20 either.) I think they were doing the class on either Unix or some bespoke PDP-11 system (I don't think they had a VAX). Anyway, by this later point, CLU almost certainly was entirely written in CLU with its own runtime. Pretty sure Liskov would have had a VT52 terminal since that's what users mostly had on ITS (including the DM group on the 5th floor) when I was there around 1980. (I think IMLACs were reserved for users who needed graphics.) But I am totally guessing here because early 1970s was way before my time at the lab.
@larsbrinkhoff3 ай бұрын
Yes, you are entirely correct. The CLU runtime at this point was (partially) based on MDL. The compiler in use in the video generates MIDAS source code. All files including many that have not been thoroughly analysed, are available here: github.com/get-a-clu/its-pdp10-clu Checking a random pick of TTYTYP from 1978, I see 11 Imlacs and just one VT52.