bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: An Issue With Execute Alternate Under OpenBSD, Library Suggestions,


From: Dr . Jürgen Sauermann
Subject: Re: An Issue With Execute Alternate Under OpenBSD, Library Suggestions, and Debugging Help
Date: Sun, 23 Feb 2020 12:35:09 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:60.0) Gecko/20100101 Thunderbird/60.6.1

Hi Programmer,

thank you for reporting this problem. I tried to reproduce it under Linux MInt, but the problem
does not occur there. So I need some help from your side. My first question is: which compiler
are you using?

In GNU APL, ⎕EA is implemented as a macro,. That means is executed in APL rather than in C/C++.
The macro code of ⎕EA is this (see file src/Macro.def):

    ∇  Z←A Z__A_Quad_EA_B B;RC;ET;RES
[1]      (RC ET RES)←⎕EC B ◊ →(RC=0 1 2 3 4 5)/ERR VAL COM 0 BRA ESC
[2] ERR: ⎕ES 100 $FFFF,  (⊂,A),  ET     ⍝ error
[3] VAL: Z←RES      ◊ →0                ⍝ non-committed value
[4] COM: ⎕ES 100 $FFFE   RES            ⍝ committed value
[5] BRA: ⎕ES 100 $FFFD   RES            ⍝ →N
[6] ESC: ⎕ES 100 $FFFC                  ⍝ →
[7] ∇

So my second question is: does the problem also occur if you replace ⎕EA by the defined
function
Z__A_Quad_EA_B above? If so then the problem is either in ⎕EC or in ⎕ES and
we (read: you) need to find out which and why.

Regarding ⎕TRACE and ⎕STOP, they are described in the ISO standard for APL 2 and
are vaguely related to T∆ and S∆ in IBM APL2.

S∆FOO←lines

is supposedly equivalent to

 ⎕STOP lines

(and should stop if one of the lines is reached. Dito for ⎕TRACE.

Best Regards,
Jürgen


On 2/23/20 10:20 AM, address@hidden wrote:
I've constructed a basic example which crashes GNU APL under OpenBSD; it explains the cause, but the
notice may still be valuable:

      '1'⎕EA'1÷0'
Cannot show function call stack since execinfo.h seems not to exist on this OS (WINDOWs ?).

Process apl finished

I'm also interested in having some of my programs listed in the GNU APL Community page.  Follows are
the relevant pages; there's another article, 2017-02-02, but this may be considered too vulgar:

  http://verisimilitudes.net/2019-08-08
gopher://verisimilitudes.net/12019-08-08
  http://verisimilitudes.net/2019-12-06
gopher://verisimilitudes.net/12019-12-06

My relevant code should all be classified as L1 portability, as I strive for portable and so correct
APL programs.  The programs are all licensed under the AGPLv3.  Another reason I send a message here
is because I'm having issues debugging my 2020-02-20, which I'd also care to have included once I've
finished correcting it.  The ⎕TRACE doesn't provide enough information for me and I'm unaware of how
to properly use ⎕STOP, managing to crash GNU APL under OpenBSD whilst using it.  I'd appreciate help
in using these two commands to their fullest, if one is willing to offer it.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]