Re: /⍨

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

  
  
Hi Hudson,
  
  thanks, I believe that I fixed in SVN 1568.
  
  Primarily by adding some )MORE info pointing at the
  problem because ⎕L and ⎕R are
  not really easy to use.
  
  E.g. in your first example below: monadic ÷ fails and then only ⎕R
  exists while ⎕L does not.
  
  Best Regards,
  Jürgen
  

On 6/17/22 8:25 PM,
  hud...@hudsonlacerda.com wrote:


  Hi.

There are something strange with ⎕L and ⎕R.

(The exception is only raised in interactive mode, not from a script, and not always.)

Hudson



(The example below includes several user errors, but I could not reproduce correct APL2 examples of ∇ / ⎕L.)



#!
⍝ Exceptions trying access ⎕L or ⎕R in interactive mode.

∇ Z ← L F R
  L×÷R
∇

3 F 0
⎕L
⎕R

A←⎕L
B←⎕R
⎕L 3
⎕L 33
⎕L 34
⍝⍝



[...] 
  A←⎕L
VALUE ERROR
  A←⎕L
^
  B←⎕R
VALUE ERROR
  B←⎕R
^
  ⎕L 3
VALUE ERROR
  ⎕L 3
  ^
  ⎕L 33
VALUE ERROR
  ⎕L 33
  ^
  ⎕L 34
VALUE ERROR
  ⎕L 34
  ^
  ⎕L 3
VALUE ERROR
  ⎕L 3
  ^
  ⎕L 33

==
Assertion failed: size() > 1
in Function:  at1
in file:  Prefix.hh:151

C/C++ call stack:


-- Stack trace at Assert.cc:72

0x7F42CD8407FD __libc_start_main
0x55E22F714575  main
0x55E22F8F4E45   Workspace::immediate_execution(bool)
0x55E22F797001Command::process_line()
0x55E22F7970C3 Command::finish_context()
0x55E22F7A6BB8  Executable::execute_body() const
0x55E22F886FEC   StateIndicator::run()
0x55E22F7EF353Prefix::reduce_statements()
0x55E22F89D5BD Symbol::resolve(Token&, bool)
0x55E22F8A2B18  Quad_L::get_apl_value() const
0x55E22F887431   StateIndicator::get_L()
0x55E22F7EBC4D
0x55E22F7E2723 
0x55E22F733811  do_Assert(char const*, char const*, char const*, int)


SI stack:

Depth:  10
Exec:   0x55e230189b00
Safe exec:  0
Pmode:  ◊  ⎕L 33
PC: 1 (4) ⎕L
Stat:   ⎕L 33
err_code:   0x0

Depth:  9
Exec:   0x55e23019f920
Safe exec:  0
Pmode:  ◊  ⎕L 3
PC: 1 (4) ⎕L
Stat:   ⎕L 3
err_code:   0x30001
thrown at:  SystemVariable.cc:469
e_msg_1:'VALUE ERROR'
e_msg_2:'  ⎕L 3'
e_msg_3:'  ^'

Depth:  8
Exec:   0x55e2301861e0
Safe exec:  0
Pmode:  ◊  ⎕L 34
PC: 1 (4) ⎕L
Stat:   ⎕L 34
err_code:   0x30001
thrown at:  SystemVariable.cc:469
e_msg_1:'VALUE ERROR'
e_msg_2:'  ⎕L 34'
e_msg_3:'  ^'

Depth:  7
Exec:   0x55e230186130
Safe exec:  0
Pmode:  ◊  ⎕L 33
PC: 1 (4) ⎕L
Stat:   ⎕L 33
err_code:   0x30001
thrown at:  SystemVariable.cc:469
e_msg_1:'VALUE ERROR'
e_msg_2:'  ⎕L 33'
e_msg_3:'  ^'

Depth:  6
Exec:   0x55e230186ec0
Safe exec:  0
Pmode:  ◊  ⎕L 3
PC: 1 (4) ⎕L
Stat:   ⎕L 3
err_code:   0x30001
thrown at:  SystemVariable.cc:469
e_msg_1:'VALUE ERROR'
e_msg_2:'  ⎕L 3'
e_msg_3:'  ^'

Depth:  5
Exec:   0x55e230187230
Safe exec:  0
Pmode:  ◊  B←⎕R
PC: 0 (5) ⎕R
Stat:   B←⎕R
err_code:   0x30001
thrown at:  SystemVariable.cc:874
e_msg_1:'VALUE ERROR'
e_msg_2:'  B←⎕R'
e_msg_3:'^'

Depth:  4
Exec:   0x55e23018b520
Safe exec:  0
Pmode:  ◊  A←⎕L
PC: 0 (5) ⎕L
Stat:   A←⎕L
err_code:   0x30001
thrown at:  SystemVariable.cc:469
e_msg_1:'VALUE ERROR'
e_msg_2:'  A←⎕L'
e_msg_3:'^'

Depth:  3
Exec:   0x55e230186a40
Safe exec:  0
Pmode:  ◊  ⎕R
PC: 0 (3) ⎕R
Stat:   ⎕R
err_code:   0x30001
thrown at:  SystemVariable.cc:874
e_msg_1:'VALUE ERROR'
e_msg_2:'  ⎕R'
e_msg_3:'  ^'

Depth:  2
Exec:   0x55e23018ab00
Safe exec:  0
Pmode:  ◊  ⎕L
PC: 0 (3) ⎕L
Stat:   ⎕L
err_code:   0x30001
thrown at:  SystemVariable.cc:469
e_msg_1:'VALUE ERROR'
e_msg_2:'  ⎕L'
e_msg_3:'  ^'

Depth:  1
Exec:   0x55e23018a930
Safe exec:  0
Pmode:  ∇ F[1]
PC: 3 (6) 'L
Stat:   L×÷R
err_code:   0x50004
thrown at:  ScalarFunction.cc:140
e_msg_1:'DOMAIN ERROR'
e_msg_2:'F[1]  L×÷R'
e_msg_3:'^^'

Depth:  0
Exec:   0x55e23018b800
Safe exec:  0
Pmode:  ◊  3 F 0
PC: 3 (5) ENDL
Stat:   3 F 0
err_code:   0x0


==






  




Re: /⍨

2022-06-18 Thread hudson
Hi jürgen,

Still fails on repeated bad ⎕L usage (log and log2 attached).

Hudson


log
Description: Binary data


log2
Description: Binary data


Re: /⍨

2022-06-18 Thread hudson
#!

F ← {⍺×÷⍵}
3 F 0
⎕R
⎕R ← 321
→⍬

⎕L
⎕L

)off