| Deutsch English Français Italiano |
|
<5069a2ba51509e4f92ffa680982a4e353ec45ab8@i2pn2.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: dxf <dxforth@gmail.com> Newsgroups: comp.lang.forth Subject: Re: QUIT and ABORT Date: Fri, 9 May 2025 18:20:52 +1000 Organization: i2pn2 (i2pn.org) Message-ID: <5069a2ba51509e4f92ffa680982a4e353ec45ab8@i2pn2.org> References: <87bjtn2hct.fsf@gmail.com> <nnd$595f502c$48101358@27425914746d2863> <d9149a9d12db559e2720156b315fcfdcdd90e3fe@i2pn2.org> <2025May3.072517@mips.complang.tuwien.ac.at> <6973d7bc1d0376ab234a39a3dda82287b7b13450@i2pn2.org> <2025May3.180226@mips.complang.tuwien.ac.at> <b78a04cbc0fc7c0a6c041e46ea83dc7a6206e5d6@i2pn2.org> <2025May4.153331@mips.complang.tuwien.ac.at> <6a9a2b6e873c1b72bdec2c72749ef0aac6f33f42@i2pn2.org> <vvashh$ra84$1@dont-email.me> <60caba147f217f0c677ddc6bf8a7492a3c69688b@i2pn2.org> <2025May6.091324@mips.complang.tuwien.ac.at> <f3783e59aec9762f3871cfb39f36c514dc05f214@i2pn2.org> <vvg6l5$12kee$1@dont-email.me> <35ba145b7baa62154479eac080a2f6995b24b8e8@i2pn2.org> <vvi9b5$1ogea$1@dont-email.me> <0c4bc1ac6f9595ebc81448f21aade5d54639ada9@i2pn2.org> <vvk6s9$2jjoh$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Fri, 9 May 2025 08:20:56 -0000 (UTC) Injection-Info: i2pn2.org; logging-data="3772430"; mail-complaints-to="usenet@i2pn2.org"; posting-account="XPw7UV90Iy7EOhY4YuUXhpdoEf5Vz7K+BsxA/Cx8bVc"; User-Agent: Mozilla Thunderbird Content-Language: en-GB X-Spam-Checker-Version: SpamAssassin 4.0.0 In-Reply-To: <vvk6s9$2jjoh$1@dont-email.me> Bytes: 4160 Lines: 47 On 9/05/2025 4:20 pm, Ruvim wrote: > On 2025-05-09 04:54, dxf wrote: >> On 8/05/2025 10:50 pm, Ruvim wrote: >>> On 2025-05-08 06:52, dxf wrote: >>>> On 8/05/2025 3:52 am, Ruvim wrote: >>>>> ... >>>>> I use `quit` only for testing and debugging. And I expect to get into the Forth text interpreter (Forth shell) exactly in the current program state (as far as possible). >>>>> >>>>> If `quit` simply calls `-56 throw`, the program state will probably change (due to actions after `catch` in the program, including restoring the data stack depth in `throw`) when you get into the Forth shell. Also, there is a chance that you will not get into the Forth shell at all if the program does not re-throw the error in some places. >>>>> >>>>> So I would not recommend the suggested deviation in the `quit` behavior even for new implementers, since this brakes the well-known expectation from `quit`. A better way is to introduce another word with desired behavior deviation. >>>> >>>> ANS never gave a rationale for ABORT ABORT" QUIT - only >>>> options that we're now exploring. >>>> >>>> For the reasons you've stated I'm reluctant to define: >>>> >>>> : QUIT -56 THROW ; >>>> >>>> But are there reasons an application might were THROW able >>>> to handle it? >>> >>> I don't see such a reason. The application can simply do >>> `abort` or `-56 throw` (and no special cases are needed). >> >> Yes but those would be workarounds. It's making the argument >> QUIT can't or shouldn't be caught whereas I'm talking about >> entitlement. > > `BYE` and `EXIT` cannot be caught too. QUIT is in the table; those are not. Besides BYE is an optional tool and I've no idea what use is a catchable EXIT . > `QUIT` can be considered by the Forth program as a kind of `BYE` that immediately returns control to the Forth shell (when `BYE` returns control to the host OS). > > >> Speaking of entitlement, ANS made EXCEPTION EXT a one-way street. >> There's no rolling back from the changes. > > If you mean that EXCEPTION EXT is not actually optional in itself, but must be provided if EXCEPTION is provided — yes, I agree. Not what I said but if you're going to enforce a catchable ABORT and ABORT" then why omit QUIT - and if you do - why is it in table? We can keep going round in circles but ISTM what's needed is a rationale. Because I'm not seeing one in ANS. Folks have implemented what it said but can't explain it. Hence the Bible allusion.