Closed ghost closed 10 years ago
Yeah, had to figure out some of the new stuff but it was pretty painless :)
Not sure if you want to depend on vinyl and some of the other stuff though. Let me know if you'd prefer to do something differently.
Seems pretty harmless! I'll review it in more detail tomorrow once I'm at my office though. Evan/computionist had patched this to be compatible with GHC 7.6, so I might want to get the 7.6 compat PR merged into Vinyl that I have been dragging my feet on.
Sounds good :)
It wouldn't be too hard to switch back to plain records if that becomes a bigger task than expected. I'm happy to test or help with something on the 7.6/Vinyl side too.
Cool, I'll make the changes you suggested and push an update probably later today.
Made the changes you suggested. Note the updated cabal constraints. Let me know if that causes breakage somehow. I did a cabal update
and re-built in a fresh sandbox with 7.8.2
just to be sure though.
Hmm, I think the CI build might be failing due to an issue with cabal-install
that was fixed after 1.18.0.2
. I'm using cabal-install-1.20.0.2
, Cabal-1.20.0.1
, and ghc-7.8.2
.
Oh dear...
This is the package database from my sandbox. I think what's happening is that transformers-compat
is being used since transformers
isn't even installed.
~/TT-Reflection/.cabal-sandbox/x86_64-osx-ghc-7.8.2-packages.conf.d
QuickCheck-2.7.5
aeson-0.7.0.6
ansi-terminal-0.6.1.1
ansi-wl-pprint-0.6.7.1
attoparsec-0.12.1.0
bifunctors-4.1.1.1
blaze-builder-0.3.3.2
blaze-html-0.7.0.2
blaze-markup-0.6.1.0
bound-1.0.3
bytes-0.14.0.2
cereal-0.4.0.1
charset-0.3.7
comonad-4.2
contravariant-0.6
data-default-class-0.0.1
digits-0.2
distributive-0.4.4
dlist-0.7.0.1
exceptions-0.6.1
fingertree-0.1.0.0
free-4.9
generic-deriving-1.6.3
hashable-1.2.2.0
hashable-extras-0.2.0.1
haskeline-0.7.1.3
keys-3.10.1
lens-4.2
mtl-2.1.3.1
nats-0.2
optparse-applicative-0.9.0
parallel-3.2.0.4
parsec-3.1.5
parsers-0.10.3
pointed-4.1
prelude-extras-0.4
primitive-0.5.3.0
profunctors-4.0.4
random-1.0.1.1
reducers-3.10.2.1
reflection-1.4
scientific-0.3.2.1
semigroupoids-4.0.2.1
semigroups-0.15
singletons-1.0
split-0.2.2
stm-2.4.3
syb-0.4.2
tagged-0.7.2
terminfo-0.4.0.0
text-1.1.1.3
tf-random-0.5
th-desugar-1.4.0
transformers-compat-0.3.3.3
trifecta-1.4.2
unordered-containers-0.2.4.0
utf8-string-0.3.8
vector-0.10.11.0
vinyl-0.4.2
void-0.6.1
zlib-0.5.4.1
I just completely wiped out ~/.cabal
and ~/.ghc
so I only had the packages installed with ghc-7.8.2
. Then I did the following:
cabal sandbox init
cabal update
cabal install --only-dependencies
It's building successfully. Can you try updating cabal-install
on the CI instance? This is the issue I was referring to earlier:
http://www.reddit.com/r/haskell/comments/26045a/if_youre_finding_cabal_cant_build_your_project
OK, I'll see what can be done once I get to my office. It doesn't actually look like I can upgrade cabal on the CI though—I'll try fiddling with it though.
On Jun 19, 2014, at 8:52 PM, Darin Morrison notifications@github.com wrote:
I just completely wiped out ~/.cabal and ~/.ghc so I only had the packages installed with ghc-7.8.2. Then I did the following:
cabal sandbox init cabal update cabal install --only-dependencies It's building successfully. Can you try updating cabal-install on the CI instance? This is the issue I was referring to earlier:
http://www.reddit.com/r/haskell/comments/26045a/if_youre_finding_cabal_cant_build_your_project
— Reply to this email directly or view it on GitHub.
I think you might be able to upgrade cabal-install
during the before_install
phase. See item 4: http://docs.travis-ci.com/user/build-configuration/
Perhaps something like the following script might work:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286
echo 'deb http://ppa.launchpad.net/hvr/ghc/ubuntu precise main' >> /etc/apt/sources.list.d/haskell.list
echo 'deb-src http://ppa.launchpad.net/hvr/ghc/ubuntu precise main' >> /etc/apt/sources.list.d/haskell.list
apt-get update
apt-get install -y --no-install-recommends alex-3.1.3 cabal-install-1.20 ghc-7.8.2 happy-1.19.3 #alex, ghc, happy optional
echo 'PATH=/opt/alex/3.1.3/bin:/opt/cabal/1.20/bin:/opt/ghc/7.8.2/bin:/opt/happy/1.19.3/bin:${PATH}' > /etc/profile.d/haskell.sh #this may not work if a new login shell isn't created; in that case just update the path manually
Hm, even this doesn't build on my machine with a fresh env. I'm going to try and get it working locally, and then I think I've another way to get the newest cabal on travis.
Hmm. Are you using cabal-install-1.20.0.2
?
It might work by manually installing transformers-compat
or following one of the other alternatives mentioned in that thread.
If that still doesn't work I can try to downgrade my local cabal-install
and see if I can get things building with an older version. I sort of hate having to do that though since --allow-newer
from 1.20.0.*
is so useful.
Hm, I was using cabal-install-1.20.0.1
. So I did get it to build by changing the fixed versions as follows:
transformers ==0.4.1.0 to transformers ==0.3.0.0
transformers-compat ==0.3.0.0 to transformers ==0.3.3.3
But I'll try upgrading my cabal-install and see what happens.
Interesting. What happens if you remove cabal.config
and try in a fresh environment locally?
I'll see if I can reproduce a successful build with your change.
With cabal-install-1.20.0.1
, this is what I get:
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: TT-0.1.0.0 (user goal)
trying: lens-4.2 (dependency of TT-0.1.0.0)
next goal: transformers (dependency of lens-4.2)
rejecting: transformers-0.3.0.0/installed-7df... (global constraint requires
==0.4.1.0)
trying: transformers-0.4.1.0
next goal: trifecta (dependency of TT-0.1.0.0)
rejecting: trifecta-1.4.2 (conflict: transformers==0.4.1.0, trifecta =>
transformers>=0.2 && <0.4)
rejecting: trifecta-1.4.1, 1.4, 1.2.1.1, 1.2.1, 1.2, 1.1, 1.0, 0.53, 0.52,
0.51.0.1, 0.51, 0.50.2.1, 0.50.1, 0.50, 0.49.1, 0.49, 0.47, 0.46, 0.45, 0.44,
0.43, 0.42, 0.41, 0.40, 0.39, 0.38, 0.37, 0.36.3, 0.36.2, 0.36.1, 0.36, 0.35,
0.34, 0.32.1, 0.32, 0.31, 0.30, 0.29, 0.28, 0.27, 0.26, 0.25, 0.24, 0.23,
0.22, 0.21, 0.20, 0.19, 0.18, 0.17, 0.16.1, 0.16, 0.15.1, 0.15, 0.14, 0.13,
0.12, 0.11, 0.10, 0.9, 0.8.0.1, 0.8, 0.7.2, 0.7.1, 0.7, 0.6, 0.5.1, 0.5, 0.4,
0.3, 0.2, 0.1 (global constraint requires ==1.4.2)
Dependency tree exhaustively searched.
Note: when using a sandbox, all packages are required to have consistent
dependencies. Try reinstalling/unregistering the offending packages or
recreating the sandbox.
And here is ghc-pkg list
:
/Users/jon/dev/ghc/lib/ghc-7.8.2/package.conf.d
Cabal-1.18.1.3
array-0.5.0.0
base-4.7.0.0
bin-package-db-0.0.0.0
binary-0.7.1.0
bytestring-0.10.4.0
containers-0.5.5.1
deepseq-1.3.0.2
directory-1.2.1.0
filepath-1.3.0.2
ghc-7.8.2
ghc-prim-0.3.1.0
haskell2010-1.1.2.0
haskell98-2.0.0.3
hoopl-3.10.0.1
hpc-0.6.0.1
integer-gmp-0.5.1.0
old-locale-1.0.0.6
old-time-1.1.0.2
pretty-1.1.1.1
process-1.2.0.0
rts-1.0
template-haskell-2.9.0.0
time-1.4.2
transformers-0.3.0.0
unix-2.7.0.1
When I remove cabal.config
, it works fine, but it uses the different versions of transformers
and transformers-compat
that I mentioned a few comments ago.
Oh weird, I don't know how this would have ever built for you, since your cabal.config
had transformers
at 0.4x, but trifecta
isn't compatible with that at all!
Oh thank god, the build passed.
Finally :)
Whoa, cool! I'm glad to see someone other than myself has figured out how to use the new Vinyl :)