Re: What's the deal with __thread?

2012-11-16 Thread Mehrdad
On Thursday, 15 November 2012 at 14:42:32 UTC, Don Clugston wrote: in D. It's a very rare case, I guess, but it's one of those situations where D code silently has different behaviour from identical C code. extern(C) int x; is not C code. :P

Re: What's the deal with __thread?

2012-11-15 Thread Don Clugston
On 14/11/12 23:16, Walter Bright wrote: On 11/14/2012 12:06 PM, Sean Kelly wrote: On Nov 14, 2012, at 6:26 AM, Don Clugston d...@nospam.com wrote: IIRC it was used prior to 2.030. In the spec, it is in the keyword list, and it's also listed in the Migrating to shared article. That's all.

Re: What's the deal with __thread?

2012-11-15 Thread Jacob Carlborg
On 2012-11-15 11:28, Don Clugston wrote: However, there is one case in the test suite which is unclear to me: extern(C) __thread int x; Is there any other way to do this? extern (C) int x; extern(C) doesn't make it global. -- /Jacob Carlborg

Re: What's the deal with __thread?

2012-11-15 Thread Walter Bright
On 11/15/2012 2:28 AM, Don Clugston wrote: However, there is one case in the test suite which is unclear to me: extern(C) __thread int x; Is there any other way to do this? extern(C) int x;

Re: What's the deal with __thread?

2012-11-15 Thread Don Clugston
On 15/11/12 11:54, Walter Bright wrote: On 11/15/2012 2:28 AM, Don Clugston wrote: However, there is one case in the test suite which is unclear to me: extern(C) __thread int x; Is there any other way to do this? extern(C) int x; What about extern(C) variables which are not thread local?

Re: What's the deal with __thread?

2012-11-15 Thread Alex Rønne Petersen
On 15-11-2012 15:42, Don Clugston wrote: On 15/11/12 11:54, Walter Bright wrote: On 11/15/2012 2:28 AM, Don Clugston wrote: However, there is one case in the test suite which is unclear to me: extern(C) __thread int x; Is there any other way to do this? extern(C) int x; What about

Re: What's the deal with __thread?

2012-11-15 Thread Walter Bright
On 11/15/2012 6:46 AM, Alex Rønne Petersen wrote: I think most people are aware of this 'quirk' from what I've seen in binding projects, so it's probably not a big deal. Also, remember that C code can now have thread local globals, too. Both are expressible in D, it's just that the default

Re: What's the deal with __thread?

2012-11-15 Thread Walter Bright
On 11/15/2012 6:42 AM, Don Clugston wrote: On 15/11/12 11:54, Walter Bright wrote: On 11/15/2012 2:28 AM, Don Clugston wrote: However, there is one case in the test suite which is unclear to me: extern(C) __thread int x; Is there any other way to do this? extern(C) int x; What about

What's the deal with __thread?

2012-11-14 Thread Don Clugston
IIRC it was used prior to 2.030. In the spec, it is in the keyword list, and it's also listed in the Migrating to shared article. That's all. There are a small number of uses of it in the DMD test suite. Is it still valid? Is it useful? Or has everyone forgotten that it still exists?

Re: What's the deal with __thread?

2012-11-14 Thread Sean Kelly
On Nov 14, 2012, at 6:26 AM, Don Clugston d...@nospam.com wrote: IIRC it was used prior to 2.030. In the spec, it is in the keyword list, and it's also listed in the Migrating to shared article. That's all. There are a small number of uses of it in the DMD test suite. Is it still valid?

Re: What's the deal with __thread?

2012-11-14 Thread Walter Bright
On 11/14/2012 12:06 PM, Sean Kelly wrote: On Nov 14, 2012, at 6:26 AM, Don Clugston d...@nospam.com wrote: IIRC it was used prior to 2.030. In the spec, it is in the keyword list, and it's also listed in the Migrating to shared article. That's all. There are a small number of uses of it in the