How Nested Functions Work, part 2

Jeremie Pelletier jeremiep at gmail.com
Wed Sep 23 13:27:10 PDT 2009


Walter Bright wrote:
> Jeremie Pelletier wrote:
>> Those new and better ways of doing things in programming languages 
>> might imply semantics some programmers are not willing to use, and 
>> would rather keep their older language and implement their own version 
>> of that feature themselves, pure C will always dominate in that in my 
>> opinion since I can't think of anything in the language itself that 
>> generate calls to runtime methods,
> 
> There are several things that do - things like floating point 
> conversions, long division, etc.

Aren't those just part of the generated machine code? I mean the 
compiler does not add calls to symbols which need to be resolved in the 
runtime library.

>> which fortunately can also be done in D. A lot of D features require 
>> runtime calls, not everyone is willing to dig into the runtime to 
>> learn what such calls imply in terms of performance. For example, I 
>> myself stay off scope() for real time code because I'm aware it needs 
>> to call into _d_framehandler.
> 
> That's only called when handling an exception, not for just setting up 
> the frame and normally executing it. Also, if you annotate your 
> functions as "nothrow", and your guarded statements do not throw, the 
> compiler will elide the exception handling code.

Oh, I haven't thought of that, I was sure nothrow was still just a 
reserved keyword. Thanks for that information, I will make sure to get 
the best of it now :)



More information about the Digitalmars-d mailing list