Re: [Haskell] ANN: NoSlow - Microbenchmarks for array libraries

On Fri, 27 Nov 2009, Roman Leshchinskiy wrote:
You can get more information (including the ugly tables) from my blog
Btw. storablevector supports 'zip' using http://hackage.haskell.org/package/storable-tuple but you may also use 'zipWith' with an atomar result type for testing. I found that the dependency on Cairo and GTK originates from criterion. I have to build criterion with 'cabal install -f-chart criterion'. Unfortunately I cannot do 'cabal fetch criterion' in order to look into the cabal file, before the dependencies are resolved ...

On Fri, Nov 27, 2009 at 1:05 PM, Henning Thielemann < lemming@henning-thielemann.de> wrote:
I found that the dependency on Cairo and GTK originates from criterion. I have to build criterion with 'cabal install -f-chart criterion'. Unfortunately I cannot do 'cabal fetch criterion' in order to look into the cabal file, before the dependencies are resolved ...
Really? If cabal fetch runs the build depsolver before trying to download a package, that seems like a bug. Have you reported it?

On Sat, 2009-11-28 at 09:29 -0800, Bryan O'Sullivan wrote:
On Fri, Nov 27, 2009 at 1:05 PM, Henning Thielemann
wrote: I found that the dependency on Cairo and GTK originates from criterion. I have to build criterion with 'cabal install -f-chart criterion'. Unfortunately I cannot do 'cabal fetch criterion' in order to look into the cabal file, before the dependencies are resolved ...
Really? If cabal fetch runs the build depsolver before trying to download a package, that seems like a bug. Have you reported it?
It's not a bug, it's a feature! :-) Henning, you want "cabal unpack" so you can study the package contents. The fetch command is mainly so you can fetch packages and then install them when you're offline. You'd be jolly annoyed if it missed dependencies. Duncan

Duncan Coutts schrieb:
On Sat, 2009-11-28 at 09:29 -0800, Bryan O'Sullivan wrote:
On Fri, Nov 27, 2009 at 1:05 PM, Henning Thielemann
wrote: I found that the dependency on Cairo and GTK originates from criterion. I have to build criterion with 'cabal install -f-chart criterion'. Unfortunately I cannot do 'cabal fetch criterion' in order to look into the cabal file, before the dependencies are resolved ...
Really? If cabal fetch runs the build depsolver before trying to download a package, that seems like a bug. Have you reported it?
It's not a bug, it's a feature! :-)
Henning, you want "cabal unpack" so you can study the package contents.
The fetch command is mainly so you can fetch packages and then install them when you're offline. You'd be jolly annoyed if it missed dependencies.
I well see the benefits of the current behaviour of 'cabal fetch' and according to the name 'unpack' I didn't expect it could be the solution of my problem. Duncan has explained kindly the issue in: http://hackage.haskell.org/trac/hackage/ticket/612 http://hackage.haskell.org/trac/hackage/ticket/423 However I have still the problem, that once criterion is installed without gtk and cairo, then 'cabal install' still wants to download them when I install packages that import 'criterion'. :-( Bug or feature?

On Sat, 2009-11-28 at 20:13 +0100, Henning Thielemann wrote:
However I have still the problem, that once criterion is installed without gtk and cairo, then 'cabal install' still wants to download them when I install packages that import 'criterion'. :-( Bug or feature?
That's a problem with the cabal-install resolver. When configuring criterion it optimistically assumes that it will be able to install the optional dependencies. I've been working on an extra bottom-up pass for the resolver that will prune packages that cannot possibly be installed. That should help in this case and for the more common case of packages that need a particular version of base. In the mean time, a workaround would be to try: $ cabal install noslow criterion -f-chart --dry-run That should make it select criterion without the chart dep, and since the deps of criterion will then not change it should end up picking the installed instance of criterion rather than rebuilding it. Another thing that'd help here, but isn't implemented, is "installed" constraints. So that you could ask it commit to using the installed instance of criterion, rather than it having the option to rebuild (which in general it needs so it can get consistent deps). Duncan

On Fri, 27 Nov 2009, Henning Thielemann wrote:
On Fri, 27 Nov 2009, Roman Leshchinskiy wrote:
You can get more information (including the ugly tables) from my blog
Btw. storablevector supports 'zip' using http://hackage.haskell.org/package/storable-tuple but you may also use 'zipWith' with an atomar result type for testing.
However, I have noticed that the instances in storable-tuple are not quite efficient. They are implemented with storable-record, which is elegant, but apparently too hard to compile efficiently for GHC. Storable-record computes the offsets for members of a record automatically according to their aligment constraints. But GHC seems not to realize, that the offsets are constants.
participants (3)
-
Bryan O'Sullivan
-
Duncan Coutts
-
Henning Thielemann