To: J3 J3/24-167 From: John Reid Subject: Report from UK panel on the work items Date: 2024-October-11 References: WG5-N1594, WG5-N2234 1. Introduction ^^^^^^^^^^^^^^^ The UK Fortran panel meet on 19 September on Teams. Almost all the discussion was on the list of potential new features in WG5-N2234. The proposal from Japan on generic subprograms, JP01, was strongly supported and concern was expressed about the size of the J3 feature for generic programming (US17). We noted that the items varied widely in the amount of committee work needed for incorporation in the Standard and vendor work needed for eventual implementation. I reminded the panel that in the past we have allocated a level to each item to show its size. We decided to employ the scale in N1594 (2004), see Section 2. Our suggestions for levels is shown in Section 3. Note that the levels refer to the total committee and vendor work; in the case of templated generics, much committee work has already been done. Our conclusion was that including all the items would need too much committee and vendor work but we did not have any suggestions for deletion. We do not support deleting any item at level 1, 2, or 3 because that would save little committee or vendor work. 2. The scale in N1594 (2004) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Minor editorial (less than 10 lines altered). 2. Significant editorial (up to a page altered) with no technical change. 3. Very minor technical change. An example is adding the optional argument KIND to IACHAR (see 1.12 in N1509). Also major editorial (up to a chapter altered) with no technical change. 4. Minor technical change. An example is changing type-bound generics to be sets of specific named type-bound procedures (see TC4 in N1506). 5. Technical change likely to need more than two J3 meetings to develop. An example is reallocation of allocatable arrays (see TC11 in N1506). 6. Technical change likely to need more than a year to develop. The modules and allocatable TRs are examples. 7. Technical change likely to need more than 2 years to develop. The IEEE TR is an example. 8. Technical change likely to need more than 3 years to develop. Interfacing with C and the OO features are examples. Notes. 1. The level of a technical change is likely to be affected by whether necessary edits are scattered over the document of mostly confined to one place. 2. The level of a technical change should be influenced by how difficult it is to implement. 3. The N2234 list of items with levels ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ACCEPTED - JP01 (level 5). Include generic subprograms described in N2217. Ref. N2217 "JP-01 Japan NB Request for F202Y - Generic Subprograms" 24-148r1 "Revised formal specifications for generic subprogram" - US01 (level 2). Make default implicit typing obsolete. Ref. 23-177 "F202Y Obsolete default implicit typing" - US02 (level 2). Make the D format descriptor obsolete. Ref. 12-178 "F202Y Make the D format edit descriptor obsolescent" - US03 (level 1). Add note that the real model is not IEEE 754. Ref. 23-180 "F202Y Note that the real model is not IEEE 754" - US04 (level 7). Add asynchronous tasks. Ref: 23-174 "Asynchronous Tasks in Fortran" - US05 (level 3). Add C interoperability for new interchange floating point types in C. Ref. 23-176 "C interoperability for new interchange floating- point types" - US06 (level 3). Provide a mechanism to specify global binding name for non C-interoperable. Ref. 23-201 "F202Y Global binding name for non C-interoperable" - US07 (level 4). Improve rank-independent functionality. Ref. 23-184r1 for a list of proposals under consideration. - US08 (level 4). Improve polymorphic PURE function results. Ref. 23-186 "Polymorphic outputs from pure" - US09 (level 4). Allow I/O on enumeration type values. Ref. 23-151r1 "F202Y Allow I/O of enumeration type names" - US10 (level 6). Add a Fortran-friendly preprocessor. Ref. 23-192r1 "F202Y Define a standard Fortran preprocessor" - US11 (level 3). Provide intrinsics for source location. Ref. 23-193r1 "F202Y Intrinsics for source location". - US12 (level 3). Add maximum rank/corank constants to ISO_FORTRAN_ENV. Ref. 23-194 "F202Y Add maximum rank/corank constants to ISO_FORTRAN_ENV" - US13 (level 3). Add namespace-like access to module entities. Ref. 23-196 "Access to module entities" - US14 (level 4). Add scoped access to enumeration values. Ref. 23-197 "Scoped access to enumeration enumerators" - US15 (level 4). Add support for describing the target of a pointer as immutable. Ref. 23-198 "Readonly pointers" - US16 (level 3). Define default KIND values to use throughout a program unit. Ref. 23-199 "Default kinds" - US17 (level 8). Add Generic programming templates, including strong requirements. Investigate other mechanisms for simplifying the use of templates. Ref: 23-155r1 "Formal syntax for generics" 23-182r1 "Expanded Requirements" 23-187 "Shorthands for Simple Templates" 23-189 "F202Y allow polymorphic deferred type" 23-190 "Properties for requirements" 24-125r5 "Formal syntax (1 of 3): deferred arguments" 24-126r4 "Formal syntax (2 of 3): templates and instantiation" 24-127r4 "Formal syntax (3 of 3): REQUIREMENT and REQUIRES" 24-130 "Formal specs for TEMPLATE" 24-131 "Generics formal specs: semantics of instantiating templates" 24-133 "Formal specs for REQUIREMENT and REQUIRES" - US18 (level 4). Allow Polymorphism in Coarrays Ref: 23-217 "Usable Polymorphism in Coarrays" - US19 (level 4). Add more math functions from IEEE-754 Ref: 23-234r2 "IEEE-754 Recommended Math Functions" [It was noted that the only rounding described in 754 is "correct rounding" according to the current or specified rounding mode, and that therefore conformance with 754 would require those functions to be correctly rounded, and for every rounding mode. This would be an immense burden - some of them have publicly available correctly-rounded implementations for single and double precision, but not all, and not quad precision.] - US23/DIN4 (level 5) Add generic processing of assumed-rank object Ref: 24-136r1 "DIN-4: Generic processing of assumed-rank objects" - US24 (level 4) Add rank-independent looping Ref: See 24-143 "Rank-independent looping" - US25 (level 5) Add ability to interpret complex as real and vice versa Ref: 24-129 "allow complex pointer to reals and vice versa" - DIN3a (level 5) Add support for atomic operations in local memory Ref: N2230 "DIN Suggestions for F202Y" (other features requested in DIN3 were not accepted.) CONDITIONALLY ACCEPTED The following features received mixed support at the 2024 WG5 meeting. Further discussion by INCITS/Fortran in October 2024 will inform a WG5 letter ballot in November 2024 as to whether to keep any or all of these features on the work item list. - US20 (level 4) Add SCAN and CO_SCAN Ref: 23-235r2 "SCAN and CO_SCAN" - US22/DIN2 (level 4) Add unions in interoperable derived types Ref: 24-117 Unions in interoperable derived types - DIN1 (level 4) Add execution of collective procedures on a specified team Ref: N2230 "DIN Suggestions for F202Y"