Thread (1 message) 1 message, 1 author, 2019-11-25

Re: [PATCH 1/1] git-compat-util.h: drop the `PRIuMAX` definition

From: Junio C Hamano <hidden>
Date: 2019-11-25 02:24:14

Jeff King [off-list ref] writes:
On Sun, Nov 24, 2019 at 01:09:23PM +0000, Hariom Verma via GitGitGadget wrote:
quoted
From: Hariom Verma <redacted>

Git's code base already seems to be using `PRIdMAX` without any such
fallback definition for quite a while (75459410edd (json_writer: new
routines to create JSON data, 2018-07-13), to be precise, and the
first Git version to include that commit was v2.19.0).

Therefore it should be safe to drop the fallback definition for
`PRIuMAX` in `git-compat-util.h`.
I noticed this recently, too, and wondered if it was time for a cleanup.
While I agree with the conclusion, I do not think I agree with the
above "Therefore (implying that the lack of need for fallback
PRIdMAX means the same for PRIuMAX) it should be safe" as a good
justification.  That reasoning assumes that the outside world is
much saner than us.  We thought PRIuMAX fallback necessary while a
counterpart for PRIdMAX unneeded---the outside world could have made
a similar mistake and in the opposite way (i.e. only defined PRIdMAX
while leaving PRIuMAX undefined).

But I do agree with the alternative justification in the following
two paragraphs you have given, which are ...
We do sometimes get portability reports more than a year after the
problem was introduced. But I think this one is pretty safe. PRIuMAX is
in C99, and we've been picking up other C99-isms without complaint.

I was curious what system originally spurred this. The PRIuMAX
definition was originally added in 3efb1f343a (Check for PRIuMAX rather
than NO_C99_FORMAT in fast-import.c., 2007-02-20). But it was replacing
a construct that was introduced in 579d1fbfaf (Add NO_C99_FORMAT to
support older compilers., 2006-07-30), which talks about gcc 2.95.
That's pretty ancient at this point.
... these.
This part of the patch looks obviously correct. :) But...
quoted
 #ifndef SCNuMAX
 #define SCNuMAX PRIuMAX
 #endif
Can we likewise ditch the fallback definition for SCNuMAX? And PRIu32,
etc? It seems likely any platform would either have all of them or none.
I guess that's also a C99-ism that we can use?

Thanks, both.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help