I think the layout function need two modifications: 1. enable ^C
2. at least for large data, output as you go rather than format the whole thing and then output the whole thing --blake On Tue, Jul 8, 2014 at 9:27 PM, Elias Mårtenson <[email protected]> wrote: > There is already the SIGINT signal which is processed by GNU APL to > interrupt a function execution. However, this interruptability is not > extended to the layout function. > > > On 9 July 2014 09:09, Peter Teeson <[email protected]> wrote: > >> In Sharp APL (IPSA) we had a "panic int" which interrupted whatever was >> being computed after a predetermined time. >> It was inherent to the interpreter because we ran a timesharing system. >> I don't recall the exact details but it went something like this; >> >> 1) Workspace gets swapped in for execution and is given a quantum of CPU >> time >> 2) At the end of that quantum a second but quite small (relative to the >> normal ) additional amount of CPU was allocated >> to see if that would allow an interrupt at a "suitable" point in the >> function/operation that was going on. >> 3) If that extra time was not sufficient the workspace was arbitrarily >> interrupted and AFAICR the user got )CLEAR WS. >> >> That's probably not exactly correct (I never read the actual assembly >> code for that part of the interpreter). >> But the idea worked for us. >> >> On a single user system there is no real need for a specific quantum; the >> OS takes care of scheduling. >> But perhaps a "panic int" concept in some form or other might be useful? >> Perhaps allowing the user to decide if they want to continue? >> Perhaps with a default value? Perhaps assignable by the user? >> >> respect… >> >> Peter >> >> On 2014-07-08, at 1:50 PM, Blake McBride <[email protected]> wrote: >> >> > If I do: >> > >> > z←⍳1000000 >> > >> > the operation is very fast. But if I do: >> > >> > ⍳1000000 >> > >> > it is very slow, presumably because it is formatting the whole thing >> for display. No problem. >> > >> > The problem is that during its effort to format for display, I cannot >> use ^C. ^C appears to work fine in normal situations - but not during the >> format for display time. During format-for-display time ^C is ignored. >> > >> > This caused me a problem when I accidentally mis-typed something. The >> mis-type caused something very large to be displayed. In fact, it was so >> large that my machine started paging. I was unable to use ^C to stop it. >> After waiting an hour, I had to kill the process and loose my work. >> > >> > Thanks. >> > >> > Blake >> > >> >> >> >
