On Saturday, 15 September 2018 at 23:06:57 UTC, Jonathan M Davis
wrote:
On Saturday, September 15, 2018 6:54:50 AM MDT Josphe Brigmo
via Digitalmars-d wrote:
On Saturday, 15 September 2018 at 12:38:41 UTC, Adam D. Ruppe
wrote:
> On Saturday, 15 September 2018 at 10:57:56 UTC, Josphe Brigmo
>
> wrote:
>> Phobos *NEEDS* to be modified to work with these newer OS's.
>
> You need to look at the source code before posting. The code
> for remove is literally
>
> DeleteFileW(name);
>
> it is a one-line wrapper, and obviously uses the unicode
> version.
>
> https://github.com/dlang/phobos/blob/master/std/file.d#L1047
It doesn't matter, the fact is that something in phobos is
broke. Do you really expect me to do all the work? The fact
that using executeShell or "\\?\" solves 90% of the
problems(maybe all of them) proves that phobos is not up to
par.
Using std.file should be on par with using the Windows API from
C or C++. It doesn't try to fix the arguably broken behavior of
the Windows API with regards to long paths but requires that
the programmer deal with them just like they would in C/C++.
The main differences are that the std.file functions in
question use D strings rather than C strings, and they
translate them to the UTF-16 C strings for you rather than
requiring you to do it. But they don't do anything like add
"\\?\" for you any more than the Windows API itself does that.
If you consider that to be broken, then sorry. For better or
worse, it was decided that it was better to let the programmer
deal with those intricacies rather than trying to tweak the
input to make it work based on the idea that that could have
undesirable consequences in some circumstances. On some level,
that does suck, but the Windows API does not make it easy to
make this work like it would on a *nix system without
introducing subtle bugs.
Do you not realize how moronic that is though? You are expecting
each user to know the correct behavior and to compensate for it.
With that approach all you are doing is creating a whole mess of
problems.
See, there is only one phobos but many users of phobos. You are
expecting every single user to deal with it instead of dealing
with it in one place.
Your reason is because "It's a problem with windows".
Both are "We'll just kick the can down the road cause the other
guy kicked it to us".
Now, this is great if you want repeat customers and don't care
about their sanity but terrible to make progress.
If you find that the std.file functions don't work whereas
using the same input to the Windows API functions in C/C++
would have, then there's a bug in the D code, and it needs to
be fixed, but if it acts the same as the C/C++ code, then it's
working as intended.
And that is precisely the problem. For some reason you don't get
that because it is broke in windows, and you following windows,
you are just perpetuating the "brokeness". This is why D sucks
the way it does, because of these types of mentalities of "It's
not our problem".
You basically expect the customers, before eating to wash the
dishes, cook the meal, set the table, etc. All you do is provide
the food, and not all that great food... and when they are done
you expect them to wash the dishes against, clean up their mess,
and pay the bill.
I'm sure you'll never realize how wrong your mentality is, but at
least you could do everyone a favor and think about what you are
actually saying. Your logic might have a valid reason, but it is
not producing the results that make the world a better place.
D won't ever get any traction with the wrong mentalities and I
don't even know how it has made it this far.
Trust me, if you expect the user to know everything and also
solve all the problems over and over and over and over, you will
have very few users.
But, keep on doing what your doing, it's worked so well, we will
see how far it gets D.
If D is as perfect as you think it is, why isn't everyone jumping
on board? I know, you have answers for that one too!