Re: /⍨

2022-06-13 Thread Dr . Jürgen Sauermann

  
  
Hi Hudson,
  
  thanks, fixed in SVN 1564.
  
  Looks like the parallel locks were just too fine-grained.
  
  Best Regards,
  Jürgen
  

On 6/12/22 3:07 PM,
  hud...@hudsonlacerda.com wrote:


  Hi Jürgen,

Yes, that case is fixed now.

I have found another issue, that only happens if the number of cores is >1.

Best,
Hudson



- Em 11 de Jun de 2022, em 13:43, Dr. Jürgen Sauermann mail@jürgen-sauermann.de escreveu:


  
Hi Hudson,

I believe I fixed 120× (?⍨120),¨⍳120. SVN 1562 .

Best Regards,

Jürgen

On 6/9/22 5:17 PM, [ mailto:hud...@hudsonlacerda.com | hud...@hudsonlacerda.com
] wrote:



  Hi Jürgen,





  Many thanks.





  Building GNU APL with default ./configure options work fine overall.
I noticed that my config options (compiler version, core count, develop wanted,
assert, etc.)
are overriden by "make develop" or "make parallel[1]".





  However, any attempt to use more than one core causes errors (like below).





  I am not sure whether I should continue to try parallel processing and report
such exceptions,
since it is experimental in GNU APL, and I do not have expertise
to significantly help you debugging the program in a different plataform.





  Cheers,
Hudson





  PS. Executable scripts are working fine now.





]log 26
Log facility 'details of error throwing   ' is now ON
  ]log 25
Log facility 'more verbose errors ' is now ON
  ⎕syl[26;2]←2
  120× (?⍨120),¨⍳120





  throwing DOMAIN ERROR
throwing DOMAIN ERROR at Cell.cc:156
 at Cell.cc:156





  
-- Stack trace at Error.cc:198

0x76A6F7FD __libc_start_main
0x55618205  main
0x557A91F5   Workspace::immediate_execution(bool)
0x5567F5DBCommand::process_line()
0x5567F678 Command::finish_context()
0x5568C8D8  Executable::execute_body() const
0x557457CC   StateIndicator::run()
0x556C8CC0Prefix::reduce_statements()
0x556C27FC Prefix::reduce_A_F_B_()
0x55744975  Bif_F12_TIMES::eval_AB(Value_P, Value_P) const
0x55741730   ScalarFunction::eval_scalar_AB(Value const&, Value
const&, ErrorCode (Cell::*)(Cell*, Cell const*) const) const
0x557406F1ScalarFunction::do_scalar_AB(ErrorCode&, Value const&,
Value const&, ErrorCode (Cell::*)(Cell*, Cell const*) const) const
0x5573FDB2 ScalarFunction::PF_scalar_AB(Thread_context&)
0x55662C47
0x5568C6B1   throw_apl_error(ErrorCode, char const*)

DOMAIN ERROR+
  120×(?⍨120),¨⍳120
  ^   ^
total_lines in apl.lines: 752472
assembler lines in apl.lines: 169513
source line numbers found:169513





  
-- Stack trace at Error.cc:198

0x21B7DD80
0x163799  Parallel::worker_main(void*) at Parallel.cc:381
0x1EBDB2   ScalarFunction::PF_scalar_AB(Thread_context&) at Shape.hh:211
0x10EC47
0x1386B1 throw_apl_error(ErrorCode, char const*) at Error.cc:203

DOMAIN ERROR+
  120×(?⍨120),¨⍳120
  ^   ^
terminate called after throwing an instance of 'Error'





  Thread 2 "apl" received signal SIGABRT, Aborted.
[Switching to Thread 0x754f2640 (LWP 69811)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
49	../sysdeps/unix/sysv/linux/raise.c: Arquivo ou diretório inexistente.
(gdb)
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x76a6e546 in __GI_abort () at abort.c:79
#2  0x76e08909 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x76e13f2a in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x76e13f95 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x76e141e8 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x5568c724 in throw_apl_error(ErrorCode, char const*)
(code=code@entry=E_DOMAIN_ERROR, loc=loc@entry=0x557c10b6 "Cell.cc:156") at
Error.cc:213
#7  0x55662c47 in Cell::get_pointer_value() const (this=0x55950460)
at Cell.cc:156
#8  0x5573fdb2 in ScalarFunction::PF_scalar_AB(Thread_context&)
(tctx=...) at ScalarFunction.cc:655
#9  0x556b7799 in Parallel::worker_main(void*) (arg=0x559582e0) at
Parallel.cc:380
#10 0x770d1d80 in start_thread (arg=0x754f2640) at
pthread_create.c:481
#11 0x76b4676f in clone () at
../sysdeps/unix/sysv/linux/x86_64/

Re: /⍨

2022-06-13 Thread hudson
Hi Jüergen.

Yes, those issues with parrallel are fixed.


Now we have this:

  ⊃/(1 2 3 4)(9 8 7 6)

throwing RANK ERROR at Bif_F12_PARTITION_PICK.cc:646
total_lines in apl.lines: 838342
assembler lines in apl.lines: 509803
source line numbers found:504988


-- Stack trace at Error.cc:198

0x28D5DAAA47FD __libc_start_main
0xBD585  main at main.cc:635
0x29DDE5   Workspace::immediate_execution(bool) at Workspace.cc:236
0x13FF51Command::process_line() at Command.cc:103
0x140013 Command::finish_context() at Command.cc:347
0x14FB08  Executable::execute_body() const at Executable.cc:268
0x22FF6C   StateIndicator::run() at StateIndicator.cc:359
0x197536Prefix::reduce_statements() at Prefix.cc:723 (discriminator 4)
0x194F6D Prefix::reduce_MISC_F_B_() at Value_P.icc:78
0x148CEA  DerivedFunction::eval_B(Value_P) const at Value_P.icc:78
0x11B375   Bif_OPER1_REDUCE::eval_LB(Token&, Value_P) const at 
Value_P.icc:78
0x117269Bif_REDUCE::reduce(Token&, Value_P, unsigned int) at 
Value_P.icc:78
0x11686D Bif_REDUCE::do_reduce(Shape const&, Shape3 const&, long, 
Function const*, Value_P, long) at Value_P.icc:78
0xFC972  Bif_F12_PICK::eval_AB(Value_P, Value_P) const at 
Value_P.icc:78
0xFC628   Bif_F12_PICK::pick(Cell const*, long, long, Value_P, 
long) at Bif_F12_PARTITION_PICK.cc:633 (discriminator 2)
0x14F881throw_apl_error(ErrorCode, char const*) at Error.cc:203

RANK ERROR
  ⊃/(1 2 3 4) (9 8 7 6)
  ^^

==
Assertion failed: get_pointer_cell_count() == 0
in Function:  ~Value
in file:  Value.cc:454

C/C++ call stack:


-- Stack trace at Assert.cc:72

0x28D5DAAA47FD __libc_start_main
0xBD585  main at main.cc:635
0x29DDE5   Workspace::immediate_execution(bool) at Workspace.cc:236
0x13FF51Command::process_line() at Command.cc:103
0x140013 Command::finish_context() at Command.cc:347
0x14FB08  Executable::execute_body() const at Executable.cc:268
0x22FF6C   StateIndicator::run() at StateIndicator.cc:359
0x197536Prefix::reduce_statements() at Prefix.cc:723 (discriminator 4)
0x194F6D Prefix::reduce_MISC_F_B_() at Value_P.icc:78
0x148CEA  DerivedFunction::eval_B(Value_P) const at Value_P.icc:78
0x11B375   Bif_OPER1_REDUCE::eval_LB(Token&, Value_P) const at 
Value_P.icc:78
0x117269Bif_REDUCE::reduce(Token&, Value_P, unsigned int) at 
Value_P.icc:78
0xAD7F5  at Bif_OPER1_REDUCE.cc:380
0xC6451  Value_P::~Value_P() at Value_P.icc:81
0x28ED59   Value::~Value() at Value.hh:973
0x28ECB7Value::~Value() at Value.cc:454
0xDC821 do_Assert(char const*, char const*, char const*, int) 
at Assert.cc:74


SI stack:

Depth:  0
Exec:   0x563a45575c60
Safe exec:  0
Pmode:  ◊  ⊃/(1 2 3 4)(9 8 7 6)
PC: 4 (5) RETURN_STATS
Stat:   ⊃/(1 2 3 4)(9 8 7 6)
err_code:   0x50002
thrown at:  Bif_F12_PARTITION_PICK.cc:646
e_msg_1:'RANK ERROR'
e_msg_2:'  ⊃/(1 2 3 4) (9 8 7 6)'
e_msg_3:'  ^^'


==
terminate called after throwing an instance of 'ErrorCode'
Abortado (imagem do núcleo gravada)












(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x7f6322441546 in __GI_abort () at abort.c:79
#2  0x7f63227db909 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x7f63227e6f2a in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x7f63227e5f99 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x7f63227e66b6 in __gxx_personality_v0 () at 
/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x7f6322415934 in  () at /lib/x86_64-linux-gnu/libgcc_s.so.1
#7  0x7f6322415ff1 in _Unwind_RaiseException () at 
/lib/x86_64-linux-gnu/libgcc_s.so.1
#8  0x7f63227e71db in __cxa_throw () at /lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x557629796809 in do_Assert(char const*, char const*, char const*, int)
(cond=cond@entry=0x5576299a36ab "get_pointer_cell_count() == 0", 
fun=fun@entry=0x5576299a366d "~Value", file=file@entry=0x5576299a3664 
"Value.cc", line=line@entry=454) at Assert.cc:88
#10 0x557629948cb7 in Value::~Value() (this=0x55762bc82d00, 
__in_chrg=) at Value.cc:454
#11 0x557629948d59 in Value::~Value() (this=0x55762bc82d00, 
__in_chrg=) at Value.cc:468
#12 0x557629780451 in Value::decrement_owner_count(char const*) 
(loc=, this=)
at /home/hudson/Programas/gnu-apl/trunk/src/Value.hh:866
#13 Value_P::~Value_P() (this=0x7ffed4c0ab78, __in_chrg=)
at /home/hudson/Programas/gnu-apl/trunk/src/Value_P.