| Deutsch English Français Italiano |
|
<vvlke3$2neud$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Ruvim <ruvim.pinka@gmail.com> Newsgroups: comp.lang.forth Subject: Re: QUIT and ABORT Date: Fri, 9 May 2025 23:18:27 +0400 Organization: A noiseless patient Spider Lines: 88 Message-ID: <vvlke3$2neud$1@dont-email.me> 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> <5069a2ba51509e4f92ffa680982a4e353ec45ab8@i2pn2.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Fri, 09 May 2025 21:18:28 +0200 (CEST) Injection-Info: dont-email.me; posting-host="983a1cec72bc46a8db52b3bd128f7a43"; logging-data="2866125"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/nc6qOhu18CXGX8KhFW9+M" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:DLuttapYMMAPw4tdEO+IXVkQdxk= In-Reply-To: <5069a2ba51509e4f92ffa680982a4e353ec45ab8@i2pn2.org> Content-Language: en-US Bytes: 5156 On 2025-05-09 12:20, dxf wrote: > 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. The table only states that the code -56 is *reserved* for "QUIT". But -56 is not specified anywhere else, so this lonely reservation does not entail any formal consequences. > Besides BYE is an optional tool > and I've no idea what use is a catchable EXIT . No use. Ditto for catchable `BYE` (if any) or any other immediate termination. >> `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 I wonder what you meant by "ANS made EXCEPTION EXT a one-way street". > 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? I think, `QUIT` is in the table by a mistake. Regarding `ABORT` and `ABORT"` (and many other in Forth-2012) — they should not go into this table since this table formally reserves throw codes for *ambiguous conditions* only. > 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. > Perhaps you could write the rationale? -- Ruvim