thanks, see below.
Best Regards,
Jürgen
On 6/9/22 5:17 PM,
hud...@hudsonlacerda.com wrote:
make develop and make parallel are only shortcuts for lazy people like myself.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]".
To add your own configure options to e.g. make develop, edit Makefile.incl and
rerun make develop.
The designation "experimental" is only meant as a warning to the user thatHowever, 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.
the feature is not very well tested and should be avoided in production code.
Errors should always be reported and are even more important for experimental
features.
The parallel execution feature will most likely remain experimental because the
benefits have shown to be rather small. I will look into the case below once more.
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 ---------------------------------------- 0x7FFFF6A6F7FD __libc_start_main 0x555555618205 main 0x5555557A91F5 Workspace::immediate_execution(bool) 0x55555567F5DB Command::process_line() 0x55555567F678 Command::finish_context() 0x55555568C8D8 Executable::execute_body() const 0x5555557457CC StateIndicator::run() 0x5555556C8CC0 Prefix::reduce_statements() 0x5555556C27FC Prefix::reduce_A_F_B_() 0x555555744975 Bif_F12_TIMES::eval_AB(Value_P, Value_P) const 0x555555741730 ScalarFunction::eval_scalar_AB(Value const&, Value const&, ErrorCode (Cell::*)(Cell*, Cell const*) const) const 0x5555557406F1 ScalarFunction::do_scalar_AB(ErrorCode&, Value const&, Value const&, ErrorCode (Cell::*)(Cell*, Cell const*) const) const 0x55555573FDB2 ScalarFunction::PF_scalar_AB(Thread_context&) 0x555555662C47 0x55555568C6B1 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 ---------------------------------------- 0x2AAAA1B7DD80 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 0x7ffff54f2640 (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 0x00007ffff6a6e546 in __GI_abort () at abort.c:79 #2 0x00007ffff6e08909 in () at /lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007ffff6e13f2a in () at /lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007ffff6e13f95 in () at /lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007ffff6e141e8 in () at /lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x000055555568c724 in throw_apl_error(ErrorCode, char const*) (code=code@entry=E_DOMAIN_ERROR, loc=loc@entry=0x5555557c10b6 "Cell.cc:156") at Error.cc:213 #7 0x0000555555662c47 in Cell::get_pointer_value() const (this=0x555555950460) at Cell.cc:156 #8 0x000055555573fdb2 in ScalarFunction::PF_scalar_AB(Thread_context&) (tctx=...) at ScalarFunction.cc:655 #9 0x00005555556b7799 in Parallel::worker_main(void*) (arg=0x5555559582e0) at Parallel.cc:380 #10 0x00007ffff70d1d80 in start_thread (arg=0x7ffff54f2640) at pthread_create.c:481 #11 0x00007ffff6b4676f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95