Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
June 12, 2014 one of the weirdest bugs ever - request for testing | ||||
---|---|---|---|---|
| ||||
hi, i just run into a (wrong code gen?) bug that manifests itself only under certain conditions. before i file it, i'd like to know if it is still around in the latest DMD version and/or if other platforms and 64bit code is affected as well. bug description: std.algorithm.countUntil fails to find the needle my system: DMD 2.0642 compiling into 32bit code on Win7 64bit required conditions: compile with -release -inline -noboundscheck (an additional -O will also cause the bug) AND the module imports std.file /det ---- import std.stdio; import std.algorithm; import std.file; // not needed, but if imported, causing trouble, see below void main() { auto names = ["one","FOO","two","three"]; // wrong code gen(*) with -release -O -inline -noboundscheck or // with -release -inline -noboundscheck but only if std.file is imported: auto x = countUntil( names, "FOO" ); write(x); if( 0 <= x ) writeln(" found a FOO"); // (*) not found! } |
June 12, 2014 Re: one of the weirdest bugs ever - request for testing | ||||
---|---|---|---|---|
| ||||
Posted in reply to captaindet | On 6/12/14, 3:20 PM, captaindet wrote:
> import std.stdio;
> import std.algorithm;
> import std.file; // not needed, but if imported, causing trouble, see
> below
>
> void main()
> {
> auto names = ["one","FOO","two","three"];
>
> // wrong code gen(*) with -release -O -inline -noboundscheck or
> // with -release -inline -noboundscheck but only if std.file is imported:
>
> auto x = countUntil( names, "FOO" );
> write(x);
> if( 0 <= x ) writeln(" found a FOO"); // (*) not found!
> }
I'm running OSX Mavericks with DMD v2.065.0. This behavior cannot be reproduced.
|
June 12, 2014 Re: one of the weirdest bugs ever - request for testing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Edwards | >> // wrong code gen(*) with -release -O -inline -noboundscheck or
>> // with -release -inline -noboundscheck but only if std.file is imported:
>>
>> auto x = countUntil( names, "FOO" );
>> write(x);
>> if( 0 <= x ) writeln(" found a FOO"); // (*) not found!
>> }
>
>
> I'm running OSX Mavericks with DMD v2.065.0. This behavior cannot be reproduced.
Linux, 64bits, DMD v2.065.0
Works OK for me ("1 found a FOO"), with or without importing std.file and compiling with -release -inline -noboundscheck
|
June 12, 2014 Re: one of the weirdest bugs ever - request for testing | ||||
---|---|---|---|---|
| ||||
Posted in reply to captaindet | On 2014-06-12 14:20, captaindet wrote:
> before i file it, i'd like to know if it is still around in the
> latest DMD version and/or if other platforms and 64bit code is
> affected as well.
thanks andrew, philippe,
i had the suspicion that it is a windows only problem anyway because the only thing that an unused std.file would do is pulling a lot of windows specific stuff (on my system).
if now someone could test this with the current DMD on windows, 64 and 32 bit executables...
/det
|
June 12, 2014 Re: one of the weirdest bugs ever - request for testing | ||||
---|---|---|---|---|
| ||||
Posted in reply to captaindet | On Thursday, 12 June 2014 at 22:14:23 UTC, captaindet wrote:
> On 2014-06-12 14:20, captaindet wrote:
>
>> before i file it, i'd like to know if it is still around in the
>> latest DMD version and/or if other platforms and 64bit code is
>> affected as well.
>
> thanks andrew, philippe,
>
> i had the suspicion that it is a windows only problem anyway because the only thing that an unused std.file would do is pulling a lot of windows specific stuff (on my system).
>
> if now someone could test this with the current DMD on windows, 64 and 32 bit executables...
>
> /det
No problems with 2.065 on win, both 32 and 64 bit.
|
June 12, 2014 Re: one of the weirdest bugs ever - request for testing | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rene Zwanenburg | On 2014-06-12 17:27, Rene Zwanenburg wrote:
> On Thursday, 12 June 2014 at 22:14:23 UTC, captaindet wrote:
>> On 2014-06-12 14:20, captaindet wrote:
>>
>>> before i file it, i'd like to know if it is still around in the
>>> latest DMD version and/or if other platforms and 64bit code is
>>> affected as well.
>>
>> thanks andrew, philippe,
>>
>> i had the suspicion that it is a windows only problem anyway because the only thing that an unused std.file would do is pulling a lot of windows specific stuff (on my system).
>>
>> if now someone could test this with the current DMD on windows, 64 and 32 bit executables...
>>
>> /det
>
> No problems with 2.065 on win, both 32 and 64 bit.
great, thanks,
so no need to file a bug report.
some other bugfix seemed to have taken care of the issue alongside. (in the meantime i had the bug confirmed on another win7/64 machine, however, using DMD2.0642 again.)
hopefully it is still fixed in 2.066 which will be my next upgrade step once it is out.
/det
|
Copyright © 1999-2021 by the D Language Foundation