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
>> >
>>
>>
>>
>

Reply via email to