This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).
We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,
Post an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.
IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.
ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.
This Idea has been delivered in the July 2022 6.3 PTF and in the 6.4 GA compiler.
This RFE has been accepted and will be updated once put into plan.
This RFE is being investigated further.
@Denis_FALLAI: Perhaps, but you need to open a separate RFE for this.
Need also evolution for "EXIT PARAGRAPH" and "EXIT SECTION" to exit to the end of any PARAGRAPH / SECTION and not only current PARAGRAPH/SECTION :
--> EXIT PARAGRAPH [paragraph-name]
--> EXIT SECTION [section-name]
This will avoid "PERFORM label-begin THRU label-end" and "GO TO label-end" to exit at end of "label" in structured programs by levels of PARAGRAPH/SECTION from an deeper level than current level.
This feature is part of the current "working draft" for the next ISO COBOL standard. This working draft (#7) can be downloaded at https://isotc.iso.org/livelink/livelink?func=ll&objId=20493019&objAction=Open.
Below are some quotes from the standard related to this RFE. Note, the PERFORM statement is described in section 14.9.27 in ISO/IEC 1989:2014, but 14.9.28 in ISO/IEC 1989:202x (working draft 7).
14.9.28.1 General format
where until-phrase is
[ WITH TEST { BEFORE | AFTER } ] UNTIL { condition-1 | EXIT }
14.9.28.2 Syntax Rules
9) The until EXIT phrase shall not be specified in a PERFORM statement with or under a PERFORM statement with the VARYING phrase or either the TEST BEFORE or TEST AFTER phrase
14.9.28.3 General rules
8) If until-phrase with condition-1 is specified, the specified set of statements is performed until the condition specified by the UNTIL phrase is true. When the condition is true, control is transferred to the end of the PERFORM statement. If the condition is true when the PERFORM statement is entered, and the TEST BEFORE phrase is specified or implied, no transfer to the specified set of statements takes place, and control is passed to the end of the PERFORM statement. If the TEST AFTER phrase is specified, the PERFORM statement functions as if the TEST BEFORE phrase were specified except that the condition is tested after the specified set of statements has been executed. Item identification associated with the operands specified in condition-1 is done each time the condition is tested.
9) If the until-phrase with the EXIT reserved word is specified, execution proceeds exactly as if the same PERFORM statement were coded but with condition-1 specified except that condition-1 never evaluates as true.
NOTE When Until EXIT is specified, it is the programmer's responsibility to ensure that an “escape” from the PERFORM loop will be reached. For an inline PERFORM, this can be done by an EXIT PERFORM (but not EXIT PERFORM CYCLE) statement. For an out-of-line PERFORM this can be done by a GOBACK or STOP statement. The programmer must take care that the escape statement that they use does actually escape the PERFORM loop. Several statements might appear to do so, but don't actually escape the loop. For example, an EXIT PARAGRAPH (from a performed paragraph) or an EXIT SECTION (from a performed section) do not escape a PERFORM with the UNTIL EXIT phrase.