Using rank operator with empty argument of derived function, results in
either assertion failure (for positive right operand) or segmentation
fault (for non-positive right operand). It works correctly (resulting
in an error) when axis syntax is used instead of standard-mandated
numeric right operand.
⊢⍤0⍬
====================================================
SEGMENTATION FAULT
----------------------------------------
-- Stack trace at main.cc:140
----------------------------------------
0x7f54435b4b45 __libc_start_main
0x43ad65 main
0x54eab5 Workspace::immediate_execution(bool)
0x47a3d5 Command::process_line()
0x473ca8 Command::do_APL_expression(UCS_string&)
0x484988 Executable::execute_body() const
0x4fed80 StateIndicator::run()
0x4afbd4 Prefix::reduce_statements()
0x4aefbd Prefix::reduce_MISC_F_B_()
0x48ddc3 DerivedFunction::eval_B(Value_P)
0x462e44 Bif_OPER2_RANK::eval_LRB(Token&, Token&, Value_P)
0x45ffff Bif_OPER2_RANK::do_LyXB(Function*, Shape const*, Value_P,
int)
0x45f4f0 Bif_OPER2_RANK::finish_LyXB(EOC_arg&)
0x46d881 Cell::init(Cell const&)
0x7f54452d88d0
0x497d07
========================================
====================================================
⊢⍤1⍬
==============================================================================
Assertion failed: 0
in Function: init
in file: Cell.cc:48
Call stack:
----------------------------------------
-- Stack trace at Cell.cc:48
----------------------------------------
0x7f1490cb6b45 __libc_start_main
0x43ad65 main
0x54eab5 Workspace::immediate_execution(bool)
0x47a3d5 Command::process_line()
0x473ca8 Command::do_APL_expression(UCS_string&)
0x484988 Executable::execute_body() const
0x4fed80 StateIndicator::run()
0x4afbd4 Prefix::reduce_statements()
0x4aefbd Prefix::reduce_MISC_F_B_()
0x48ddc3 DerivedFunction::eval_B(Value_P)
0x462e44 Bif_OPER2_RANK::eval_LRB(Token&, Token&, Value_P)
0x45ffff Bif_OPER2_RANK::do_LyXB(Function*, Shape const*, Value_P,
int)
0x45f3cf Bif_OPER2_RANK::finish_LyXB(EOC_arg&)
0x4c59ab Bif_F2_RIGHT::eval_B(Value_P)
0x54c45d Value::clone(char const*) const
0x46d7d0 Cell::init(Cell const&)
0x449302 do_Assert(char const*, char const*, char const*, int)
========================================
SI stack:
Depth: 0
Exec: 0x2752c00
Safe ex: no
Pmode: ◊ ⊢⍤1⍬
PC: 5 RETURN_STATS
Stat: ⊢⍤1⍬
err_code: 0x0
thrown: at StateIndicator.cc:41
e_msg_1: 'No Error'
e_msg_2: ''
e_msg_3: ''
==============================================================================
-k