Oops, the 13!:5 example was bad. Sorry about that.
-- Raul On Wed, Jan 12, 2022 at 1:31 PM Raul Miller <[email protected]> wrote: > > I can't give a good answer for question of where this detail needs to > be documented, because I do not adequately understand why this detail > exists. > > Taking a step back, for perspective: > > catch catches errors even if the debug flag is set. But, it currently > does not trap a stop. Therefore, in the current implementation, a stop > must not be an error. > > Proof: > ex=: {{1+y}} > exa=: {{try.ex y catch.3 end.}} > 13!:0]1 > 13!:3'ex 0' > exa 9 > 10 > > If stops were errors, then exa would have returned 3 instead of 10. > > catchd. catches errors only if debugging is disabled. This would mean > that it ignores errors when debugging is enabled. I cannot imagine a > use for this feature in the current implementation (or, really, in any > circumstances -- by that's presumably a limitation of my current > imagination). > > (catcht. catches throws. It's not clear from the documentation whether > a throw is an error, but experimentation suggests that it is.) > > So it looks like try. temporarily disables suspension unless a catchd. > block is present. > > Assuming that the current behavior is the intended behavior, this > suggests that the mention of "the setting of the debug flag 13!:0" and > this behavior belongs on the try. keyword, and not on the catch. > keyword. Additionally, the catchd. keyword should mention that its > presence allows suspension in the try block. > > --- > > Put different, there's two questions from my perspective: > > (A) what behavior should be implemented, and > (B) how should that behavior be documented. > > Consider this example: > > ex=: {{13!:}} > exa=: {{try.ex y catch.3 catchd.4 catcht.5 end.}} > 13!:0]1 > 13!:3'ex 0' > (;$)exa 10 > |stop: ex > | 13!: > |ex[0] > 13!:5'' > ┌┬───┐ > ││0 0│ > └┴───┘ > > Here, execution was "resumed" but none of the catch blocks were executed. > > I find this behavior puzzling, and I do not feel certain that the > implementation is correct. > > Thanks, > > -- > Raul > > > On Wed, Jan 12, 2022 at 12:03 PM Henry Rich <[email protected]> wrote: > > > > I don't know how you document a detail like this so that users will > > actually see it. In try. and ( :: ) ? > > > > Henry Rich > > > > On 1/12/2022 9:35 AM, Raul Miller wrote: > > > If try. temporarily turns off debugging, shouldn't that be documented? > > > > > > Thanks, > > > > > > > > > -- > > This email has been checked for viruses by AVG. > > https://www.avg.com > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
