git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] alloc.c: remove alloc_raw_commit_node() function

From
Jeff King <peff@peff.net>
Date
Jun 19, 2014, 09:19 UTC
Message-ID
<20140619091924.GA29478@sigill.intra.peff.net>
In-Reply-To
<53A2131A.30900@ramsay1.demon.co.uk>
On Wed, Jun 18, 2014 at 11:30:50PM +0100, Ramsay Jones wrote:
> So, the patch below is a slight variation on the original patch.
> I'm still slightly concerned about portability, but given that it
> has been at least a decade since I last used a (pre-ANSI) compiler
> which had a problem with this ...

For a while some people were compiling git with pretty antique compilers, but I do not know if that is the case any more (Junio noted recently that we have had trailing commas on arrays and enums in builtin/clean.c for the past year, and nobody has complained).

Maybe those systems have all died off, or maybe those people only upgrade every few years, and we are due for an onslaught of portability fixes soon. :)

> [I have several versions of the C standard that I can use to check
> up on the legalise, but I'm not sure I can be bothered! ;-) ]

It was actually pretty easy to find. I only have C99, but "empty macro arguments" are listed as one of the changes since C89 in the foreward.

Show 13 quoted lines
> diff --git a/alloc.c b/alloc.c
> index eb22a45..5392d13 100644
> --- a/alloc.c
> +++ b/alloc.c
> @@ -18,9 +18,12 @@
>  
>  #define BLOCKING 1024
>  
> -#define DEFINE_ALLOCATOR(name, type)				\
> +#define PUBLIC
> +#define PRIVATE static
> +
> +#define DEFINE_ALLOCATOR(scope, name, type)			\

I am not sure offhand whether this is more portable or not (it would depend on order of macro expansion, and I am not brave enough to read through the preprocessor section of the standard carefully). Quick reading online suggests that it's OK, but that an extra level of macro expansion would not be. And of course the Internet is never wrong. :)

I'm inclined to go with it, and deal with it later if we get a portability complaint (at which point we are no worse off than we are right now).

-Peff
Previous: Ramsay JonesNext: Ramsay Jones
Message 4 of 6 in “alloc.c: remove alloc_raw_commit_node() function”
  1. alloc.c: remove alloc_raw_commit_node() functionRamsay Jones, Jun 18, 2014
  2. Jeff KingJun 18, 2014
  3. Ramsay JonesJun 18, 2014
  4. Jeff KingJun 19, 2014
  5. Ramsay JonesJun 19, 2014
  6. Junio C HamanoJun 19, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.