move std.{outbuffer,signals,socket,xml} to undeaD#5488
move std.{outbuffer,signals,socket,xml} to undeaD#5488wilzbach wants to merge 1 commit intodlang:masterfrom
Conversation
|
I'm against this as is, here's why:
|
|
We have good opportunities to improve the obsolescence/deprecation process. The fundamental rule should be: deprecation is accompanied by a better option. There should be a clear, simple, and well-documented migration path from the deprecated facilities to the new ones. There would be reasonable exceptions if e.g. the deprecated facility was hardly used etc. I've said a number of times (sorry for repeating myself) that we should predate a deprecation cycle by a marginalization process, meaning the documentation has special interior design and UX for features that are still working, but are not the preferred way to do things. Documentation should clarify which better facilities are preferable. That's always the right step. This really does need to happen, can I please summon @MartinNowak and @CyberShadow to help with that. So let's get better things available before deprecating the not-so-nice things. Thanks. |
|
We should wait until we have some semi-decent replacements for these, otherwise a lot of code will be just broken. To @lodo1995 : Please, hurry up with your project, a faster XML parser would be a pretty good thing for the whole D language. |
Pretty sure that's fallacious, and might contribute to the replacement being rushed.
This will break essentially all D programs that do anything network-related, including even Vibe.d. |
Not unless undeaD becomes included with the language - otherwise, there is package management configurations to deal with. If your project is not using Dub, now it either must, or deal with undeaD's directory structure that precludes using it as a package submodule. Many projects which depended only on things in Phobos will now require additional dependencies to build. Etc. I could see projects being updated with a reasonable amount of effort to get by without std.signals (which hails from the D1 days, before closures) or std.outbuffer (same, predates appender), but there's no easy way to replace std.xml (without new third-party dependencies) or std.socket (at all). |
|
Related: we may be able to help the deprecation of the string pattern matching by means of changelog and documentation examples. |
|
@andralex Yes, that's on my todo list this weekend. |
|
Point was we're not seeing decent replacements, making space would hopefully be encouraging to contributors. As long as new people keep using std.xml and std.socket, we're causing more grief and accumulate more crappy D legacy code in our ecosystem. Yes, marking modules unstable/outdated/deprecated as is done in NodeJS's documentation is simple and effective to inform people. |
That's a hypothesis. What evidence would substantiate it?
Great, I think starting with documentation should be the official way of implementing all deprecations. |
Okay, I gave this a try: dlang/dlang.org#1778 |


http://forum.dlang.org/post/frhctqkzdsiojivpqqap@forum.dlang.org
I think this is a good list to start from 👍
Users should have more than enough time to switch to undeaD and it's really as simple as
sed -E 's/std[.](outbuffer|signals|socket|xml)/undead.\1/' -i **/*.dSub PRS
CC @MartinNowak @andralex