<div class="gmail_quote">On 20 February 2012 21:51, Sean Kelly <span dir="ltr"><<a href="mailto:sean@invisibleduck.org">sean@invisibleduck.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Feb 20, 2012, at 11:43 AM, Manu wrote:<br>
<br>
> On 20 February 2012 19:21, Iain Buclaw <<a href="mailto:ibuclaw@ubuntu.com">ibuclaw@ubuntu.com</a>> wrote:<br>
><br>
</div><div class="im">> OK, I'm just having a trudge through druntime:<br>
><br>
> intptr_t and uintptr_t are guaranteed to match pointer size.<br>
> <a href="https://bitbucket.org/goshawk/gdc/src/87241c8e754b/d/druntime/core/stdc/stdint.d#cl-70" target="_blank">https://bitbucket.org/goshawk/gdc/src/87241c8e754b/d/druntime/core/stdc/stdint.d#cl-70</a><br>
><br>
> c_long and c_ulong are guaranteed to match target long size (here<br>
> would also go c_int and c_uint ;-).<br>
> <a href="https://bitbucket.org/goshawk/gdc/src/87241c8e754b/d/druntime/core/stdc/config.d#cl-22" target="_blank">https://bitbucket.org/goshawk/gdc/src/87241c8e754b/d/druntime/core/stdc/config.d#cl-22</a><br>
><br>
> This needs fixing, as wchar_t may not be same size across all targets<br>
> (some change size of wchar_t based on compile time switches).<br>
> <a href="https://bitbucket.org/goshawk/gdc/src/87241c8e754b/d/druntime/core/stdc/stddef.d#cl-28" target="_blank">https://bitbucket.org/goshawk/gdc/src/87241c8e754b/d/druntime/core/stdc/stddef.d#cl-28</a><br>
><br>
> This needs fixing, as wint_t may not be same size across all targets.<br>
> <a href="https://bitbucket.org/goshawk/gdc/src/87241c8e754b/d/druntime/core/stdc/wchar_.d#cl-29" target="_blank">https://bitbucket.org/goshawk/gdc/src/87241c8e754b/d/druntime/core/stdc/wchar_.d#cl-29</a><br>
><br>
> --<br>
> Iain Buclaw<br>
><br>
> *(p < e ? p++ : p) = (c & 0x0f) + '0';<br>
><br>
> It seems the problem is already MUCH worse than in D already :( .. this was precisely my fear.<br>
> Why all these redundant aliases? Just for C compatibility?<br>
<br>
</div>core.stdc is an interface to the C99 API, so everything is preserved verbatim.  c_long and c_ulong were added because the size of C long differs between Windows and non-Windows x86_64 platforms.  Typically, int, short, etc are the same however, which is why there's currently no c_int--it was just a needless complication at the time.  The aliases for D users, if the exist at all, should be separate.</blockquote>
</div><br><div>What about intptr_t/uintptr_t, are they builtins, or in core.stdc?</div>