Movement against float.init being nan

Timon Gehr timon.gehr at gmx.ch
Wed Aug 31 01:43:23 UTC 2022


On 31.08.22 00:08, Walter Bright wrote:
> On 8/30/2022 9:25 AM, Salih Dincer wrote:
>> On Tuesday, 30 August 2022 at 16:16:38 UTC, Adam D Ruppe wrote:
>>> On Tuesday, 30 August 2022 at 15:50:48 UTC, Walter Bright wrote:
>>>> -release is for people who do speed benchmarks.
>>>
>>> The documentation should outright say then "never use this unless you 
>>> are cheating on an artificial speed benchmark".
>>
>> -release says use me in terms of meaning, but masters says don't use 
>> it. I didn't know it had such dire consequences. This is an issue that 
>> affects contract programming.
> 
> It's not dire.

I think the term is fitting. Contracts are meant to support correctness, 
not to help exacerbate vulnerabilities.

> It's just necessary to understand what's happening.

People do not understand this. People barely understand undefined 
behavior. E.g., there were presentations at dconf where people were 
like: "we tested it [the piece of code with UB] and it worked, hence it 
is correct".

A somewhat common use case is to disable contract/assert checking. Most 
people just assume that's what happens because introducing UB is not 
reasonable behavior.

> People who do speed benchmarks rarely do more than glance at the 
> documentation, if that.
> 

People who don't know how to use the language usually write slow code 
anyway. (And it often computes only NaNs.)


More information about the Digitalmars-d mailing list