Should "std.net.curl" be moved from Phobos to Deimos?

deadalnix deadalnix at gmail.com
Tue Nov 26 15:03:52 PST 2013


On Tuesday, 26 November 2013 at 19:06:26 UTC, Andrei Alexandrescu 
wrote:
> On 11/25/13 10:53 PM, H. S. Teoh wrote:
>> On Tue, Nov 26, 2013 at 06:44:03AM +0100, Jesse Phillips wrote:
>> [...]
>>> I don't think I understand having to build dmd just because 
>>> you have
>>> a different distribution, Phobos maybe but dmd... Even for 
>>> Phobos
>>> I'm skeptical but am not going to install a different distro 
>>> to
>>> experiment myself.
>>
>> If you have used enough Linux distros (or even different 
>> versions of the
>> same distro!), you will realize that all it takes is for a 
>> single shared
>> library on the system to be a different version, missing, or 
>> just the
>> same version built with different compiler flags, and the 
>> executable
>> will not work. Not to mention that filesystem layout can be 
>> different
>> across distros (and versions of the same distro), which will 
>> break
>> things.
>>
>> Basically, to guarantee a program runs on distro X, the only 
>> way is it
>> has to be built from source. If you're lucky, somebody else 
>> has already
>> done that, and you can just download the binary. (Or better 
>> yet,
>> somebody packaged it for your distro, then you can just 
>> install it via
>> your system's package system.) But if not, you'll just have to 
>> do it
>> yourself.
>
> Do we with our std.net.curl make this matter any worse?
>
>>> If it is moved to a third party library, the problems will 
>>> still
>>> remain. If the Phobos team is expected to support it, then the
>>> burden hasn't shifted either.
>>
>> This I agree with. However, it misses the point. The point is 
>> that the
>> core D toolchain (dmd/phobos/druntime) would have one less 
>> dependency,
>> which is generally a good thing, because you want to make it 
>> as easy as
>> possible for people to get a working compiler up and running.
>
> But my understanding is that the dependency is conditional, 
> i.e. you have no dependency on libcurl unless you attempt to 
> use std.net.curl. Which strikes me as entirely reasonable. No?
>
>> Requiring
>> this library and that library and that other tool, just to get 
>> a bare
>> bones D toolchain working, is a good way to turn people off D.
>
> Bare bones == no std.net.curl. No?
>
>> If a bare
>> bones D compiler is actually working, then they'd have more 
>> incentive to
>> actually put in more effort to make the frills work too. 
>> Having a hello
>> world program be uncompilable just because libcurl isn't 
>> available, is a
>> very bad first impression ("why does this stupid language need 
>> libcurl
>> just to compile a hello world program?!").
>
> My understanding is that a missing or broken libcurl does not 
> break hello world. Is that correct?
>
> As a note regarding my many messages in this thread: I decided 
> to get to the bottom of this given that I've asked "what is 
> exactly the problem with libcurl" and all I got was unclear 
> answers.
>
>
> Thanks,
>
> Andrei

In some cases, it can prevent the whole stuff to link. Otherwise, 
hello world should simply work.


More information about the Digitalmars-d mailing list