CURL review request

dsimcha dsimcha at gmail.com
Tue Aug 16 11:49:37 PDT 2011


== Quote from jdrewsen (jdrewsen at nospam.com)'s article
> Den 16-08-2011 15:13, dsimcha skrev:
> > On 8/16/2011 7:48 AM, Jonas Drewsen wrote:
> >> Hi all,
> >>
> >> This is a review request for the curl wrapper. Please read the "known
> >> issues" in the top of the source file and if possible suggest a solution.
> >>
> >> We also need somebody for running the review process. Anyone?
> >>
> >> Code:
> >> https://github.com/jcd/phobos/blob/curl-wrapper/etc/curl.d
> >> Docs:
> >> http://freeze.steamwinter.com/D/web/phobos/etc_curl.html
> >>
> >> Demolish!
> >>
> >> /Jonas
> >
> >  From a quick look, this looks very well thought out. I'll review it
> > more thoroughly when I have more time. A few questions/comments from a
> > quick look at the docs:
> >
> > Does the async stuff use D threads, or does Curl have its own async API?
> It uses the spawn method from std.concurrency which uses D threads i think.
> > In your examples for postData, you have onReceive a ubyte[] and write it
> > out to console. Did you mean to cast this to some kind of string?
> Not really. It is just an example and writeln will output a byte array
> just fine.
> > For onReceive, what's the purpose of the return value?
> To specify the number of bytes that have been handled. If this is less
> that the entire buffer the rest of the request will fail. Additionally
> both the onSend and onReceive callbacks can return  CURL_WRITEFUNC_PAUSE
> pr CURL_READFUNC_PAUSE to pause the transfer. And onSend can return
> CURL_READFUNC_ABORT to abort as well. I see that the is missing from the
> docs... will add.
> >
> > If/when this module makes it into Phobos, are we going to start
> > including a libcurl binary with DMD distributions so that std.curl feels
> > truly **standard** and requires zero extra configuration?
> I think that would be convenient but don't believe it is the correct
> thing to do. In my opinion D modules that are not pure D or wrapping a
> system library (which libcurl is definitely not) should be the only ones
> allowed in the std package. Other wrappers in phobos should be in the
> etc package and the lib binaries should not be included.
> Just how I feel about it though. Anyone who disagrees?
> /Jonas

Ok, this makes more sense if we define the etc package to be wrappers and binding
for non-D libraries.  I thought this thing was going into std, in which case it
should feel, well, standard.  Is that officially how etc is defined?


More information about the Digitalmars-d mailing list