Path: utzoo!attcan!uunet!munnari.oz.au!bruce!goanna!ok From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) Newsgroups: comp.arch Subject: Re: Macintosh OS Message-ID: <3177@goanna.cs.rmit.oz.au> Date: 7 Jun 90 07:42:22 GMT References: <1990Jun6.222126.2888@midway.uchicago.edu> Organization: Comp Sci, RMIT, Melbourne, Australia Lines: 49 In article <:SY35CD@xds13.ferranti.com>, peter@ficc.ferranti.com (Peter da Silva) writes... > How about the fact that programmers may have better things to do with their > time than warp code to fit into the windowing universe? I realise that on > the mac 90% of the programs are 90% user-interface, but that's not always > the best way to do things. A compiler, for example, really has no business > calling GetNextEvent *ever*. In article <1990Jun6.222126.2888@midway.uchicago.edu>, gft_robert@gsbacd.uchicago.edu writes: : And if the user wants to interrupt the compilation mid-compile? You'd better : have some way of finding at least this out. GetNextEvent (or WaitNextEvent) : seems the proper way to do this to me. I can't believe I just read this. If you want to interrupt a compilation part-way through, you want a way which is *sure* to work, not a way which *might* work if the compiler-writer happened to remember and the compiler doesn't happen to be busy chasing its tail in a place which couldn't possibly go into an infinite loop but did. What would you think of a telephone which would let you place a 911 call _sometimes_, if someone else using the exchange remember to press a magic button on _his_ phone every few seconds? As for user interaction with compilers; that's fine in a program development system, but what if I have an application where a C program writes a short Prolog program which writes a combined C/SQL program, compiles that, and then runs it? Why should someone sitting in front of the screen ever have to interact with the C compiler that's looking at the C/SQL program? What does _she_ know about the program it's compiling? If I have a well-written compiler from another environment (just for the sake of argument, let's suppose it compiles Scheme to C and then calls the C compiler), why should I have to go through it planting calls to some routine that has nothing to do with what the compiler itself is about? How is anyone but the original authors to know where to call FrobEventNext or whatever it's called, and why should _they_ have thought about it, given that they wrote for other operating systems lacking this restriction? The Interlisp-D environment let you interrupt anything you liked using window and mouse: in the background you could pop up a PSW window with a menu of all the processes, select the one you wanted and then select interrupt and it got a signal. (Or you could give a window keyboard focus and then type an interrupt character. Much the same thing.) A process could _protect_ itself explicitly, but the default was to be interruptable. You could put a process to sleep and wake it up again. Interlisp-D is a single-address-space system, just like the Mac, except for using virtual memory. The Mac has all the hardware needed to do this. Take this to comp.os -- "A 7th class of programs, correct in every way, is believed to exist by a few computer scientists. However, no example could be found to include here."