I think the problem is incorrect parsing. Note that there is no space between between the 'x' and the first '5'. you can also get a segfault if you use ⎕nc and a similar syntax. Its weird because ⎕nc5 and ⎕ex5 result in Domain errors as expected.
It looks like the stack trace for both these functions call the same underlying function that the stack trace ends on:
Value::to_varnames(std::vector<UCS_string, std::allocator<UCS_string> >&, bool) const
My C++ is too rusty to figure this out.
⎕nc5 5 ⍴ '3 3 '
====================================================
SEGMENTATION FAULT
----------------------------------------
-- Stack trace at main.cc:63
----------------------------------------
0x7f0d74089ec5 __libc_start_main
0x4432d5 main
0x577b8d Workspace::immediate_execution(bool)
0x48ce1a Command::process_line()
0x48cef8 Command::do_APL_expression(UCS_string&)
0x497e9b Executable::execute_body() const
0x524af0 StateIndicator::run()
0x4cd254 Prefix::reduce_statements()
0x4cc54d Prefix::reduce_MISC_F_B_()
0x4f5fd1 Quad_NC::eval_B(Value_P)
0x574842 Value::to_varnames(std::vector<UCS_string, std::allocator<UCS_string> >&, bool) const
0x7f0d74e90c90
0x448227
========================================
====================================================
-------- Original Message --------
Subject: Re: [Bug-apl] segmentation fault in svn 639
From: Louis Chretien <[email protected]>
Date: Sat, June 20, 2015 3:27 am
To: [email protected]
Why would you want to EXpunge an _expression_? Isn’t Quad-EX used to delete APL objects?The APL2 manual states that the argument should be the name of an APL object in quotes.I agree the error message should not be as dire as a segfault, but the basic intent seems dubious…On 2015-06-20, at 01:18, [email protected] wrote:Type this line:⎕ex5 5 ⍴ '3 3 'and then this segmentation error happens:====================================================SEGMENTATION FAULT------------------------------------------ Stack trace at main.cc:63----------------------------------------0x7f78c4e6aead __libc_start_main0x454215 main0x544885 Workspace::immediate_execution(bool)0x490922 Command::process_line()0x490107 Command::do_APL_expression(UCS_string&)0x499890 Executable::execute_body() const0x5051f0 StateIndicator::run()0x4c2d9e Prefix::reduce_statements()0x4c291f Prefix::reduce_MISC_F_B_()0x4e2eee Quad_EX::eval_B(Value_P)0x53eed0 Value::to_varnames(std::vector<UCS_string, std::allocator<UCS_string> >&, bool) const0x7f78c5b9d0a00x458f7a============================================================================================
---Louis Chrétien
