A valid code that won't run?

cym13 via Digitalmars-d digitalmars-d at puremagic.com
Fri Apr 24 14:47:49 PDT 2015


On Friday, 24 April 2015 at 21:42:43 UTC, Daniel Kozak wrote:
>
> On Fri, 24 Apr 2015 16:52:16 -0400
> Steven Schveighoffer via Digitalmars-d 
> <digitalmars-d at puremagic.com> wrote:
>
>> On 4/24/15 4:36 PM, Dicebot wrote:
>> > On Friday, 24 April 2015 at 20:27:28 UTC, Steven 
>> > Schveighoffer wrote:
>> >> If pragma(lib, "libcurl"); doesn't work normally, then we 
>> >> should
>> >> remove std.net.curl, and put it in dub.
>> >
>> > It was a historical mistake, discussed many time over and 
>> > over. Yes, it
>> > shouldn't be in Phobos. No, we can't remove it now that 
>> > easily.
>> 
>> deprecated("Please use dub for curl");
>> module std.net.curl
>> 
>> // this will cause an error until you install the binding, 
>> then you can
>> // go through your imports and update them.
>> public import some.dub.project;
>> 
>> > As for pragma(lib) - it can never work "normally". Linking 
>> > 3d-party
>> > libraries is very platform-specific task that causes great 
>> > deal of
>> > complexity in build systems. It can't be replaced by a 
>> > single trivial
>> > compiler pragma. There is a reason nothing but Windows build 
>> > of DMD
>> > supports it.
>> 
>> You are right about not having pragma(lib anywhere but 
>> windows, but we do depend on 3rd party libs -- libc, libm, 
>> librt, etc. They are just always in the right places.
>> 
>> I'm not quite sure where libcurl would be except /usr/lib, and 
>> why -L-lcurl wouldn't work (and therefore pragma(lib ). Seems 
>> like all the issues are for people who custom-build or 
>> custom-install libcurl.
>
> everywher with even diferent name
>
>> 
>> But I'm not really concerned about that. AFAIK, we have no 
>> other 3rd party dependencies like this, std.net.curl sticks 
>> out blatantly as something that was done in error, and we 
>> should correct it.
>
>> -Steve
>
> Yes, but how? We maybe can reimplement all funcionality :D, any 
> takers?

Reimplementing sure sounds like the best long-term way to go...
Maybe we don't need all libcurl features, we could provide a basic
set for 80% of use-cases and advanced users would use the
newly-non-standard libcurl binding.


More information about the Digitalmars-d mailing list