Help from the compiler when debugging failing template constraints - a pull request

Artur Skawina via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 14 10:53:06 PDT 2015


On 10/14/15 15:32, Atila Neves via Digitalmars-d wrote:
> On Wednesday, 14 October 2015 at 12:42:23 UTC, Artur Skawina wrote:
>> On 10/14/15 10:26, Atila Neves via Digitalmars-d wrote:
>>> On Monday, 28 September 2015 at 20:25:21 UTC, Atila Neves wrote:
>>>> I've mentioned this many times before: template constraints are like unittest blocks with asserts in D: great that they're built-in easy to use. But when they fail, there's no help in figuring out why.
>>>>
>>>> [...]
>>>
>>> Huh, I thought this'd get more interest. I guess I have weird priorities! :P
>>
>> No, it's probably just that the people interested in this would prefer a /proper/ solution, hence don't consider ad hoc hacks to be cost effective, but actually counterproductive.
> 
> There can't be a "proper" solution without a language change, which is unlikely.

Yes, I'm just pointing out that the lack of discussion is not
necessarily caused by the lack of interest and that the
subject is not a low priority one.

When a /proper/ solution is available (ie `possible`, even if
not `likely`), discussing partial solutions (aka hacks) that
have a significant cost will (rightly) be seen as
counterproductive. Given the microscopic size of the D community
it only takes a few people to reach that conclusion to result
in ~zero constructive feedback. IOW it's not a "weird priorities"
issue; it's a pragmatic pro-status-quo-choice issue.

Another example of this kind would be the ownership/lifetime
approach. Of the three options: [A] `ignoring it by-design` (C-like),
[B] `dealing with only a subset`, and [C] `handling it properly`, 
the middle [B] option is the worst one. This leads to very little
serious feedback to [B] proposals, and even less to [C] (since it
"won't happen"). That doesn't change the reality that the only
viable alternatives are either [A] or [C], because [B] has a cost
comparable (if not ultimately even higher than) [C], but does not
have [C]'s benefit (safety).

IOW "feedback amount" can not be used as a proxy for "interest",
and there often is no meaningful feedback->result correlation.
There are too many other (meta) factors involved.

artur



More information about the Digitalmars-d mailing list