Skip to Main Content
IBM Z Software


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).


Shape the future of IBM!

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:

Search existing ideas

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 your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

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.

Status Delivered
Workspace PL/I Compilers
Created by Guest
Created on Dec 10, 2015

Program name in PL/I Compiler Listing Heading

The z/OS Enterprise PL/I v 4.4 compiler takes a substring of the first line of the program that is being compiled and uses that in the listing heading:

15655-W67 IBM(R) Enterprise PL/I for z/OS /* DATA SET TEST AT LEVEL 048 2015.12.10 14:15:22 Page 1

In the example shown above, the text "/* DATA SET TEST AT LEVEL 048" is a substring of the first line of the comment that Panvalet inserts when you extract the member from Panvalet and pass it into the compiler. We would like to remove this comment line before we pass it to the compiler because it alters the line count in the listing and if there is an ABEND it gives us the wrong line number in the traceback. We want the line numbers to be correct, but if we remove the comment, then the program name, "TEST", in this example, is not shown in the listing heading, instead we get the actual first line of the program, which is usually a comment. Having the program name in the listing heading is desirable, especially when we bulk compile code because we compile all programs in one job by calling the compiler from our home grown batch compiler program, not using the supplied PROC. Without the program name in the listing heading, we have no idea which program the errors/warnings/information messages apply to, since we also suppress the source and everything else that is not necessary, otherwise the sysout would be millions of lines long.

We understand that other users may like the current functionality, so we would like to have an option to have the compiler take the program name from the first non-comment PROCEDURE statement found in the code, instead of the first line of the code, noting that the first procedure statement may or may not be the first line of the program, as most of our programs begin with comments first and while it would be possible to move the PROCEDURE statement to the first line of the program as code is modified, some of our programs never change and we don't have a budget to go change all of them just for this.

/* ------------------------------------------- */
/* PROGRAM NAME : TEST */
/* AUTHOR : YOUR NAME HERE */
/* DATE CREATED : 04-26-2011 */
/* PURPOSE : TEST MODULE */
TEST: PROCEDURE OPTIONS(MAIN);

We noticed that the COBOL compiler (390, we don't have Enterprise yet so we can't check it) appears to take the program name for the page header from the PROGRAM-ID value, not the first line of code. In addition, the VS FORTRAN V2.6 compiler appears to set the program name from the PROGRAM, FUNCTION, or SUBROUTINE statements, and finally the Assembler appears to get it from the CSECT.

We find these behaviors more desirable than using the first line of the program that the PL/I compiler uses. By giving us this option, it will align the PL/I compiler behavior with the COBOL and FORTRAN compilers and the Assembler.

We also noticed that the C compiler uses the dataset name and member if a PDS, or the temporary dataset name if the input dataset has a PASSED disposition, in the page heading. We have not researched the C compiler options to see if there is a way to use the program name from the source code yet because we don't yet use the bulk compile process on C code, but if not, we would like an option in the C compiler to take the program name from the CSECT as well.

Idea priority Low
  • Guest
    Reply
    |
    Jun 29, 2016

    Delivered as part of version 5.1

  • Guest
    Reply
    |
    Jan 27, 2016

    this could be useful

  • Guest
    Reply
    |
    Jan 4, 2016

    I noticed that other compilers include the PDS name, or the name of a temporary passed dataset which is what we use for bulk compiles since we reuse the temporary dataset for every program being compiled. The temporary dataset name is meaningless and undesirable. Your suggestion to use A.B(C) if it fits and just C if not is fine except if a passed dataset is used, then take the program name from the source code (CSECT) and omit the temporary dataset name.

  • Guest
    Reply
    |
    Dec 12, 2015

    there is a limited amount of space for the text that goes into the header. Under the new option we could put into the header

    for source in A.B(C), just the name C
    or
    for source in A.B(C), the whole name A.B(C) if it fits and if not, then just C

    and similarly on USS or other platforms

    for source in /a/b/c.pli, just the c (or c.pli)
    or
    for source in /a/b/c.pli, the whole name if it fits and if not, then just c.pli

    any preferences?