Junio C Hamano <gitster@xxxxxxxxx> writes: > Patrick Steinhardt <ps@xxxxxx> writes: > >> On Wed, Jul 23, 2025 at 12:31:26PM -0700, Junio C Hamano wrote: >>> diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines >>> index c1046abfb7..0776d15a95 100644 >>> --- a/Documentation/CodingGuidelines >>> +++ b/Documentation/CodingGuidelines >>> @@ -298,6 +298,14 @@ For C programs: >>> . since late 2021 with 44ba10d6, we have had variables declared in >>> the for loop "for (int i = 0; i < 10; i++)". >>> >>> + C99 features we have test balloons for: >>> + >>> + . since late 2024 with v2.48.0-rc0~20, we have test balloons for >>> + compound literal syntax, e.g., (struct foo){ .member = value }; >>> + our hope is that no platforms we care about have trouble using >>> + them, and officially adopt its wider use in mid 2026. Do not add >>> + more use of the syntax until that happens. >> >> Nice. I like that we now have an explicit deadline for people to >> complain about this feature not being supported on their platform. > > I do not think the firm deadline has much practical effect. Test > balloons are designed to be placed in a stable and non-optional part > of the codebase that is exercised by everybody, so even if your > update cycle from your upstream is once a year, you'd have four or > five major releases to try building and noticing that your platform > is unhappy about them. > > So the only effect it would have is to smoke out truly slow platform > maintainers; if their users are happy enough with such slow upgrade, > they have lived and they can live with versions of Git that are > years stale that we no longer care about. For what it is worth, Gnulib and threfore Coreutils, among others, began using compound literals in 2017 and it seems to have not caused any problems [1]. Even 'pcc' supports them. Collin [1] https://github.com/coreutils/gnulib/commit/3a8af1e38bc026a9efb3b47c4686e4e54b633436