On 4 May 2012 01:40, Alex Rønne Petersen <xtzgzo...@gmail.com> wrote: > On 04-05-2012 02:13, Iain Buclaw wrote: >> >> On 3 May 2012 16:13, Don Clugston<d...@nospam.com> wrote: >>> >>> On 03/05/12 16:13, Andrei Alexandrescu wrote: >>> >>>> >>>> On 5/3/12 9:55 AM, Don Clugston wrote: >>>>> >>>>> >>>>> On 28/04/12 20:47, Walter Bright wrote: >>>>>> >>>>>> >>>>>> Andrei and I had a fun discussion last night about this question. The >>>>>> idea was which features in D are redundant and/or do not add >>>>>> significant >>>>>> value? >>>>>> >>>>>> A couple already agreed upon ones are typedef and the cfloat, cdouble >>>>>> and creal types. >>>>>> >>>>>> What's your list? >>>>> >>>>> >>>>> >>>>> Other ones which were agreed to a long time ago were: >>>>> >>>>> * NCEG operators >>>>> >>>>> * built-in .sort and .reverse >>>> >>>> >>>> >>>> Good ones. In fact I even discounted them from this discussion because >>>> I'd already considered them gone. Walter agreed that I don't mention >>>> them in TDPL, with the intent to have them peter out. >>>> >>>> One good step right now would be to remove NCEG operators from the >>>> online documentation. Later on, we'll consider them an accept-invalid >>>> bug :o). >>> >>> >>> >>> Well, they are also used in druntime, in core.stdc.math >>> >>> BTW I *hate* that module, I don't know why it exists. Even worse, it >>> seems >>> to be growing -- people are adding more things to it. >>> Practically everything in there has a better implementation in std.math. >> >> >> I used core.stdc.math to map GCC builtins to math lib functions. This >> allows for a lot of potential const folding that the D frontend does >> not (currently) handle. >> > > Does that play nice with errno? >
The default is -fno-errno-math for GDC, so errno is not usually set after calling single math instructions. This allows most functions to be used in pure routines. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';