[darcs-users] darcs patch: Add --debug-http flag to enable curl and... (and 3 more)

Gwern Branwen gwern0 at gmail.com
Thu Aug 14 00:43:31 UTC 2008


On 2008.08.13 17:17:44 +0400, Dmitry Kurochkin <dmitry.kurochkin at gmail.com> scribbled 1.9K characters:
> On Wed, Aug 13, 2008 at 4:58 PM, Gwern Branwen <gwern0 at gmail.com> wrote:
,,,
> > The bad news though is that this seems to completely break profiling support under GHC 6.8.2.
> >
> > That is,
> >
> > $ make clean && ./configre --prefix=/home/gwern/bin --enable-profile --with-curl-pipelining && make install -j10
> >
> > leads to:
> >
> > gwern at craft:16499~>http_proxy="" HTTP_PROXY="" =darcs get http://allmydata.org/source/tahoe/trunk                     [ 8:56AM]
> >
> > darcs failed:  Not a repository: http://allmydata.org/source/tahoe/trunk (RTS doesn't support multiple OS threads (use ghc -threaded when linking))
> >
> > This may or may not be a 6.8.2 specific issue, being unable to compile with profiling and threading, but it's definitely a problem of interest to me. If it got fixed in 6.8.3, maybe we don't want to do anything (but we'd still need some doc mentions, I think).
>
> I never did profiling but looks like the problem is that URL module
> now uses forkOS (and blocks in select() there for curl at least). I
> have found this in GHC 6.8.3 release notes[1]:

Actually, while we're on the topic: why does URL.hs now use forkOS? Darcs uses forkIO, usually, which is the standard Haskell practice. It can't be for performance: I replaced forkOS with forkIO and tested it with 4 darcs gets of the Tahoe repo, and they all clocked in at 24-27 minutes (the same as with forkOS).

> # You can now use the -prof and -threaded flags together, although you
> cannot also use +RTS -N2.
>
> Does this fix the problem? There is no GHC 6.8.3 in debian at the
> moment. And I do not feel like compiling it by hand.
>
> Regards,
>   Dmitry
>
> [1] http://www.haskell.org/ghc/docs/6.8.3/html/users_guide/release-6-8-3.html

That may've been what I'm thinking of. I don't have 6.8.3 in Ubuntu either. So what's the thing to do? Just leave it in the documentation for that rare developer who wants to profile? ('Warning, threading and profiling are mutually exclusive in 6.8.2 - that means pipelining too.') Add some (more) configure checks?

--
gwern
SDIS 36800 counter watchers WANK captain CTP GNU Keyer my
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.osuosl.org/pipermail/darcs-users/attachments/20080813/db1278e4/attachment.pgp 


More information about the darcs-users mailing list