On Thursday, 12 May 2016 at 21:08:58 UTC, Matthias Klumpp wrote:
To elaborate a bit more on the version incompatibilities thing:
E.g. me as a new user reads about std.concurrency.Generator,
wants to use it, and it turns out that the standard library
doesn't contain it yet (in GDC). Same for
std.experimental.logger.
Okay, means I can't use these.
I haven't tried myself for these, but it might turn out to be not
so much work just to copy the relevant files over and clean up
the rough edges if you want to use these in GDC/LDC. But I know
that it's harder and a nuisance if you aren't that familiar with
the language and just want to get your job done.
Then, I want to use D-YAML, which depends on std.stream. But
std.stream is completely deprecated, with no clear path for me
to see to replace it. That's really bad, and it also means I
can't compile my code with making the use of deprecated stuff
fail the compilation.
https://github.com/DigitalMars/undeaD/blob/master/src/undead/stream.d
You might want to submit a pull request so D-YAML depends on this
(where removed parts of Phobos go to live) rather than std.stream.
That was by far the most frustrating things I experienced in D.
So ideally the docs would be split for different Phobos
versions, that would already be a great help. Then, when
deprecating stuff, showing a thing that replaces it or the
proper way to write code using it would also be really nice.
I agree.
It would actually be really awesome if Phobos wasn't tied to a
compiler, and all D compilers which are standard-compliant
could compile it. Then, one could assume that people have the
most recent Phobos. But it looks like it will take a longer
time to get there, if at all.
A matter of maturity and resources. It's quite astonishing the
value that the small number of people working on LDC and GDC have
been able to create. (DMD too, but there are more people).
Maybe there ought to be a way to express concrete appreciation
for their work.