jle` 2017-02-21 12:46:28
sounds O(n) on the length of the file...which isn't ideal
kadoban 2017-02-21 12:49:21
The way files work in most filesystems, isn't it required to be O(n)? or maybe I'm not thinking of something.
jle` 2017-02-21 12:49:57
yeah i think that's the best you can do
ffilozov 2017-02-21 12:56:08
I'm not very familiar with cabal, but I'm trying to understand what is meant by "cabal hell". I'm reading the following: http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.html. I don't quite understand what the issue is with installing quux-1.0, because bar-1.0 can still point to baz-1.0, and quux-1.0 can point to baz-2.0 at the same time. Shared modules that only differ in version can be loaded together.
ezyang 2017-02-21 12:56:45
ffilozov: It's not that important to understand what it is; just use cabal new-build or stack
ezyang 2017-02-21 12:57:13
people mean different things when they say "cabal hell" so it's not particularly well defined
ffilozov 2017-02-21 12:57:15
ezyang, I'm aware of stack and sandboxes, but I will like to understand it anyway.
ezyang 2017-02-21 12:58:11
In my head, cabal hell refers to a specific implementation problem with "cabal install", which is that you can't have multiple copies of the same package name + package version combo in your package database
ffilozov 2017-02-21 13:01:07
Do you know why that is? Is it a limitation with cabal, or Haskell package manager?
ezyang 2017-02-21 13:02:32
ffilozov: It was a limitation with Cabal. There were some design reasons for it but history shows that it was in the wrong point of the design space
ffilozov 2017-02-21 13:03:20
In the example I gave you, I don't see how this rule is broken. It says that bar-1.0 will be rebuilt against baz-2.0, but I don't see why that would be the case. Seems like they're implying possible issues with linking?
ezyang 2017-02-21 13:05:02
in th eexample, quux requires baz-2.0
ezyang 2017-02-21 13:05:20
and there is a "same version" restriction, which states that package versions must be consistent through the transitive dep graph
max3 2017-02-21 13:08:45
why do i have to jump through all the hoops i jump through on line 15 here
max3 2017-02-21 13:08:46
http://lpaste.net/352828
max3 2017-02-21 13:08:49
why doesn't line 16 work
ffilozov 2017-02-21 13:08:56
Could you elaborate on that? I'm not sure what you mean. My expectation is that when building quux, cabal-install sees that bar-1.0 has been built, so it skips that step, and moves on to baz-2.0.
max3 2017-02-21 13:09:04
i get the exception at the top
max3 2017-02-21 13:09:12
err compilation error not exception
ezyang 2017-02-21 13:09:54
ffilozov: This is a little hard to explain if you are used to something like node.js
ezyang 2017-02-21 13:10:23
but essentially, bar-1.0 built against baz-1.0, and bar-1.0 buitl against baz-2.0, are *completely different libraries*
ffilozov 2017-02-21 13:14:11
What is the reason for trying to build bar1.0 against baz2.0? Does it not look for previously build libraries?
MarcelineVQ 2017-02-21 13:14:18
max3: give it a try with OverloadedStrings on https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#overloaded-string-literals
max3 2017-02-21 13:14:55
hmm really?
max3 2017-02-21 13:15:08
i guess i misunderstood stringliterals
max3 2017-02-21 13:15:47
MarcelineVQ, thanks a lot
xpika 2017-02-21 13:28:17
monad has fmap is there an equivalent for pipes ?
lyxia 2017-02-21 13:30:54
pipes are monads
benzrf 2017-02-21 13:36:10
xpika: actually, Functor has fmap
benzrf 2017-02-21 13:36:14
attention to detail https://i.imgur.com/cHR8tuD.png https://i.imgur.com/21ClPZL.png