Hi David,
thanks, I have changed the code so that all user-defined functions with
the cannot be suspended" attribute at the top of the )SI stack are pop'ed
before a new immediate execution context is pushed onto )SI. SVN 369.
I hope this is what the standard wants - the information about these
cases is rather thin in both the ISO standard and in the APL2 manual.
I am not always following APL2 when it comes to hiding details of
errors, locked
functions and similar because some of that does IMHO not make much sense in
open-source programs.
/// Jürgen
On 07/08/2014 05:18 AM, David B. Lamkins wrote:
The ISO spec for the component file interface says: "The functions
described here must be written so that they do not suspend. Any errors
encountered or detected must be passed to the context from which the
function was invoked."
I believe that means that the function's "cannot be suspended" attribute
must be set.
I've arranged for each function in the component file API to have the
"cannot be suspended" bit set using
0 1 0 0⎕fx ⎕cr 'function name'
Errors in the functions so attributed still display the line number at
which the error occurred. According to pg. 295 of the ISO spec, I should
see only the function name on the state indicator.