On 27/02/14 13:06, Kristján Valur Jónsson wrote: > >
-----Original Message----- From: Victor Stinner [mailto:email@example.com] Sent: 27. febrúar 2014 10:47 To: Kristján Valur Jónsson Cc: Python-Dev (firstname.lastname@example.org) Subject: Re: [Python-Dev] Start writing inlines rather than macros? In practice, recent versions of GCC and Clang are used. On Windows, it's Visual Studio 2010. I'm pretty sure that these compilers support inline functions.
I'm also in favor of using inline functions instead of long macros using ugly hacks like "instr1,instr2" syntax where instr1 used assert(). See for example unicodeobject.c to have an idea of what horrible macros mean.
I'm in favor of dropping C89 support and require at least C99. There is now C11, it's time to drop the old C89. http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29
well, requiring C99 is another discussion which I'm not so keen on instigating :) As you point out, most of our target platforms probably do support inline already. My question is more of the nature: What about those that don't support inline, is there any harm in defaulting to "static" in that case and leave the inlining to the optimizer on those platforms?
I agree, modern compilers will inline quite aggressively, so declaring a function static is as good as declaring it inline, provided the function is small. Static functions are a lot easier to read and maintain than LOUD_BUT_UNTYPED_MACRO(x) :)