I saw a multiple assignment statement in the book "Learning APL with APLX",
and tried it, not knowing if GNU-APL accepted it or not. I expected maybe a
syntax error, but instead it crashes with a backtrace. I know 'a←b←c←5'
works, but I was just playing around with a statement I hadn't seen before.

          (a b c) ← 5


==============================================================================
    Assertion failed: get_ValueType() == TV_SYM
    in Function:      get_sym_ptr
    in file:          ./Token.hh:240

    C/C++ call stack:

    ----------------------------------------
    -- Stack trace at Assert.cc:75
    ----------------------------------------
    0x10a8ed87e main
    0x10aab66c5  Workspace::immediate_execution(bool)
    0x10a9422cf   Command::process_line()
    0x10a956bd7    Command::finish_context()
    0x10a96b675     Executable::execute_body() const
    0x10aa400f5      StateIndicator::run()
    0x10a9b4f7f       Prefix::reduce_statements()
    0x10a9b4966        Prefix::reduce_V_RPAR_ASS_B()
    0x10a9012d6         do_Assert(char const*, char const*, char const*,
int)
    ========================================
    ========================================

    SI stack:

    Depth:      0
    Exec:       0x7fad16423400
    Safe exec:  0
    Pmode:      ◊  (a b c) ← 5
    PC:         5 (9) '(... a)←
    Stat:       (a b c) ← 5
    err_code:   0x0


==============================================================================

    $ apl --cfg

    BUILDTAG:
    ---------
       Project:        GNU APL
       Version / SVN:  1.8 / SVN: 1767M
       Build Date:     2024-03-18 02:40:56 UTC
       Build OS:       Darwin 19.6.0 x86_64
       config.status:  default ./configure options
       Archive SVN:    1747

-- 
Mike Hall

Reply via email to