thanks jurgen, i havent had time to pull latest and compile, but i appreciate the fix.
- Rowan On Tue, Apr 7, 2020, 5:58 AM Blake McBride <blake1...@gmail.com> wrote: > Thanks. I saw that after I sent the email. When I used APL, there was no > APL2. So, I've never used APL2 professionally. > > I also see that the latest repo version has a fix for the original report. > > Thanks! > > Blake > > > On Tue, Apr 7, 2020 at 4:37 AM Dr. Jürgen Sauermann < > mail@jürgen-sauermann.de> wrote: > >> Hi, >> >> actually it assigns a new value (*6 7* in the example) to a part of *x*. >> Even though *⊃⊃x *is a temporarym >> the assignment changes the original *x*. >> >> I suppose IBM APL2 does the same. >> >> BR, Jürgen >> >> >> On 4/7/20 1:28 AM, Blake McBride wrote: >> >> Without assigning it to a variable, I don't see what sense the >> statement even makes. >> >> (⊃⊃x) >> >> produces an intermediate value. I can't think of what sense making an >> assignment to an intermediate value even does. >> >> I think APL should just throw a syntax error as in: >> >> (+/10 10⍴⍳100)[2]←4 >> SYNTAX ERROR >> (+/10 10⍴⍳100)[2]←4 >> ^ ^ >> >> (Surely a syntax error is more appropriate than a segfault!) >> >> What does IBM APL do? >> >> --blake >> >> >> On Sat, Apr 4, 2020 at 5:03 PM Rowan Cannaday <cannad...@gmail.com> >> wrote: >> >>> hello y'all, hope everyone is staying safe. >>> >>> x ← 1 (2 3 (4 5)) >>> (⊃⊃x)[2;3;] ← 6 7 >>> >>> >>> =================================================== >>> SEGMENTATION FAULT >>> >>> ---------------------------------------- >>> -- Stack trace at main.cc:88 >>> ---------------------------------------- >>> 0x7F032D7BABBB __libc_start_main >>> 0x557F8B045425 main >>> 0x557F8B1BE755 Workspace::immediate_execution(bool) >>> 0x557F8B099A4B Command::process_line() >>> 0x557F8B09A45A Command::do_APL_expression(UCS_string&) >>> 0x557F8B099AE8 Command::finish_context() >>> 0x557F8B0A3698 Executable::execute_body() const >>> 0x557F8B159D4C StateIndicator::run() >>> 0x557F8B0DB23D Prefix::reduce_statements() >>> 0x557F8B0DA17D Prefix::reduce_MISC_F_B_() >>> 0x557F8B0F1F4F Bif_F12_PICK::eval_B(Value_P) >>> 0x557F8B0EBB33 Bif_F12_PICK::disclose(Value_P, bool) >>> 0x557F8B0EB86A Bif_F12_PICK::compute_item_shape(Value_P, >>> bool) >>> 0x7F032DCD1520 >>> 0x557F8B04C4AB >>> ======================================== >>> ==================================================== >>> >>> By the way, it works if you use an intermediary variable: >>> >>> y←⊃⊃x >>> y[2;3;] >>> 4 5 >>> y[2;3;] ← 5 6 >>> y >>> 1 0 >>> 0 0 >>> 0 0 >>> >>> 2 0 >>> 3 0 >>> 5 6 >>> >>> Cheers, >>> - Rowan >>> >> >>