Release D 2.087.0

uranuz neuranuz at gmail.com
Sun Jul 7 12:49:14 UTC 2019


On Sunday, 7 July 2019 at 10:09:50 UTC, Johannes Pfau wrote:
> Am Sun, 07 Jul 2019 08:06:57 +0000 schrieb uranuz:
>
>> After updating compiler to 2.087 I got a lot of deprecation 
>> warnings
>> linked to std.json module. I have found all of the usages of 
>> deprecated
>> symbols in my project and changed them to the new ones. All 
>> these
>> warnings are about changing JSON_TYPE to JSONType 
>> JSON_TYPE.STRING to
>> JSONType.string and etc...
>> But after eleminating deprecated symbols from my project I 
>> still have
>> deprecation warnings. Seems that these symbols being accessed 
>> from
>> Phobos, because I am pretty sure that I don't have other 
>> external
>> dependencies that use std.json. The problem it that because of 
>> this
>> `spamming` messages I can miss `real` deprecation warnings. Is 
>> there
>> some way to `fix` it? The is some part of compiler output (all 
>> of it is
>> too long): /usr/include/dmd/phobos/std/conv.d(987,34): 
>> Deprecation: enum
>> member `std.json.JSONType.INTEGER` is deprecated - Use .integer
>> /usr/include/dmd/phobos/std/conv.d(987,34): Deprecation: enum 
>> member
>
>
> I think phobos does not explicitly use these deprecated 
> symbols, but the reflection code in format triggers the 
> deprecation messages:
>
> import std.json, std.stdio;
> void main()
> {
>     JSONType c;
>     writefln("%s", c);
> }
>
> I'm not sure if this can be solved, maybe deprecated members 
> can be explicitly ignored in format, but maybe the reflection 
> code itself is triggering the deprecation (which would then 
> probably be a DMD bug).

Yes. It looks like it, because seems that `format` and `conv` use 
the same approach to convert data to string and in process of 
iterating reflection code `touches` deprecated symbols and it 
`starts to smell`... Maybe some special `compilation context` 
should exists where these deprecation warnings are ignored or 
ignore them when we access or iterate symbols using __trait(...)

Should I file a bugreport?


More information about the Digitalmars-d-announce mailing list