Scott Meyers' DConf 2014 keynote "The Last Thing D Needs"

Steven Schveighoffer via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu May 29 07:56:20 PDT 2014


On Thu, 29 May 2014 10:20:39 -0400, Jesse Phillips  
<Jesse.K.Phillips+D at gmail.com> wrote:

> On Thursday, 29 May 2014 at 13:11:52 UTC, Steven Schveighoffer wrote:
>> IIRC, the entire section of global TLS data is initialized, and is all  
>> contiguous memory, so it would be anti-performant to initialize all but  
>> 4 bytes.
>
>      int x2;
>      float f2;
>
> These are both TLS and they init to different values, I suppose:
>
>      float f2prime = void;
>
> would mean f2prime is 0 and not float.init. Otherwise what you state is  
> kind of what I was expecting.

This is not what I would have expected. But one can test easily enough :)

http://dpaste.dzfl.pl/6619cf538f8e

I find this interesting. I would have expected the TLS initialization to  
be one giant memcpy. If it is, I find it puzzling that these would be  
different.

The only logical explanation is that TLS is initialized first with all  
zeros, and then specific inits are overlaid on types that have inits.  
Otherwise, what difference does it make if you are blitting 0's or nans?

-Steve


More information about the Digitalmars-d-announce mailing list