Current GDC experience and questions
Iain Buclaw
ibuclaw at ubuntu.com
Fri Mar 8 09:54:04 PST 2013
On 8 March 2013 16:11, Johannes Pfau <nospam at example.com> wrote:
> Am Fri, 8 Mar 2013 15:18:53 +0000
> schrieb Iain Buclaw <ibuclaw at ubuntu.com>:
>
>
> > Yet not all attributes that GCC offers actually make sense to have in
> > D. We certainly need to have a review of each one and discuss what is
> > most important to have. Also defining our own unique attributes
> > along the way. :o)
> >
>
> To get the discussion started: I think we could adopt these LDC
> pragmas:
>
> LDC_no_typeinfo
> LDC_no_moduleinfo
>
>
That could come under the jurisdiction of -ffree-standing (something that
could be the equivalent of dmd's -betterC).
> Maybe nice to have:
> LDC_global_crt_ctor and LDC_global_crt_dtor
> (is this the same as
> __attribute__((constructor))/__attribute__((destructor))) ?
>
>
Indeed. This is different to this() and static this() as these get called
when the object gets loaded into C runtime, rather than delayed until D
runtime initialises.
> Not needed in GDC?
> LDC_allow_inline
> (allow inlining a function continaining inline asm. not necessary for
> gdc extended inline asm)
>
Also not needed:
- aligned: because D has align() for that.
- gnu_inline, artificial: because D has no inline keyword, nor has need
for one.
- error, warning: There are better alternatives that can be implemented in
D.
- deprecated: There is a deprecated keyword for that.
- no_split_stack: Infact, supporting -fsplit-stack is a generally bad idea
anyway and requires a new GC.
- nothrow: D has nothrow keyword
- pure, const: Although D has pure keyword that does not necessarily
follow same as C semantics, I don't think the inclusion of these are
beneficial at all.
- returns_twice: Unless of course I'm missing the point of something here.
:o)
- optimise, target: I'm sure the guy who implemented these meant well, but
I fail to see the point as to why you'd want such an attribute.
- used, unused: ......
Regards
--
Iain Buclaw
*(p < e ? p++ : p) = (c & 0x0f) + '0';
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/d.gnu/attachments/20130308/653cf40a/attachment.html>
More information about the D.gnu
mailing list