Thread overview
[phobos] WTF is curl doing in Phobos???
Aug 29, 2013
Don Clugston
Aug 29, 2013
Jonathan M Davis
Aug 29, 2013
Adam D. Ruppe
Sep 04, 2013
Sean Kelly
August 29, 2013
Now I cannot even build Phobos without libcurl.

I'm sorry, but this is insane.

I use curl with D professionally every day, and I just don't think curl is anywhere near mature enough to be in a standard library.

The implementation in Phobos seems very naive, and seems unaware of the shortcomings of curl. For example, curl can't handle a user name with a colon in it. (Some of our clients do indeed have user names with colons in them). We've found some very nasty bugs in its support for simultaneous downloads. It behaves badly with certain types of FTP servers. Etc.

Including it in Phobos implies a level of support that we cannot possibly provide.

Can we please move this into Deimos where it belongs?


August 29, 2013
On Thursday, August 29, 2013 10:04:52 Don Clugston wrote:
> Now I cannot even build Phobos without libcurl.
> 
> I'm sorry, but this is insane.
> 
> I use curl with D professionally every day, and I just don't think curl is anywhere near mature enough to be in a standard library.
> 
> The implementation in Phobos seems very naive, and seems unaware of the shortcomings of curl. For example, curl can't handle a user name with a colon in it. (Some of our clients do indeed have user names with colons in them). We've found some very nasty bugs in its support for simultaneous downloads. It behaves badly with certain types of FTP servers. Etc.
> 
> Including it in Phobos implies a level of support that we cannot possibly provide.
> 
> Can we please move this into Deimos where it belongs?

Well, std.net.curl has no business in Deimos, because Deimos is purely for C bindings (though etc.c.curl could go in Deimos), whereas std.net.curl is a D wrapper which adds functionality.

However, regardless of the maturity of libcurl, we clearly have been having problems with std.net.curl due to the fact that Windows doesn't come with libcurl, and we don't distribute it with Phobos. I think that it's pretty clear at this point that if std.net.curl were proposed now, it would likely not get accepted. So, the question then becomes whether removing it is worth the breakage and where it would go if we remove it, since we have no official place for anything like it. But maybe that means that someone (like its original developer) will have to just own the project at that point rather than having it be anywhere official.

Personally, I'm all for removing it given the problems that we've been having, but I don't know what the consensus on that would be. Walter doesn't like the fact that it's there, and he's usually the biggest opponent to breakage, so if he agrees that we can remove it, then I expect that there's a good chance that that's what we'll do.

- Jonathan M Davis
_______________________________________________
phobos mailing list
phobos@puremagic.com
http://lists.puremagic.com/mailman/listinfo/phobos

August 29, 2013
On 29/08/2013 10:04, Don Clugston wrote:
> Including it in Phobos implies a level of support that we cannot
> possibly provide.
>
> Can we please move this into Deimos where it belongs?

I agree, it should be removed, but not into Deimos.  It should be just like any other library, completely separate from the "official" D projects.

Lars

_______________________________________________
phobos mailing list
phobos@puremagic.com
http://lists.puremagic.com/mailman/listinfo/phobos

August 29, 2013
On Thu, Aug 29, 2013 at 01:16:07AM -0700, Jonathan M Davis wrote:
> So, the question then becomes whether removing it is worth the breakage and where it would go if we remove it, since we have no official place for anything like it.


We could minimize the breakage by moving it from std to etc (or something), so it is still there in the distribution, but opt-in for the end user.

All we'd have to do to keep using it is search for "import std.net.curl" and replace std with etc.

Then the build process would probably need to add the module, but that's not that hard, rdmd would even do it automatically (I think).


_______________________________________________
phobos mailing list
phobos@puremagic.com
http://lists.puremagic.com/mailman/listinfo/phobos

September 04, 2013
On Aug 29, 2013, at 1:04 AM, Don Clugston <dclugston@gmail.com> wrote:
> 
> The implementation in Phobos seems very naive, and seems unaware of the shortcomings of curl. For example, curl can't handle a user name with a colon in it. (Some of our clients do indeed have user names with colons in them). We've found some very nasty bugs in its support for simultaneous downloads. It behaves badly with certain types of FTP servers. Etc.

The API should certainly at least be in etc instead of std.  I'm inclined to say the same of std.zip too, though that is at least quite mature.
_______________________________________________
phobos mailing list
phobos@puremagic.com
http://lists.puremagic.com/mailman/listinfo/phobos