Hi Brian, On 3/10/23 07:40, Brian Inglis wrote: > On Fri, 10 Mar 2023 03:22:12 +0100, Alejandro Colomar wrote: >> On 3/10/23 02:51, Matt Jolly wrote: >>> I hope this email finds you well. I am writing to raise an issue that has >>> been causing inconvenience for me (and potentially others). The recent >>> removal of C89 information from man pages (72b349dd8c209d7375d4d4f76e2315943d654ee9) >>> has put me in a difficult situation. >> As I continue to work on code that adheres to the C89 style, such as cURL, >>> I am unable to quickly determine if a particular function can be used or if >>> it was introduced in a later standard like C 99. >> This slows down my workflow and hampers my productivity. >>> Therefore, I kindly request that we revert the changes made in the "Many >>> pages: Remove references to C89" patch. >> Furthermore, I urge everyone to recognize the importance of this >>> information and ensure it is not removed from man pages in the future. >> The main problem was that the existing info about C89 was not consistent. >> Some pages declared APIs being standard since C89, while others didn't. >> Incorrect info isn't much better than no info. >> I'm curious about cURL's real need for C89. I see that cURL uses GNU >> extensions (-std=gnu89), which actually pulls most of C99[1] (I think >> it pulls the entire C library, and most of the core language). >> Virtually all (even MS, which has always been the last in this) >> systems support C99; why would you consciously avoid it? Is there >> any system that doesn't yet support it? Which are the C libraries >> that you need to support that don't provide C99 functions by default >> (or at all)? >> I'd like to really understand the need for C89 in 2023. > A quick browse down: > > https://curl.se/download.html > > shows a number of legacy platforms and versions available: > > SCO UnixWare 7.10.3 > Linux MIPSel 7.10.7 > RISC OS 7.11.0 > Linux Slackware S390 7.12.2 > BeOS 7.12.3 > AmigaOS m68k 7.14.0 > SGI IRIX 6.5 7.15.1 > Digital Tru64 UNIX 4.0D 7.15.1 > SCO Open Server 5 7.15.1 > Linux Maemo 3.2 7.15.5 > Linux Slackware PPC 7.16.2 Slackintosh > Linux OpenWRT 8.09.1 MIPSel 7.17.1 > Linux Unslung 7.17.1 > MiNT 7.20.1 > QNX 6.5 7.21.7 > Linux Ångström PPC 7.24.0 > Plan9 7.28.1 9front > Linux Tizen 2.3 ARM 7.28.1 > OS/2 7.36.0 It would be interesting to know which compiler and libc is being used for each of those. > > which may need e.g. third party patches to remain secure. > Not to mention the legacy systems on those platforms. > Perhaps the US FAA or certain US regional airlines still use these? ;^> > Even DOS DJGPP supports GCC 9.3 with -std=c2x! Indeed. Port your compiler (and libc) not your program ;) C99 has been supported by GCC since basically forever. Most of it seems to be supported since gcc-3.0 (year 2001), according to <https://gcc.gnu.org/c99status.html>. Anyway, in the manual pages, the relevant part is libc. glibc supports C99 since glibc-2.2 (year 2000), according to <https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gcc/Standard-Libraries.html>. I would like to see a list of actual systems where there's no support for C99 functions at all. Cheers, Alex P.S.: Brian, how's that thing about digit separators going on? I hope I didn't discourage you by being picky in the commit separation :-) I'm really interested in those patches. -- <http://www.alejandro-colomar.es/> GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature