digitalmars.D - Issues ... Edition 87
- Benjiro (60/238) Sep 29 2019 No mention this needs to be run with dub, instead of dmd.
- JN (18/30) Sep 29 2019 Well, it has shebang line #!/usr/bin/env dub in the beginning.
- nkm1 (2/3) Sep 29 2019 What a whily post LOL...
- dayllenger (2/9) Sep 29 2019 https://github.com/dlang/dlang.org/pull/2705
- Carsten Schlote (24/24) Oct 10 2019 Or even simpler code like this:
- FeepingCreature (8/19) Oct 10 2019 This is a known issue with deprecated enum members and the
- Carsten Schlote (8/14) Oct 10 2019 This "unfortunate interaction" is bad. It looks broken. Who
- FeepingCreature (8/11) Oct 10 2019 If we could solve every issue "first", we wouldn't have any bugs.
- Carsten Schlote (11/13) Oct 10 2019 Changed, tested, and seems to silence the deprecation messages
Going on the back of the Nim topic that has gone off-topic. Code Example:/+ dub.sdl: dependency "vibe-d" version="~>0.8.0" +/ void main() { import vibe.d; listenHTTP(":8080", (req, res) { res.writeBody("Hello, World: " ~ req.path); }); runApplication(); }No mention this needs to be run with dub, instead of dmd. Confusing as the other examples are dmd based. User friendliness: 3/5 Outputs: module dd;../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(79,8): Deprecation: alias std.json.JSON_TYPE is deprecated - Use JSONType ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(79,8): Deprecation: alias std.json.JSON_TYPE is deprecated - Use JSONType ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(215,9): Deprecation: enum member std.json.JSONType.NULL is deprecated - Use .null_ ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(216,9): Deprecation: enum member std.json.JSONType.OBJECT is deprecated - Use .object ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(223,9): Deprecation: enum member std.json.JSONType.ARRAY is deprecated - Use .array ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(226,9): Deprecation: enum member std.json.JSONType.STRING is deprecated - Use .string ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(227,9): Deprecation: enum member std.json.JSONType.INTEGER is deprecated - Use .integer ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(228,9): Deprecation: enum member std.json.JSONType.UINTEGER is deprecated - Use .uinteger ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(229,9): Deprecation: enum member std.json.JSONType.FLOAT is deprecated - Use .float_ ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(230,9): Deprecation: enum member std.json.JSONType.TRUE is deprecated - Use .true_ ../.dub/packages/vibe-d-0.8.5/vibe-d/data/vibe/data/json.d(231,9): Deprecation: enum member std.json.JSONType.FALSE is deprecated - Use .false_ ../.dub/packages/diet-ng-1.6.0/diet-ng/source/diet/parser.d(787,6): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. ../.dub/packages/diet-ng-1.6.0/diet-ng/source/diet/parser.d(788,29): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/range/primitives.d(1264,26): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/range/primitives.d(1021,27): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/range/primitives.d(1553,38): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/range/primitives.d(2185,15): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/algorithm/iteration.d(598,9): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/algorithm/iteration.d(604,20): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. /usr/include/dmd/phobos/std/algorithm/iteration.d(624,20): Deprecation: function std.typecons.Nullable!(Node[]).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/client.d(857,18): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/client.d(947,18): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/proxy.d(169,30): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/proxy.d(180,24): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/proxy.d(195,30): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/proxy.d(207,23): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/server.d(923,24): Deprecation: function std.typecons.Nullable!(CookieValueMap).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/server.d(936,38): Deprecation: function std.typecons.Nullable!(DictionaryList!(string, true, 16LU, false)).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/server.d(1015,18): Deprecation: function std.typecons.Nullable!(DictionaryList!(string, true, 16LU, false)).Nullable.get_ is deprecated - Implicit conversion with alias Nullable.get this will be removed after 2.096. Please use .get explicitly. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/server.d(1706,18): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/server.d(2337,17): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/http/vibe/http/server.d(2287,18): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/mail/vibe/mail/smtp.d(214,24): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/mongodb/vibe/db/mongo/settings.d(130,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/web/vibe/web/rest.d(1847,18): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/web/vibe/web/rest.d(1876,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/web/vibe/web/rest.d(1883,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(174,38): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. /usr/include/dmd/phobos/std/range/primitives.d(176,27): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead. ../.dub/packages/vibe-d-0.8.5/vibe-d/utils/vibe/utils/dictionarylist.d(77,22): Deprecation: alias byKeyValue this is deprecated - Iterate over .byKeyValue instead.Exactly what a new users wants to see. Not one or two missed issues but a boatload. User first impression: 1/5 This took me less then 10 minutes to find these issues just using a few of the official examples on the front page. I do not even dare to touch the others. Downloads: As stated in the nim topic:1. sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list 2. sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring 3. sudo apt-get update && sudo apt-get install dmd-compiler dubStep 2 does not work because the first " sudo apt-get update" has no "--allow-unauthenticated install "... User friendliness: 4/5 User first impression: 0/5 I am sure by just going over the examples and code everywhere, its easy to find issues but is it the task for any newbie to run into those? --------------------------------- Its fun for people to whine why D is looked upon as negative or why it does not grow like other languages. But people never look past their own front door, to see how easy it is to scare away people with things that do not work or give warnings all over the place. Call me crazy but this is why i am a long time proponent that everything http like vibe.d needs to be part of the standard library like other languages have done ( go, crystal etc ) so warnings like this do not show up, as the code is kept in sync with the releases. And then people complain how they do not want a overly heavy standard library and rather have new users exposed to things like this. Its easier to whine about people being negative then actually proactive fixing the issues. For 3 years i have been following D. The deprecation pollution in 3th party packages has been reported here dozens of times because new D releases keep breaking things with every one or two versions. The issue with the 3th party download is also not new. Learn a lesson from Rust, who when they started out tested each and every package automatically and reported the issues to the crate maintainers. This deprecation is just depressing. But yea, i am "whining". Thanks for the tip fellow community member, while here i was thinking i am polite in the Nim 1.0 topic to mention the issues that plagued me so the D maintainers know how easy it is to scare away people. When i report the 3th party issue ( that lasted how many years! ), the last thing i needed was the next day to see a mail about how i am a whiner. Or some passive aggressive "your welcome!". When even Reddit feels like a nice place. *shakes head*... As i wrote in the Nim 1.0 topic. Get some fracking moderation and code of conduct. I'll check back in next year to mark my 4 year of finding out about D, and wonder how little this community will have actually changed beyond a few fix me ups. *sigh*... D, here are several issues to solve ... Your welcome to fix them! See you next year for the next "whining".
Sep 29 2019
On Sunday, 29 September 2019 at 11:23:04 UTC, Benjiro wrote:No mention this needs to be run with dub, instead of dmd. Confusing as the other examples are dmd based.You can save it as an executable file on Linux and it will run with dub.Exactly what a new users wants to see. Not one or two missed issues but a boatload.Yeah, this looks a bit awkward. Perhaps only first occurence of deprecation issues should be showing up.Call me crazy but this is why i am a long time proponent that everything http like vibe.d needs to be part of the standard library like other languages have done ( go, crystal etc ) so warnings like this do not show up, as the code is kept in sync with the releases.vibe.d is a bit too high level for something that would be a part of stdlib. We have std.net.curl for bit of the low level stuff. I don't think anything higher level should be part of the standard needed.I'll check back in next year to mark my 4 year of finding out about D, and wonder how little this community will have actually changed beyond a few fix me ups. *sigh*...You're acting a bit spoiled. Outside of donations, there aren't any people working on D full-time, so no one owes you anything. Languages like Rust have people employed by Mozilla who work full-time on it. Paying people is a way to "force" people to work on the hard problems that no one would like to touch otherwise. Without it, people will work on the stuff they need and the itches they need to scratch.
Sep 29 2019
On Sunday, 29 September 2019 at 11:37:16 UTC, JN wrote:On Sunday, 29 September 2019 at 11:23:04 UTC, Benjiro wrote:What a whily post LOL...
Sep 29 2019
On Sunday, 29 September 2019 at 11:23:04 UTC, Benjiro wrote:https://github.com/dlang/dlang.org/pull/27051. sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list 2. sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring 3. sudo apt-get update && sudo apt-get install dmd-compiler dubStep 2 does not work because the first " sudo apt-get update" has no "--allow-unauthenticated install "...
Sep 29 2019
Or even simpler code like this: import std.json, std.stdio; void main() { JSONType c; writefln("%s", c); } This triggers lots of completely useless deprecation warnings. Obviously the code above is completely fine, and there is nothing (!) I could do to stop the compiler from emitting the completely useless messages. I try to use D at work, and convince my collegues of it. I started with some small scripts in our CI pipelines, as well as with some other small tools. Maybe we could rid of C++/Qt, Bash, PHP, Python and other evil things in our build chain. D could do it perfectly fine. but... It isn't expecially helpful for convincing people of the D language, if every update of the compilers is causing cryptic problems or piles of useless messages. IMHO that is worse than using C++, which is well known for emitting useless messages all and everywhere. I hope that such stuff is fixed ASAP, before I run out of good arguments for using D. Carsten
Oct 10 2019
On Thursday, 10 October 2019 at 11:15:20 UTC, Carsten Schlote wrote:Or even simpler code like this: import std.json, std.stdio; void main() { JSONType c; writefln("%s", c); } This triggers lots of completely useless deprecation warnings. Obviously the code above is completely fine, and there is nothing (!) I could do to stop the compiler from emitting the completely useless messages.This is a known issue with deprecated enum members and the EnumMembers template. There's a discussion about it ongoing on the frontpage of this very forum, but the problem is there's no clean way to fix it without changing the semantics of the language. It's an unfortunate interaction between language features that was hidden by a bug that was recently fixed.
Oct 10 2019
On Thursday, 10 October 2019 at 13:35:58 UTC, FeepingCreature wrote:This is a known issue with deprecated enum members and the EnumMembers template. There's a discussion about it ongoing on the frontpage of this very forum, but the problem is there's no clean way to fix it without changing the semantics of the language. It's an unfortunate interaction between language features that was hidden by a bug that was recently fixed.This "unfortunate interaction" is bad. It looks broken. Who want's to learn and use a language, which seems to be broken by unintended interactions of language features? Wouldn't it be much better to 'solve' the issue first, and then use deprecate on enum members without side-effects? Carsten
Oct 10 2019
On Thursday, 10 October 2019 at 13:45:10 UTC, Carsten Schlote wrote:Wouldn't it be much better to 'solve' the issue first, and then use deprecate on enum members without side-effects? CarstenIf we could solve every issue "first", we wouldn't have any bugs. :) When the enum members were deprecated, we had no idea the issue existed. If you want to undeprecate these members because they break EnumMembers, well, https://github.com/dlang/phobos , PR welcome.
Oct 10 2019
On Friday, 11 October 2019 at 05:01:24 UTC, FeepingCreature wrote:If you want to undeprecate these members because they break EnumMembers, well, https://github.com/dlang/phobos , PR welcome.Changed, tested, and seems to silence the deprecation messages for now. I just commented out the deprecatedion keywords and added a FIXME comment above to remind us to fix that issue asap. The deprecation on the type JSON_TYPE isn't removed. So any use of the old type name, should still cause a deprecation message. I presume, that the use of JSON_TYPE also implies use of the old member names. Therefore it is maybe enough to deprecate just the type alias and add some extra hint to the deprecation message to change the enum member names as well. Carsten
Oct 10 2019