cvs commit: src/share/man/man9 style.9

Roman Kurakin rik at inse.ru
Wed Jul 9 18:30:55 UTC 2008


David Schultz wrote:
> On Wed, Jul 09, 2008, Daniel Gerzo wrote:
>   
>> -Do not declare functions inside other functions; ANSI C says that
>> -such declarations have file scope regardless of the nesting of the
>> -declaration.
>> -Hiding file declarations in what appears to be a local
>> -scope is undesirable and will elicit complaints from a good compiler.
>> +Do not declare functions inside other functions; nested functions are
>> +a GCC extension and are not permitted by ANSI C.
>>     
>
> We use lots of extensions that aren't strict ANSI C. I think the
> real reason not to use them is that gcc's nested functions are
> particularly unwieldily. First, they're not true lexical closures
> (and can't be), which makes them much less useful. Second, they
> are unsupported unless a number of assumptions are met, e.g., must
> have an executable stack, must be able to invalidate the I cache
> from userland, and must not have separate I and D address spaces.
> Nested functions abominable enough that Apple disabled the feature
> in OS X's build of gcc --- and the Sun and Intel compilers don't
> support them, even though Intel claims nearly complete gcc
> compatibility.
>   
I think from non-technical side, nested functions are not expected by 
most programmers.
 From my point of view there are many new extensions that a good for 
quick hacking, but
not for the production code.

rik




More information about the cvs-src mailing list