Re: [PATCH 01/10] x86: assembly, ENTRY for fn, GLOBAL for data

From: hpa
Date: Fri Mar 03 2017 - 14:43:11 EST


On March 1, 2017 2:27:54 AM PST, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
>* Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
>> On Wed, 1 Mar 2017, Ingo Molnar wrote:
>> >
>> > * Jiri Slaby <jslaby@xxxxxxx> wrote:
>> >
>> > > This is a start of series to unify use of ENTRY, ENDPROC, GLOBAL,
>END,
>> > > and other macros across x86. When we have all this sorted out,
>this will
>> > > help to inject DWARF unwinding info by objtool later.
>> > >
>> > > So, let us use the macros this way:
>> > > * ENTRY -- start of a global function
>> > > * ENDPROC -- end of a local/global function
>> > > * GLOBAL -- start of a globally visible data symbol
>> > > * END -- end of local/global data symbol
>> >
>> > So how about using macro names that actually show the purpose,
>instead of
>> > importing all the crappy, historic, essentially randomly chosen
>debug symbol macro
>> > names from the binutils and older kernels?
>> >
>> > Something sane, like:
>> >
>> > SYM__FUNCTION_START
>>
>> Sane would be:
>>
>> SYM_FUNCTION_START
>>
>> The double underscore is just not giving any value.
>
>So the double underscore (at least in my view) has two advantages:
>
>1) it helps separate the prefix from the postfix.
>
>I.e. it's a 'symbols' namespace, and a 'function start', not the
>'start' of a
>'symbol function'.
>
>2) It also helps easy greppability.
>
>Try this in latest -tip:
>
> git grep e820__
>
>To see all the E820 API calls - with no false positives!
>
>'git grep e820_' on the other hand is a lot less reliable...
>
>But no strong feelings either way, I just try to sneak in these small
>namespace
>structure tricks when nobody's looking! ;-)
>
>Thanks,
>
> Ingo

IMO these little "namespace tricks" especially for small common macros like we are taking about here make the code very frustrating to read, and even more to write. Noone would design a programming language that way, and things like PROC are really just substitutes for proper language features (and could even be as assembly rather than cpp macros.)

When I say frustrating I mean, at least for me, full-Ballmer launch-chair-at-monitor level frustrating.
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.