To: J3 J3/19-138r1 From: Dan Nagle Subject: Specification and Edits for longer statements Date: 2019-February-12 Reference: 18-253r3, 18-007r1 1 Introduction The longer line and statement was approved for further work at 217. This paper attempts to craft specifications. Since there is no syntax to choose, this paper also attempts to craft edits. 2 Discussion At 217, the choice was made to allow source lines of up to a processor-dependent length, with a minimum of 10K characters. Whether this meant 10*1024 or 10^4 was left unspecified. Likewise, the overall statement length was 1M characters, but it was left unspecified whether this means 1024*1024 or 10^6. This paper uses 10^4 (ten thousand decimal) and 10^6 (one million decimal), respectively. These are human-facing numbers, so even decimal counts are preferred. Implementors are free to offer slightly larger limits. A processor must have the ability to report a line that is too long, since this is a portability concern. Continuation is left unchanged, except that the limit of 255 is removed. Different line lengths for default and non-default characters are removed; the same limits apply to any characters acceptable to the processor. 3 Specifications A source line contains at most ten thousand characters. A source statement contains at most one million characters. Processors are required to be able to report too-long lines. Continuation is unchanged, except that the limit of 255 is removed. 4 Edits to 18-007r1 { add remark to Introduction in the bullet item for Source form } [xiii] add "Limits of line lengths and statement lengths have been increased to ease requirements on automatic code generators, preprocessors, and some manual source editing tasks." { Introduction briefly describes new features } { change line length } { 6.3.2.1 Free form line length } [49:13-14p1] replace the sentence "If a line consists entirely of characters of default kind (7.4.4), it shall contain at most 132 characters." with: "A line shall contain at most ten thousand characters." { new line length rule } { change statement length } { 6.3.2.6 Free form statements } [50:30p2] replace the sentence "A statement shall not have more than 255 continuation lines." with the sentence "A statement shall not have more than one million characters." { new statement length rule } { end }