[Issue 20533] New: static immutable variable broken on windows-x86-dmd
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Jan 26 03:09:24 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=20533
Issue ID: 20533
Summary: static immutable variable broken on windows-x86-dmd
Product: D
Version: D2
Hardware: x86
OS: Windows
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: zan77137 at nifty.com
When using dub as a library, I encountered a strange phenomenon that can only
be reproduced in a windows-x86-dmd environment.
Following is a batch process that reproduces this phenomenon:
------
PATH=C:\D\dmd-2.090.0\windows\bin;%PATH%
dub init . dub -t minimal -f json -n -q
echo import std.stdio, dub.dub; > source\app.d
echo unittest { >> source\app.d
echo auto dub = new Dub("."); >> source\app.d
echo dub.loadPackage(); >> source\app.d
echo writeln(dub.project.rootPackage.version_.toString()); >> source\app.d
echo } >> source\app.d
echo void main() {} >> source\app.d
dub test -a=x86 --coverage -f
------
According to my research, the static immutable variable
`dub.dependency.Version.masterBranch`, which is referred to when determining
the root package version when during `dub.loadPackage()`, is broken for some
reason. (Curiously the string "dub.json" is referenced)
--- dub.package_ ---
106: // TODO: Assume unknown version here?
107: // recipe.version_ = Version.unknown.toString();
108: recipe.version_ = Version.masterBranch.toString();
--------------------
Following are some other reproduction conditions I have found:
- The same happens at least at 2.086.1 (I haven't looked elsewhere, but it
seems to be a potential problem)
- It is NOT reproduced when building without `--coverage`.
- It is NOT reproduced when building with `--build-mode=singleFile`.
- The address of dub.dependency.Version.masterBranch is different when it is
referenced between `dub.package_` and `source/app.d`
--
More information about the Digitalmars-d-bugs
mailing list