Hi David,

thanks, I see. SVN 310.

/// Jürgen


On 06/02/2014 06:49 PM, David Lamkins wrote:
Thanks, Jüergen. SVN 307 is, I think, *almost* correct.

My reading of the IBM Reference suggests that 3⊃⎕ec should be character matrix having three rows.


On Mon, Jun 2, 2014 at 7:10 AM, Juergen Sauermann <juergen.sauerm...@t-online.de <mailto:juergen.sauerm...@t-online.de>> wrote:

    Hi David,

    sorry, my fault. I hadn't read the small sentence for result=0 that
    it should be ⎕EM-like. Fixed in SVN 307.

    Please note that GNU APL may open execution contexts (=
    SI-entries) differently from
    IBM APL so that sometimes error messages could differ. The error
    code is normally
    correct, but if an error is user-defined then the error message
    from the user (⎕ES)
    could be lost because the context generating it was closed
    already. In that case
    the context retuns an error token (containing the error code) but
    the token does not
    contain the entire error message.

    /// Jürgen



    On 06/02/2014 02:26 AM, David B. Lamkins wrote:

        Hi Jüergen,

        Sorry for the miscommunication.

        SVN 306 does fix 2⊃⎕ec. However, 3⊃⎕ec is still incorrect.

        3⊃⎕ec should be the same as what ⎕em would have been without
        ⎕ec in the
        case where ⎕ec traps an error.

        Specifically: 3⊃⎕ec should be a three-row text array in which
        line 1 is
        the error message (which may be the text provided to a ⎕es),
        line 2 is
        the offending line of code and line 3 is the error caret(s).
        This is the
        same three error-message lines that would have been printed to
        the APL
        session without the ⎕ec.

        This behavior is covered elsewhere on page 280 of the IBM
        Reference. I
        apologize for having left the `paragraph 3' reference in my
        first email.

        On Sun, 2014-06-01 at 18:53 +0200, Juergen Sauermann wrote:

            Hi David,

            thanks, fixed in SVN 306.

            /// Jürgen


            On 05/31/2014 07:51 PM, David B. Lamkins wrote:

                See the IBM Reference, page 280, paragraph 3.

                When ⎕EC executes an expression that signals a
                user-defined error, the
                second and third items of the result should be the
                same as the
                expression's ⎕ET (which would be 0 1 in this case) and
                ⎕EM. GNU APL
                returns 0 0 and 'User defined error'.

                Note also that ⎕ET must not be changed by ⎕EC. GNU APL
                already does this
                correctly.

                It's not clear from the IBM Reference whether ⎕EM
                should also not be
                changed by ⎕EC. It seems reasonable to assume that
                *not* changing ⎕EM is
                the correct behavior; the whole point of ⎕EC is to
                execute an expression
                in a controlled manner. If so, GNU APL is already
                correct in this
                regard.


                        ⎕es 'foo'
                foo
                        ⎕ES 'foo'
                        ^
                        ⎕em
                foo
                        ⎕ES 'foo'
                        ^
                        ⎕et
                0 1
                        ⎕ec '⎕es ''foo'''
                   0  0 0  User defined error
                        ⎕em












--
"Far out in the uncharted backwaters of the unfashionable end of the Western Spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-eight million miles is an utterly insignificant little blue-green planet whose ape-descended life forms are so amazingly primitive that they still think programming in Java is a pretty neat idea."

-- With apologies to Douglas Adams, who I like to think would have appreciated this.


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/

Reply via email to