Thank you. Confirmed working. With this change, I believe that the component function library conforms to the ISO spec.
https://github.com/TieDyedDevil/iso-apl-cf On Wed, Jul 9, 2014 at 6:11 AM, Juergen Sauermann < juergen.sauerm...@t-online.de> wrote: > 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. >> >> >> >> > -- "The secret to creativity is knowing how to hide your sources." Albert Einstein http://soundcloud.com/davidlamkins http://reverbnation.com/lamkins http://reverbnation.com/lcw http://lamkins-guitar.com/ http://lamkins.net/ http://successful-lisp.com/