J3/13-319r1 To: J3 From: Dan Nagle & Malcolm Cohen Subject: UK-10.2e Obsolescenting specific intrinsic names Date: 2013 October 14 Reference: N1975, N1982 1. Specification The specific names of the intrinsic functions are made obsolescent. 2. Syntax No change, obsolescence only. 3. Edits to 10-007r1 [intro] Specific names for intrinsic functions are now deemed obsolescent. [88:28] 5.2.1 Type declaration statements/Syntax, p3, obs first 2 sentences "A name ... is permitted.". [88:30] "is not sufficient, by itself, to remove the generic properties from that function" ->"has no effect". {I cannot see any effect here. There is no requirement anywhere that the type specified for a generic intrinsic is one of the types the generic can return. The "not sufficient" statement is too feeble to be informative.} [98:4] 5.3.11 INTRINSIC attribute, p1, obs "a specific name (13.6),". [98:5-99:2] 5.3.11p2 obs entire para "If ... argument.". [99:5] "specific intrinsic procedures"->"generic intrinsic procedure". {This is not talking about specific names, but the imaginary specific procedures in the generic intrinsic, and these don't exist except in the fevered imaginations of the implementors. The point is that the generic intrinsic itself is either a function or subroutine.} [99:6-7] Delete ", and the characteristics ... 12.4.3.4.5.". {This is utter nonsense, directly contradicted by 12.4.3.4p5 which says "If a generic invocation applies to both a specific procedure from an interface and an accessible intrinsic procedure, it is the specific procedure from the interface that is referenced." so how can this ever apply if they are required to have unambiguous interfaces? Delete with extreme prejudice. Alternatively, go through the interpretation mechanism to resolve.} [158:33-159:2] 7.2.2.2, C729, in the text produced by 13-008r1, obs "a specific intrinsic ... bullet (.),". {Updated to account for 13-008r1.} [287:30-31] 12.4.3.6 Procedure declaration statement, C1220, obs "or a specific intrinsic ... with a bullet(.)". [290:19-20] 12.5.1 Syntax of a procedure reference, C1235, obs "a specific intrinsic ... with a bullet(.),". [298:16-17] 12.5.2.9 Actual ... dummy procedure entities, p4, obs "or a specific intrinsic ... with a bullet(.),". [303:14-15] 12.5.5.1 Resolving ... generic, p3, item 3, obs entire item "if ... specific intrinsic procedure;". [315:20-21] 13.1 Classes of intrinsic procedures, p5, obs "Specific names of ... listed in 13.6.". [315:22-24] 13.1p6, obs entirely "If ... actual argument (12.52.9).". [316:1] 13.2.1 General rules, p3, obs "The dummy arguments ... have INTENT(IN).". [323:14-324:1-] obs entire subclause 13.6 bar the heading. [465:26+] B.2 Obsolescent features, append new subclause "B2.10 Specific Names of Intrinsic Procedures The specific names are often obscure and hinder portability. They have been redundant since Fortran 90. Use generic names for intrinsic procedures.". ===END===