• Reduced Translation Limit in C2x N2912 Working Draft

    From arnab chatterjee@arnabchatterjeeofficial@gmail.com to comp.std.c on Sun Jul 3 03:30:06 2022
    From Newsgroup: comp.std.c

    Hello all,
    In section 5.4.2.1 (Translation limits) of the latest C2x working draft (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf) it says that the minimum upper limit on the number of bytes in an object is only 32767 (for hosted environments). However, since C89 this limit has always been 65535 (even for previous working drafts of C2x).
    Any reason/thoughts behind this silent change (or could this just be a typo in the N2912 draft)?
    Regards,
    cHaR.
    --- Synchronet 3.19c-Linux NewsLink 1.113
  • From Keith Thompson@Keith.S.Thompson+u@gmail.com to comp.std.c on Sun Jul 3 12:38:57 2022
    From Newsgroup: comp.std.c

    arnab chatterjee <arnabchatterjeeofficial@gmail.com> writes:
    In section 5.4.2.1 (Translation limits) of the latest C2x working
    draft (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf) it
    says that the minimum upper limit on the number of bytes in an object
    is only 32767 (for hosted environments). However, since C89 this limit
    has always been 65535 (even for previous working drafts of C2x).

    Any reason/thoughts behind this silent change (or could this just be a
    typo in the N2912 draft)?

    Correction: The limit in C90 was 32767 bytes, changed to 65535 in C99.

    It appears to be a deliberate change.

    The N2731 draft (2021-10-18) kept the limit of 65535 bytes. N2912
    (2022-07-08) changed it to 32767.

    This change appears to be in response to "N2808: allow 16-bit ptrdiff_t
    again", <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2808.htm>.
    --
    Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
    Working, but not speaking, for Philips
    void Void(void) { Void(); } /* The recursive call of the void */
    --- Synchronet 3.19c-Linux NewsLink 1.113
  • From arnab chatterjee@arnabchatterjeeofficial@gmail.com to comp.std.c on Sun Jul 3 17:00:14 2022
    From Newsgroup: comp.std.c

    On Monday, July 4, 2022 at 1:09:04 AM UTC+5:30, Keith Thompson wrote:
    arnab chatterjee <arnabchatte...@gmail.com> writes:
    In section 5.4.2.1 (Translation limits) of the latest C2x working
    draft (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf) it
    says that the minimum upper limit on the number of bytes in an object
    is only 32767 (for hosted environments). However, since C89 this limit
    has always been 65535 (even for previous working drafts of C2x).

    Any reason/thoughts behind this silent change (or could this just be a typo in the N2912 draft)?

    Correction: The limit in C90 was 32767 bytes, changed to 65535 in C99.

    It appears to be a deliberate change.

    The N2731 draft (2021-10-18) kept the limit of 65535 bytes. N2912 (2022-07-08) changed it to 32767.

    This change appears to be in response to "N2808: allow 16-bit ptrdiff_t again", <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2808.htm>.

    --
    Keith Thompson (The_Other_Keith) Keith.S.T...@gmail.com
    Working, but not speaking, for Philips
    void Void(void) { Void(); } /* The recursive call of the void */

    Thanks for the clarification.
    --- Synchronet 3.19c-Linux NewsLink 1.113