All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
	"brian m . carlson" <sandals@crustytoothpaste.net>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v3 0/3] C99: remove dead !HAVE_VARIADIC_MACROS code
Date: Sat, 19 Feb 2022 11:41:07 +0100	[thread overview]
Message-ID: <cover-v3-0.3-00000000000-20220219T103752Z-avarab@gmail.com> (raw)
In-Reply-To: <cover-v2-0.2-00000000000-20220128T110330Z-avarab@gmail.com>

A too-late re-roll of the v2[1], sorry. But this should address all
issues raised the last time around.

Since v2 I've:

 * Improved the documentation of the now onnly-macros. I opted to just
   quote the argument list of the old C functions for explanation.

 * Some miscellanious commit message grammar fixes.

 * Whitespace fixes in 2/3.

 * There's a new 3/3 which removes an indirection used to define
   __FILE__, instead we now use __FILE__ directly.

1. https://lore.kernel.org/git/cover-v2-0.2-00000000000-20220128T110330Z-avarab@gmail.com/

Ævar Arnfjörð Bjarmason (3):
  git-compat-util.h: clarify GCC v.s. C99-specific in comment
  C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
  trace.h: remove never-used TRACE_CONTEXT

 Documentation/CodingGuidelines |   3 +
 banned.h                       |   5 --
 git-compat-util.h              |  16 +---
 trace.c                        |  80 +-----------------
 trace.h                        | 145 ++++++++++++++-------------------
 trace2.c                       |  39 ---------
 trace2.h                       |  25 ------
 usage.c                        |  15 +---
 8 files changed, 67 insertions(+), 261 deletions(-)

Range-diff against v2:
1:  31079a71ecb = 1:  1a15fe4fd74 git-compat-util.h: clarify GCC v.s. C99-specific in comment
2:  966d96505cb ! 2:  bd0f969be55 C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
    @@ Commit message
         C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
     
         Remove the "else" branches of the HAVE_VARIADIC_MACROS macro, which
    -    has been unconditionally omitted since 765dc168882 (git-compat-util:
    +    have been unconditionally omitted since 765dc168882 (git-compat-util:
         always enable variadic macros, 2021-01-28).
     
    -    Since they were hardcoded out anyone trying to compile a version of
    +    Since were always omitted, anyone trying to use a compiler without
    +    variadic macro support to compile a git since version
         git v2.31.0 or later would have had a compilation error. 10 months
         across a few releases since then should have been enough time for
         anyone who cared to run into that and report the issue.
    @@ trace.h: void trace_command_performance(const char **argv);
     - */
     -void trace_strbuf(struct trace_key *key, const struct strbuf *data);
     -
    - /**
    +-/**
     - * Prints elapsed time (in nanoseconds) if GIT_TRACE_PERFORMANCE is enabled.
    -+ * Macros to add the file:line of the calling code, instead of that of
    -+ * the trace function itself.
    -  *
    +- *
     - * Example:
     - * ------------
     - * uint64_t t = 0;
    @@ trace.h: void trace_command_performance(const char **argv);
     - * should be used.
     - */
     -
    + /*
    +  * TRACE_CONTEXT may be set to __FUNCTION__ if the compiler supports it. The
    +  * default is __FILE__, as it is consistent with assert(), and static function
    +@@ trace.h: void trace_performance_leave(const char *format, ...);
    + # define TRACE_CONTEXT __FILE__
    + #endif
    + 
     -/*
    -- * TRACE_CONTEXT may be set to __FUNCTION__ if the compiler supports it. The
    -- * default is __FILE__, as it is consistent with assert(), and static function
    -- * names are not necessarily unique.
    -- *
    -- * __FILE__ ":" __FUNCTION__ doesn't work with GNUC, as __FILE__ is supplied
    -- * by the preprocessor as a string literal, and __FUNCTION__ is filled in by
    -- * the compiler as a string constant.
    -- */
    --#ifndef TRACE_CONTEXT
    --# define TRACE_CONTEXT __FILE__
    --#endif
    --
    --/*
    ++/**
    ++ * Macros to add the file:line of the calling code, instead of that of
    ++ * the trace function itself.
    ++ *
       * Note: with C99 variadic macros, __VA_ARGS__ must include the last fixed
       * parameter ('format' in this case). Otherwise, a call without variable
       * arguments will have a surplus ','. E.g.:
     @@ trace.h: void trace_performance_leave(const char *format, ...);
    -  *
    -  * which is invalid (note the ',)'). With GNUC, '##__VA_ARGS__' drops the
       * comma, but this is non-standard.
    +  */
    + 
    ++/**
    ++ * trace_printf(), accepts "const char *format, ...".
     + *
    -+ * TRACE_CONTEXT may be set to __FUNCTION__ if the compiler supports it. The
    -+ * default is __FILE__, as it is consistent with assert(), and static function
    -+ * names are not necessarily unique.
    -+ *
    -+ * __FILE__ ":" __FUNCTION__ doesn't work with GNUC, as __FILE__ is supplied
    -+ * by the preprocessor as a string literal, and __FUNCTION__ is filled in by
    -+ * the compiler as a string constant.
    ++ * Prints a formatted message, similar to printf.
     + */
    -+#ifndef TRACE_CONTEXT
    -+# define TRACE_CONTEXT __FILE__
    -+#endif
    ++#define trace_printf(...) trace_printf_key(&trace_default_key, __VA_ARGS__)
     +
     +/**
    -+ * Prints a formatted message, similar to printf.
    -  */
    -+#define trace_printf(...) trace_printf_key(&trace_default_key, __VA_ARGS__)
    - 
    ++ * trace_printf_key(), accepts "struct trace_key *key, const char *format, ...".
    ++ */
      #define trace_printf_key(key, ...)					    \
      	do {								    \
    + 		if (trace_pass_fl(key))					    \
     @@ trace.h: void trace_performance_leave(const char *format, ...);
      					    __VA_ARGS__);		    \
      	} while (0)
    @@ trace.h: void trace_performance_leave(const char *format, ...);
     -#define trace_printf(...) trace_printf_key(&trace_default_key, __VA_ARGS__)
     -
     +/**
    ++ * trace_argv_printf(), accepts "struct trace_key *key, const char *format, ...)".
    ++ *
     + * Prints a formatted message, followed by a quoted list of arguments.
     + */
      #define trace_argv_printf(argv, ...)					    \
    @@ trace.h: void trace_performance_leave(const char *format, ...);
      	} while (0)
      
     +/**
    ++ * trace_strbuf(), accepts "struct trace_key *key, const struct strbuf *data".
    ++ *
     + * Prints the strbuf, without additional formatting (i.e. doesn't
     + * choke on `%` or even `\0`).
     + */
    @@ trace.h: void trace_performance_leave(const char *format, ...);
      	} while (0)
      
     +/**
    ++ * trace_performance(), accepts "uint64_t nanos, const char *format, ...".
    ++ *
     + * Prints elapsed time (in nanoseconds) if GIT_TRACE_PERFORMANCE is enabled.
     + *
     + * Example:
    @@ trace.h: void trace_performance_leave(const char *format, ...);
      	} while (0)
      
     +/**
    ++ * trace_performance_since(), accepts "uint64_t start, const char *format, ...".
    ++ *
     + * Prints elapsed time since 'start' if GIT_TRACE_PERFORMANCE is enabled.
     + *
     + * Example:
    @@ trace.h: void trace_performance_leave(const char *format, ...);
      	do {								    \
      		if (trace_pass_fl(&trace_perf_key))			    \
     @@ trace.h: void trace_performance_leave(const char *format, ...);
    - 						   __VA_ARGS__);	    \
    + 					     __VA_ARGS__);		    \
      	} while (0)
      
    -+
    - /* backend functions, use non-*fl macros instead */
    - __attribute__((format (printf, 4, 5)))
    - void trace_printf_key_fl(const char *file, int line, struct trace_key *key,
    ++/**
    ++ * trace_performance_leave(), accepts "const char *format, ...".
    ++ */
    + #define trace_performance_leave(...)					    \
    + 	do {								    \
    + 		if (trace_pass_fl(&trace_perf_key))			    \
     @@ trace.h: static inline int trace_pass_fl(struct trace_key *key)
      	return key->fd || !key->initialized;
      }
-:  ----------- > 3:  27ea260bbea trace.h: remove never-used TRACE_CONTEXT
-- 
2.35.1.1129.g03fd99ecb8d


  parent reply	other threads:[~2022-02-19 10:41 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-10 15:21 [PATCH 00/15] SHA-256 / SHA-1 interop, part 1 brian m. carlson
2021-04-10 15:21 ` [PATCH 01/15] sha1-file: allow hashing objects literally with any algorithm brian m. carlson
2021-04-15  8:55   ` Denton Liu
2021-04-15 23:03     ` brian m. carlson
2021-04-16 15:04   ` Ævar Arnfjörð Bjarmason
2021-04-16 18:55     ` Junio C Hamano
2021-04-10 15:21 ` [PATCH 02/15] builtin/hash-object: allow literally hashing with a given algorithm brian m. carlson
2021-04-11  8:52   ` Ævar Arnfjörð Bjarmason
2021-04-11 21:07     ` brian m. carlson
2021-04-16 15:21   ` Ævar Arnfjörð Bjarmason
2021-04-16 17:27   ` Ævar Arnfjörð Bjarmason
2021-04-10 15:21 ` [PATCH 03/15] cache: add an algo member to struct object_id brian m. carlson
2021-04-11 11:55   ` Ævar Arnfjörð Bjarmason
2021-04-11 21:37     ` brian m. carlson
2021-04-13 12:12   ` Derrick Stolee
2021-04-14  1:08     ` brian m. carlson
2021-04-15  8:47       ` Ævar Arnfjörð Bjarmason
2021-04-15 23:51         ` brian m. carlson
2021-04-10 15:21 ` [PATCH 04/15] Always use oidread to read into " brian m. carlson
2021-04-10 15:21 ` [PATCH 05/15] hash: add a function to finalize object IDs brian m. carlson
2021-04-10 15:21 ` [PATCH 06/15] Use the final_oid_fn to finalize hashing of " brian m. carlson
2021-04-10 15:21 ` [PATCH 07/15] builtin/pack-redundant: avoid casting buffers to struct object_id brian m. carlson
2021-04-10 15:21 ` [PATCH 08/15] cache: compare the entire buffer for " brian m. carlson
2021-04-11  8:17   ` Chris Torek
2021-04-11 11:36   ` Ævar Arnfjörð Bjarmason
2021-04-11 21:05     ` brian m. carlson
2021-04-10 15:21 ` [PATCH 09/15] hash: set and copy algo field in " brian m. carlson
2021-04-11 11:57   ` Ævar Arnfjörð Bjarmason
2021-04-11 21:48     ` brian m. carlson
2021-04-11 22:12       ` Ævar Arnfjörð Bjarmason
2021-04-11 23:52         ` brian m. carlson
2021-04-12 11:02           ` [PATCH 0/2] C99: harder dependency on variadic macros Ævar Arnfjörð Bjarmason
2021-04-12 11:02             ` [PATCH 1/2] git-compat-util.h: clarify comment on GCC-specific code Ævar Arnfjörð Bjarmason
2021-04-13  7:57               ` Jeff King
2021-04-13 21:07                 ` Junio C Hamano
2021-04-14  5:21                   ` Jeff King
2021-04-14  6:12                     ` Ævar Arnfjörð Bjarmason
2021-04-14  7:31                       ` Jeff King
2021-05-21  2:06               ` Jonathan Nieder
2021-04-12 11:02             ` [PATCH 2/2] C99 support: remove non-HAVE_VARIADIC_MACROS code Ævar Arnfjörð Bjarmason
2021-04-12 17:58               ` Junio C Hamano
2021-04-13  8:00                 ` Jeff King
2021-05-21  2:50               ` Jonathan Nieder
2021-04-12 12:14             ` [PATCH 0/2] C99: harder dependency on variadic macros Bagas Sanjaya
2021-04-12 12:41               ` Ævar Arnfjörð Bjarmason
2021-04-12 22:57                 ` brian m. carlson
2021-04-12 23:19                   ` Junio C Hamano
2022-01-28 11:11             ` [PATCH v2 0/2] C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code Ævar Arnfjörð Bjarmason
2022-01-28 11:11               ` [PATCH v2 1/2] git-compat-util.h: clarify GCC v.s. C99-specific in comment Ævar Arnfjörð Bjarmason
2022-01-28 11:11               ` [PATCH v2 2/2] C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code Ævar Arnfjörð Bjarmason
2022-01-28 22:40                 ` Junio C Hamano
2022-02-19 10:41               ` Ævar Arnfjörð Bjarmason [this message]
2022-02-19 10:41                 ` [PATCH v3 1/3] git-compat-util.h: clarify GCC v.s. C99-specific in comment Ævar Arnfjörð Bjarmason
2022-02-19 10:41                 ` [PATCH v3 2/3] C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code Ævar Arnfjörð Bjarmason
2022-02-19 10:41                 ` [PATCH v3 3/3] trace.h: remove never-used TRACE_CONTEXT Ævar Arnfjörð Bjarmason
2022-02-20 12:02                   ` Junio C Hamano
2022-02-20 12:38                     ` Ævar Arnfjörð Bjarmason
2022-02-20 20:12                       ` Junio C Hamano
2022-02-21 16:05                 ` [PATCH v4 0/2] C99: remove dead !HAVE_VARIADIC_MACROS code Ævar Arnfjörð Bjarmason
2022-02-21 16:05                   ` [PATCH v4 1/2] git-compat-util.h: clarify GCC v.s. C99-specific in comment Ævar Arnfjörð Bjarmason
2022-02-21 16:05                   ` [PATCH v4 2/2] C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code Ævar Arnfjörð Bjarmason
2021-04-12 10:53         ` [PATCH 09/15] hash: set and copy algo field in struct object_id Junio C Hamano
2021-04-12 11:13           ` Ævar Arnfjörð Bjarmason
2021-04-10 15:21 ` [PATCH 10/15] hash: provide per-algorithm null OIDs brian m. carlson
2021-04-11 14:03   ` Junio C Hamano
2021-04-11 21:51     ` brian m. carlson
2021-04-10 15:21 ` [PATCH 11/15] builtin/show-index: set the algorithm for object IDs brian m. carlson
2021-04-10 15:21 ` [PATCH 12/15] commit-graph: don't store file hashes as struct object_id brian m. carlson
2021-04-10 15:21 ` [PATCH 13/15] builtin/pack-objects: avoid using struct object_id for pack hash brian m. carlson
2021-04-10 15:21 ` [PATCH 14/15] hex: default to the_hash_algo on zero algorithm value brian m. carlson
2021-04-10 15:21 ` [PATCH 15/15] hex: print objects using the hash algorithm member brian m. carlson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover-v3-0.3-00000000000-20220219T103752Z-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=sandals@crustytoothpaste.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.