thanks, I believe that I fixed in SVN 1568.
Primarily by adding some )MORE info pointing at the problem because ⎕L and ⎕R are
not really easy to use.
E.g. in your first example below: monadic ÷ fails and then only ⎕R exists while ⎕L does not.
Best Regards,
Jürgen
On 6/17/22 8:25 PM,
hud...@hudsonlacerda.com wrote:
Hi. There are something strange with ⎕L and ⎕R.(The exception is only raised in interactive mode, not from a script, and not always.) Hudson (The example below includes several user errors, but I could not reproduce correct APL2 examples of ∇ / ⎕L.) #! ⍝ Exceptions trying access ⎕L or ⎕R in interactive mode. ∇ Z ← L F R L×÷R ∇ 3 F 0 ⎕L ⎕R A←⎕L B←⎕R ⎕L 3 ⎕L 33 ⎕L 34 ⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝ [...] A←⎕L VALUE ERROR A←⎕L ^ B←⎕R VALUE ERROR B←⎕R ^ ⎕L 3 VALUE ERROR ⎕L 3 ^ ⎕L 33 VALUE ERROR ⎕L 33 ^ ⎕L 34 VALUE ERROR ⎕L 34 ^ ⎕L 3 VALUE ERROR ⎕L 3 ^ ⎕L 33 ============================================================================== Assertion failed: size() > 1 in Function: at1 in file: Prefix.hh:151 C/C++ call stack: ---------------------------------------- -- Stack trace at Assert.cc:72 ---------------------------------------- 0x7F42CD8407FD __libc_start_main 0x55E22F714575 main 0x55E22F8F4E45 Workspace::immediate_execution(bool) 0x55E22F797001 Command::process_line() 0x55E22F7970C3 Command::finish_context() 0x55E22F7A6BB8 Executable::execute_body() const 0x55E22F886FEC StateIndicator::run() 0x55E22F7EF353 Prefix::reduce_statements() 0x55E22F89D5BD Symbol::resolve(Token&, bool) 0x55E22F8A2B18 Quad_L::get_apl_value() const 0x55E22F887431 StateIndicator::get_L() 0x55E22F7EBC4D 0x55E22F7E2723 0x55E22F733811 do_Assert(char const*, char const*, char const*, int) ======================================== SI stack: Depth: 10 Exec: 0x55e230189b00 Safe exec: 0 Pmode: ◊ ⎕L 33 PC: 1 (4) ⎕L Stat: ⎕L 33 err_code: 0x0 Depth: 9 Exec: 0x55e23019f920 Safe exec: 0 Pmode: ◊ ⎕L 3 PC: 1 (4) ⎕L Stat: ⎕L 3 err_code: 0x30001 thrown at: SystemVariable.cc:469 e_msg_1: 'VALUE ERROR' e_msg_2: ' ⎕L 3' e_msg_3: ' ^' Depth: 8 Exec: 0x55e2301861e0 Safe exec: 0 Pmode: ◊ ⎕L 34 PC: 1 (4) ⎕L Stat: ⎕L 34 err_code: 0x30001 thrown at: SystemVariable.cc:469 e_msg_1: 'VALUE ERROR' e_msg_2: ' ⎕L 34' e_msg_3: ' ^' Depth: 7 Exec: 0x55e230186130 Safe exec: 0 Pmode: ◊ ⎕L 33 PC: 1 (4) ⎕L Stat: ⎕L 33 err_code: 0x30001 thrown at: SystemVariable.cc:469 e_msg_1: 'VALUE ERROR' e_msg_2: ' ⎕L 33' e_msg_3: ' ^' Depth: 6 Exec: 0x55e230186ec0 Safe exec: 0 Pmode: ◊ ⎕L 3 PC: 1 (4) ⎕L Stat: ⎕L 3 err_code: 0x30001 thrown at: SystemVariable.cc:469 e_msg_1: 'VALUE ERROR' e_msg_2: ' ⎕L 3' e_msg_3: ' ^' Depth: 5 Exec: 0x55e230187230 Safe exec: 0 Pmode: ◊ B←⎕R PC: 0 (5) ⎕R Stat: B←⎕R err_code: 0x30001 thrown at: SystemVariable.cc:874 e_msg_1: 'VALUE ERROR' e_msg_2: ' B←⎕R' e_msg_3: ' ^' Depth: 4 Exec: 0x55e23018b520 Safe exec: 0 Pmode: ◊ A←⎕L PC: 0 (5) ⎕L Stat: A←⎕L err_code: 0x30001 thrown at: SystemVariable.cc:469 e_msg_1: 'VALUE ERROR' e_msg_2: ' A←⎕L' e_msg_3: ' ^' Depth: 3 Exec: 0x55e230186a40 Safe exec: 0 Pmode: ◊ ⎕R PC: 0 (3) ⎕R Stat: ⎕R err_code: 0x30001 thrown at: SystemVariable.cc:874 e_msg_1: 'VALUE ERROR' e_msg_2: ' ⎕R' e_msg_3: ' ^' Depth: 2 Exec: 0x55e23018ab00 Safe exec: 0 Pmode: ◊ ⎕L PC: 0 (3) ⎕L Stat: ⎕L err_code: 0x30001 thrown at: SystemVariable.cc:469 e_msg_1: 'VALUE ERROR' e_msg_2: ' ⎕L' e_msg_3: ' ^' Depth: 1 Exec: 0x55e23018a930 Safe exec: 0 Pmode: ∇ F[1] PC: 3 (6) 'L Stat: L×÷R err_code: 0x50004 thrown at: ScalarFunction.cc:140 e_msg_1: 'DOMAIN ERROR' e_msg_2: 'F[1] L×÷R' e_msg_3: ' ^^' Depth: 0 Exec: 0x55e23018b800 Safe exec: 0 Pmode: ◊ 3 F 0 PC: 3 (5) ENDL Stat: 3 F 0 err_code: 0x0 ==============================================================================