Understood. Given that perspective, I'd argue that )OUT should not warn about saving a native function. After all, what's being saved is only an expression using an extension to quad-FX.
GNU APL should, of course, continue to support the )out -> )in round-trip of a workspace containing features specific to the implementation. Perhaps the documentation could include a notice similar to the following: ")OUT writes the contents of the workspace in a format that may be loaded by APL interpreters able to read an .atf file. APL interpreters differ in their capabilities; the ability for another APL interpreter to read an .atf file as written by GNU APL does not guarantee that the saved .atf file will load and run. In the case where program interchange is desired, it is the programmer's responsibility to write code that is compatible with all APL interpreters of interest." On Mon, 2014-06-16 at 16:26 +0200, Juergen Sauermann wrote: > Hi David, > > it is generally impossible in APL to check if a function uses a > feature or not. > > For example A ⎕CR B may or may not use dyadic ⎕CR (which is a GNU APL > extension), > depending on whether A is a variable or a function. > > And )OUT simply dumps the function's ⎕CR without further analyzing it. > > /// Jürgen > > > On 06/15/2014 09:45 PM, David B. Lamkins wrote: > > > Thank you. Confirmed working. > > > > On a related note: would it make sense to also warn about other GNU APL > > extensions when writing an )OUT file? I'm thinking in particular of > > lambdas and defined-function axis notation; these don't seem to cause > > problems with )OUT and )IN, but neither are they standard APL notation. > > > > On Sun, 2014-06-15 at 16:19 +0200, Juergen Sauermann wrote: > > > Hi David, > > > > > > thanks for isolating the fault. I fixed it in SVN 327. > > > > > > The fault was created by native functions being )OUT-ed and )IN-ed. > > > They are now handled properly, but the file created by )OUT is no longer > > > suitable as workspace exchange file when it contains native functions > > > (because native functions are a GNU APL extension that will not be > > > understood > > > by other APL interpreters). > > > > > > )OUT issues a warning for every native function being written. > > > > >