Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove the QUIT /now option #1743

Closed
Siskin-Bot opened this issue Feb 15, 2020 · 0 comments
Closed

Remove the QUIT /now option #1743

Siskin-Bot opened this issue Feb 15, 2020 · 0 comments
Labels
Oldes.resolved Bugs/wishes with Oldes' fixes/features Ren.resolved Type.wish

Comments

@Siskin-Bot
Copy link
Collaborator

Submitted by: BrianH

We added CATCH/quit to catch the QUIT function in inner scripts (not the top-level script). But then for some reason we decided to make a way to break through that: the /now option. But we still need to catch that, for the same reason. This is an arms race, and needs to stop.

We don't need to break through CATCH/quit with QUIT. CATCH/quit needs to catch QUIT, period.

This was originally suggested by Ladislav, and is necessary for the purposes of testing.

See also #1742 for the HALT equivalent of CATCH/quit.


Imported from: CureCode [ Version: alpha 110 Type: Wish Platform: All Category: Native Reproduce: Always Fixed-in:none ]
Imported from: metaeducation#1743

Comments:

Rebolbot commented on Nov 4, 2010:

Submitted by: BrianH

If we are having trouble with CATCH/quit being called when it shouldn't be (#1734), it should be fixed. If we are having trouble using CATCH/quit in a TRY block (#851), it should be fixed. If we are having trouble using THROW/name as a replacement for QUIT/now to break through CATCH/quit (#1518, #1520, #1744), it should be fixed. But we don't need QUIT to break through CATCH/quit.


Rebolbot commented on Nov 4, 2010:

Submitted by: Ladislav

Brian formulated it nicely.


Rebolbot commented on Nov 4, 2010:

Submitted by: abolka

Agreed.

In the comments to #1734 Carl mentioned the possible existence of documented history for this additional option, and I would certainly be interested in that.

Without that documentation, the only use I can currently imagine for QUIT/now is to signal the desire of a more "urgent" quit. However, for this to work consistently, wrapper and wrappee would have to agree on this desired meaning and therefore cooperate. But for cooperating scripts, an agreed-upon throw would suffice as well (as Brian mentioned).


Rebolbot commented on Nov 5, 2010:

Submitted by: Carl

This needs serious discussion. Posting to blog.


Rebolbot mentioned this issue on Mar 23, 2018:
CATCH without /name catches THROW/name


Rebolbot added the Type.wish on Jan 12, 2016


Hostilefork added Type.wish and Ren.resolved on Mar 23, 2018


Hostilefork commented on Mar 23, 2018:

There is no /NOW refinement on QUIT in Ren-C. All QUITs are presumed to be catchable.

Shixin needed a reliable, non-catchable, forced way to exit the interpreter. Thus he added EXIT-REBOL to do this. It calls C's exit() and forces interpreter shutdown.

Since definitional returns reshaped the landscape for how functions were exited, and PROCEDURE picked LEAVE over EXIT as its definitional form of returning...the future of EXIT may lead it to act as EXIT-REBOL does. Currently it is just deprecated from its old behavior:

metaeducation/ren-c@0a8b0c6


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Oldes.resolved Bugs/wishes with Oldes' fixes/features Ren.resolved Type.wish
Projects
None yet
Development

No branches or pull requests

2 participants