A strange div bug on Linux x86_64, (both dmd & ldc2): long -5000 / size_t 2 = 9223372036854773308

mw mingwu at gmail.com
Fri Aug 14 00:13:01 UTC 2020

On Friday, 14 August 2020 at 00:04:55 UTC, H. S. Teoh wrote:
> On Thu, Aug 13, 2020 at 11:54:57PM +0000, mw via Digitalmars-d 
> wrote:
>> On Thursday, 13 August 2020 at 23:47:30 UTC, Walter Bright 
>> wrote:
> [...]
>> > The thing about checkedint is there are several different 
>> > behaviors one might choose as responses to overflow. There 
>> > is no one-size-fits-all, if we did pick one we'll inevitably 
>> > have complaints.
> [...]
>> If we choose this approach, the hook can also have its own 
>> command line option to let the user in explicit full control 
>> of what the integer operation behavior s/he really wants for 
>> his/her application.
> [...]
> The application can just use CheckedInt instantiated with 
> whatever preferences it wants to. Define an alias to that in a 
> common module and import that, and you're good to go:
> 	alias Int = CheckInt!(... /* whatever settings you want here 
> */);

This doesn’t work for language buildins array.length.

> What we do *not* want is a compiler switch that will silently 
> change the meaning of existing code. Imagine the chaos if you 
> compiled your application with -int-behaviour=blahblah, and 
> suddenly all of your dub dependencies start misbehaving because 
> their code was written with the standard rules in mind, and

I saw that problem already, that’s why I also said :  “in 
modules, that users also specified on command-line”.

Now on a 2nd thought, on the module file level , let user specify 
at the top.

More information about the Digitalmars-d mailing list