Beta 2.078.2

Timothee Cour thelastmammoth at gmail.com
Sun Feb 4 23:08:35 UTC 2018


if necessary, to help with transition, one could add a hidden flag
`-log_when_issue_18315_occurred` that would log stacktrace (or maybe
user defined function) when hitting this condition at runtime:

```
void main(){ fun(int.min); }
void fun(int v){ writeln(v>0); }
```

dmd -log_when_issue_18315_occurred -run main.d
WARNING_18315 at (shows stacktrace): old:true, new:false
false


On Sun, Feb 4, 2018 at 3:01 PM, Timothee Cour <thelastmammoth at gmail.com> wrote:
> thanks @aG0aep6G for this PR https://github.com/dlang/dmd/pull/7841 to fix it.
> this should be in point release because:
> * ldc2 has correct behavior
> * the bug disappears with `-O`
> so the argument that ppl would rely on it is moot
>
>
> On Fri, Feb 2, 2018 at 6:37 AM, Steven Schveighoffer via
> Digitalmars-d-announce <digitalmars-d-announce at puremagic.com> wrote:
>> On 2/2/18 4:29 AM, Seb wrote:
>>>
>>> On Friday, 2 February 2018 at 08:34:32 UTC, Antonio Corbi wrote:
>>
>>
>>>> Wouldn't it be good to include a fix for errors like produced by int.min
>>>> assigned to a variable
>>>> (https://forum.dlang.org/post/p4l7kt$80d$1@digitalmars.com) in a point
>>>> release like this?
>>>
>>>
>>> No, while I understand that you would like this to be fixed, this change
>>> might be disruptive - you never know on what weird behavior people rely.
>>> Anything potentially breaking existing code can't be part of a patch
>>> release.
>>
>>
>> In some cases, yes, we need to have a deprecation period as people may
>> depend on the behavior.
>>
>> In this case, however, the codegen is simply wrong. It can be fixed
>> immediately. I would hazard to guess that nobody is depending on int.min
>> being greater than 0.
>>
>>> Also AFAICT no one has submitted a PR to fix the issue you referenced, so
>>> it's a hypothetical question (for now).
>>
>>
>> I would suggest to would-be fixers, just do the correct thing that may be
>> less performant, and we can worry about optimizing later (and add a unit
>> test of course!). There is nothing worse than a compiler that doesn't emit
>> the code you expect it to.
>>
>> -Steve


More information about the Digitalmars-d-announce mailing list