You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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).
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:
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:
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.
Submitted by: Ladislav
Brian formulated it nicely.
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).
Submitted by: Carl
This needs serious discussion. Posting to blog.
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
The text was updated successfully, but these errors were encountered: