Thanks to all that answered so quickly. In particular: @Brian: yes, I was aware that a smaller case would work @R.E.: your suggestion to skip the boxing seems to avoid the issue altogether (see working code below) @Michael: congrats for reading my code so well - in fact, I messed it up while producing a slimmed down version to share; w.r.t. boxing, see my answer to R.E.
Now the fixed code reads perm =: i.@! A. i. base10 =: 10&base PanDigS =: (perm 10) from i.10 PanDigT =: 3 base10\"1 PanDigS It does not break anymore (logical correctness is another story). The fact that the new code completes without errors suggests that the issue lies with the boxing operation. It could be either directly or indirectly, e.g. by stressing the operating system memory management code (paging?). Should someone investigate, I add that my machine is an old HP 280 with a dual core Celeron CPU [email protected] and 8GB of RAM. Best regards, Francesco ---------- Forwarded message --------- From: Francesco Pedulla' <[email protected]> Date: Sun, Feb 7, 2021 at 12:32 PM Subject: Bug in J807/J902 To: <[email protected]> The following piece of code does not work on Ubuntu 20.04. load 'primitives' perm =: i.@! A. i. PanDigS =: (perm 10) from (1 + i.10) PanDigT =: 10 base"1 each 3 box\"1 PanDigS The effect is variable: crash of the J interpreter, freeze of the Qt interface or even of the whole system. It shows up both on J807 and J902. The dataset is quite large: 7!:5 <'PanDigS' 5.36871e8 and the process crashes (or the system freezes) after several seconds. Hence, I suspect an issue with memory management. Any idea or suggestion on how to bypass the problem? Thanks, Francesco ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
