Issues ... Edition 87

Benjiro benjiro at benjiro.com
Sun Sep 29 11:23:04 UTC 2019


Going on the back of the Nim topic that has gone off-topic.

Code Example:

> #!/usr/bin/env dub
> /+ 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 dub

Step 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".


More information about the Digitalmars-d mailing list