November 26, 2013
On 11/26/13 12:21 PM, Dicebot wrote:
> On Tuesday, 26 November 2013 at 20:10:19 UTC, Andrei Alexandrescu wrote:
>>> As many have mentioned before. Everything (in this case Phobos) should
>>> be built on the same platform as it is shipping. So we needed specific
>>> releases for each Linux distribution we want to support.
>>
>> OK, thanks. That seems like something approachable from our end. Is
>> this a common approach among other language distributions, e.g.
>> python, ruby, go, rust etc. etc? What is a list of platforms we need
>> to support?
>
> I have already linked Python example - they provide only source tarballs
> for Linux, no binary distribution. It is assumed that Linux way of
> getting stuff is either using native package manager or compiling manually.
>
> One can try to prepare archives for every distro separately but it
> hardly scales. First, you need to decide how many you would like to
> support (few? dozens? hundreds?) Second, those will always be inferior
> to packages supplied from native repository (assuming active maintainer)
> - it is a pretty time-consuming job to do this right and no build czar
> can do it for dozens of platforms at once.
>
> I really think providing just source + single additional .deb package as
> an example is the best way to go.

Well we kind of do that already. No?

Andrei

November 26, 2013
On Tuesday, 26 November 2013 at 19:40:10 UTC, Andrei Alexandrescu wrote:

> [...] and presumably quite a few people who do use std.net.curl without troubles and don't know we plan to pull the plug on it. [...]

That's me! It works for me and my company.
November 26, 2013
On Tuesday, 26 November 2013 at 21:04:31 UTC, Andrei Alexandrescu wrote:
> On 11/26/13 12:21 PM, Dicebot wrote:
>> I really think providing just source + single additional .deb package as
>> an example is the best way to go.
>
> Well we kind of do that already. No?

The issue is (mainly) with people expecting the binaries from the official .zip file to work on all Linux platforms.

David
November 26, 2013
> On 11/26/13 12:06 PM, Jacob Carlborg wrote:
>> As many have mentioned before. Everything (in this case Phobos) should
>> be built on the same platform as it is shipping. So we needed specific
>> releases for each Linux distribution we want to support.

On Tuesday, 26 November 2013 at 20:10:19 UTC, Andrei Alexandrescu wrote:
> OK, thanks. That seems like something approachable from our end. Is this a common approach among other language distributions, e.g. python, ruby, go, rust etc. etc?

(Greetings all.  I just started using D yesterday.)

Languages that are entirely open source and popular just publish their source code, and the Linux distributions compile, package and distribute those languages.

For example, if you look at Debian's Python3 package, you can see who the package maintainers are (right column, part way down):
http://packages.debian.org/wheezy/python3

The Debian Python3 package maintainers may (or may not) work on Python itself.

I believe that parts of DMD are closed source, which may create some level of barrier (both technological and ideological) to distributing DMD (and its libraries) in the standard Linux fashion.
November 26, 2013
On Tuesday, 26 November 2013 at 21:12:23 UTC, Andrea Fontana wrote:
> On Tuesday, 26 November 2013 at 19:40:10 UTC, Andrei Alexandrescu wrote:
>
>> [...] and presumably quite a few people who do use std.net.curl without troubles and don't know we plan to pull the plug on it. [...]
>
> That's me! It works for me and my company.

It's worked fine for me as well.

I also don't quite see why the same backwards compatibility requirements as for the rest of Phobos shouldn't apply here. If libcurl is deemed to be an unacceptable dependency, then it should be possible to provide an API-compatible reimplementation for at least the parts not directly exposing the libcurl interface.

David
November 26, 2013
On Tuesday, 26 November 2013 at 16:39:50 UTC, Andrei Alexandrescu wrote:
> The problem is that "long ago" adding libcurl seemed like a perfectly reasonable option, particularly considering that we didn't (and we don't) have anything to replace it.

Meh, doing the http and smtp stuff isn't rocket science. I did a little http library in ~300 lines on my github that some D programmers who don't want curl use. Uses openssl for https. curl isn't exactly bug free either - I found one a few weeks ago on a random stack overflow question about php!

That said, I think curl is ok, we should just bundle it with phobos better.
November 26, 2013
Personally I have always thought of std.net.curl as a temporary solution until a native implementation in D could be created. But I was also fully aware that people were not standing in line to make a native one and that we needed something else in the meantime. That is why I implemented it in the first place.

So until there is a proper replacement in phobos I really think it should stay, since a standard library really should include networking support out of the box IMHO.

/Jonas
November 26, 2013
On Tuesday, 26 November 2013 at 21:23:05 UTC, Adam D. Ruppe wrote:
> On Tuesday, 26 November 2013 at 16:39:50 UTC, Andrei Alexandrescu wrote:
>> The problem is that "long ago" adding libcurl seemed like a perfectly reasonable option, particularly considering that we didn't (and we don't) have anything to replace it.
>
> Meh, doing the http and smtp stuff isn't rocket science. I did a little http library in ~300 lines on my github that some D programmers who don't want curl use.

Yes - basic http, smtp is easy. But have a look at the libcurl API docs and think about how many lines it would take to implement that in D.

November 26, 2013
On 11/26/13 1:33 PM, Jonas Drewsen wrote:
> On Tuesday, 26 November 2013 at 21:23:05 UTC, Adam D. Ruppe wrote:
>> On Tuesday, 26 November 2013 at 16:39:50 UTC, Andrei Alexandrescu wrote:
>>> The problem is that "long ago" adding libcurl seemed like a perfectly
>>> reasonable option, particularly considering that we didn't (and we
>>> don't) have anything to replace it.
>>
>> Meh, doing the http and smtp stuff isn't rocket science. I did a
>> little http library in ~300 lines on my github that some D programmers
>> who don't want curl use.
>
> Yes - basic http, smtp is easy. But have a look at the libcurl API docs
> and think about how many lines it would take to implement that in D.

It seems it's one of those cases in which from proof of concept to bells & whistles there's a long way.

Andrei

November 26, 2013
On Tuesday, 26 November 2013 at 21:33:50 UTC, Jonas Drewsen wrote:
> But have a look at the libcurl API docs and think about how many lines it would take to implement that in D.

Meh, I don't think I've ever needed any of it. Set header and request data is enough to do anything on http.