To: J3 J3/21-188 From: Brian Friesen Subject: J3 policies and procedures Date: 2021-October-18 References: 93-004r6, 16-013 1. Introduction This document describes the policies and procedures for the US Fortran committee, known formally as "INCITS PL22.3 - Programming Language Fortran," and informally as "J3." The content of this document is meant to supplement official INCITS policies listed below: - INCITS Organization, Policies and Procedures - INCITS Code of Conduct - INCITS Inclusive Terminology Policy - INCITS Inclusive Terminology Guidelines - INCITS Officers' Official Roles and Responsibilities Any content in this document which contradicts INCITS policies is superseded by those policies. It is possible that duplicates of or variations on the content of this paper already exist in the J3 paper archives; the author encourages referrals to any such documents, in order to build upon previous experience and success in defining the procedures of this committee. Some content here may appear self-evident; its purpose is to educate newer committee members who are not familiar with programming language standards processes. Other content is likely incomplete; committee members are welcome to suggest additional topics to be discussed or clarified here. 2. Scope of work J3's purposes are: 1. To represent US interests to ISO/IEC JTC 1/SC 22/WG 5 ("WG 5"); and 2. To implement the changes requested by WG 5 for the upcoming revision of the Fortran language standard. These items have the highest priority during J3 meetings. Papers and discussions regarding other topics (e.g., desired features for a future revision of the standard) should be deferred until all other work regarding the above items has completed. Discussions regarding the desirability of a particular feature which has already been requested by WG 5 for the upcoming revision are out of scope. If J3 decides for technical reasons that a feature requested by WG 5 is too complicated or difficult to implement, it may request via formal vote to WG 5 to retract the feature request from the new revision. 3. Subgroups J3 consists of several subgroups which each focus on different topics in the standard. Subgroups typically meet between plenary sessions during a meeting. Any committee member may join any subgroup. The current list of subgroups is described below: - Data: Data works on anything to do with the typing system, data and procedure declarations, procedure argument passing, anything that goes in the specification part of a procedure or module, USE, IMPORT, etc. - HPC: HPC works on anything to do with coarrays: the parallel execution model, the collective and atomic intrinsics. For historical reasons, HPC also works on C interoperability. - JOR: "JOR" stands for "Journal of Requirements" (a historical name; cf. standing document 93-004r6, which is no longer used). JOR works on most other topics, typically smaller development efforts, which are not covered by Data or HPC. These tend to include minor cleanup activities, most of the intrinsic procedures, execution constructs, anything related to I/O not specifically part of another subgroup's efforts, miscellaneous interpretation requests, etc. Individual JOR members may be assigned to the interpretations subgroup concurrently with JOR. JOR also has historically interfaced with WG 23 ("Programming Language Vulnerabilities"). - Generics: Works on generic programming facilities, mostly targeting the "Fortran 202Y" revision of the standard. - Interp: Works on interpretation requests for published versions of the standard. Membership typically includes experts in the topics covered by interpretation requests submitted to a given meeting. - Edit: Works on editorial changes to the paper, which are usually minor (e.g., grammar and spelling) and cause no technical change to the standard. This subgroup typically consists of the WG 5 Project Editor. Each subgroup has a subgroup head. Subgroup heads are responsible for organizing and planning the work of each subgroup during a given meeting. Subgroup heads typically have the responsibility to move papers for formal action by the committee during plenary, although they may delegate this activity to others. 4. Meetings J3 technical work is accomplished in two ways - meetings and letter ballots. The letter ballot process is described in the INCITS policies and procedures document mentioned above. The meeting process consists of two components - the plenary session, and subgroup sessions. Each day of a J3 meeting begins with the plenary session. All formal committee actions during a meeting are conducted during the plenary session. During the plenary session, subgroups move each paper assigned to them until all papers submitted for consideration at the meeting have been moved or have received some other formal action by the committee. A plenary session concludes after all papers scheduled for vote on that day have been addressed. Subgroup sessions may take place before or after plenary sessions. 5. Papers and voting J3 uses papers to conduct its work. Papers may propose new features, fix problems in existing features, or they may regard other topics; cf. standing document 16-013. All papers submitted to a given meeting should receive formal action from the committee. (Choosing to take no action on a paper, as described below, is considered a formal action.) One exception to this is insufficient meeting time, in which case unaddressed papers would be deferred to the next meeting. Another exception is informational papers, which contain nothing to vote on. When a paper is submitted for consideration at a J3 meeting, it is assigned to the relevant subgroup. The subgroup then considers the paper during subgroup meetings, presents the paper to the full committee during a plenary session, and proposes a formal action from the committee. Papers desired for committee consideration should be submitted to https://j3-fortran.org/doc/meeting before the first day of the meeting. The paper must be marked "Vote" on that site at least the day before the planned vote on the paper. A vote on a paper passes if it receives a majority vote. It is common for a subgroup to withdraw a moved paper before the committee votes on it, so that the subgroup may supersede the paper with an amended paper which includes changes requested by the committee during plenary discussions. Depending on the scope of changes to the amended paper, the amended paper may be scheduled for vote during the following plenary session, or deferred to a future meeting. If a subgroup desires for the committee to take no action on a paper (e.g., the paper is believed to be out of scope), the subgroup should supersede the original paper with an amended paper which describes why no action should be taken. The amended paper, proposing to take no action on the original paper, would then be moved for vote by the committee. Straw votes are informal votes intended to provide direction to a paper author and their subgroup. They are useful when a technical problem has multiple solutions and it is not clear which is best. Everyone present at the meeting may participate in straw votes. A typical straw vote structure may take the form - Option A - Option B - Option C - ... - Undecided If a paper contains straw votes, all such straw votes should be taken before the paper is moved for formal consideration by the committee.