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

Reply via email to