Steven Schveighoffer wrote:
On Wed, 16 Mar 2011 21:07:54 -0400, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:

On 03/16/2011 06:45 PM, bearophile wrote:
- It kills inlining (with the current DMD, and I don't think this problem will be fixed soon);

Not a problem of enforce.


Why can't enforce be this:

T enforce(T, string file = __FILE__, int line = __LINE__)(T value, /* lazy
-- BUG: disables inlining */ const(char)[] msg = null);

Until the compiler is fixed?  I bet it would perform better even though
the message may be eagerly constructed.  Simply because in 99% of cases
(I've checked) the message is a string literal.

Essentially we keep saying D is on par with C for performance, and then
the standard library is riddled with un-optimizable code making that claim
patently false.  It doesn't help to say, "well yeah, I know it's not *now*
but trust me, we know what the problem is and we'll fix it in the next
1-60 months."

I completely agree. If we make statements like "it's OK because it will be fixed soon" it has to be added to a list and prioritized. With the understanding that *it knocks something else from that list*. As I've ended up being the one who implements a large fraction of such things, I get unhappy when people casually make statements about them being implemented "soon".

Reply via email to