To: J3 J3/18-131 From: Bill Long Subject: HPC Subgroup feature recommendations Date: 2018-February-14 ----------- HPC subgroup ranked our assigned features from 18-122r1 as follows. Recommended features: --------------------- Medium size features: --------------------- - Put with Notify (Paper 18-117r1) - Binary compatibility of C descriptors so that a single C library could work with multiple Fortran implementations. Have a compiler switch to recover old form. The middle part could have just a pointer to the vendor-specific stuff. Small size features: -------------------- - CFI function to return text version of a processor's CFI error code. OK. Only 11 error codes. - Any information that can help avoid OpenMP false sharing, e.g. intrinsics to inquire about cache sizes, and other hardware features at run time. Performance problem to avoid thrashing cache lines. Should be added to OpenMP? Basically an inquire function. - processor dependent information on sizes of vector instruction, that helps arrange data in an optimal fashion for SIMD processing. Basically an inquiry function. - PROTECTED structure components. =========================== Undecided features: ------------------- - Providing methods for easily accepting NUL-terminated strings in calls to Fortran from C. Interop with C strings. Involves complications. - Allow more than one procedure interface to share the same binding name (currently disallowed by 19.2p1) Are there any use cases not already covered by type(*),dimension(*) alternative? - Allow arrays and allocatables with coarray components 17-200r1. Imlementation costs and editing effort substantial. - Bit strings. There are two options. Length is LEN or a KIND parameter. Debated before, choose KIND. Implementation is big. But preferred over unsigned integer for the use cases in common. =========================== Not recommended features: ------------------------- - An INTENT keyword that means the same as not specifying INTENT. A solution in search of a problem. Only for a coding standard that requires INTENT. But then better to specify "correct" intents. - Reinhold's proposal for requesting different memory types for different data objects. 18-118. Intel's version of directives is going onto OpenMP. Better to have hint about usage and let compiler decide. - Remove requirement that LOGICAL requires one numeric storage unit. Serious compatibility issues. Maybe add the LOG8, LOG16, LOG32, and LOG64 constants in ISO_FORTRAN_ENV. Moot if we do BITS. Low priority. - (2)PROTECTED types. OK for edits for new term only. This version has an attribute. The name PROTECTED has issues. - PROTECTED pointers. 119, 2.5.3. Cannot have pointer in var def context. Too easy to circumvent with another pointer associated with the same target.