clash-lang / clash-compiler

Haskell to VHDL/Verilog/SystemVerilog compiler
https://clash-lang.org/
Other
1.44k stars 153 forks source link

How to install in cabal sandbox? #34

Closed gitfoxi closed 9 years ago

gitfoxi commented 9 years ago

I couldn't install with the recommended cabal install clash-gcc because of too many clashes with other installed packages (is that where the name "clash" comes from?). I got it to build in a sandbox but now

$ .cabal-sandbox/bin/clash --interactive
CLaSHi, version 0.3.3 (using clash-lib, version 0.3.2):
http://christiaanb.github.io/clash2/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.

Top level:
    Failed to load interface for ‘CLaSH.Prelude’
    Use -v to see a list of the files searched for.
gitfoxi commented 9 years ago

To answer my own question, you do this:

cabal exec clash -- --interactive
christiaanb commented 9 years ago

Could you tell me which packages are posing a problem installing normally? i.e. not in a sandbox.

gitfoxi commented 9 years ago

I think maybe all of them.

$ cabal install clash-ghc
Resolving dependencies...
In order, the following would be installed:
RepLib-0.5.3.3 (reinstall) changes: base-4.7.0.1 added, containers-0.5.5.1
added, template-haskell-2.9.0.0 added
clash-prelude-0.5.1 (new version)
fmlist-0.8 (reinstall) changes: base-4.7.0.1 added
text-1.1.1.3 (latest: 1.2.0.0) (reinstall) changes: base-4.7.0.1 added,
bytestring-0.10.4.0 added, deepseq-1.3.0.2 added
ListLike-4.1.0 (reinstall) changes: base-4.7.0.1 added, bytestring-0.10.4.0
added, containers-0.5.5.1 added, dlist-0.7.1 added, vector-0.10.12.1 added
hashable-1.2.2.0 (reinstall) changes: text-1.2.0.0 -> 1.1.1.3
concurrent-supply-0.1.7 (reinstall) changes: base-4.7.0.1 added,
hashable-1.2.2.0 added
nats-0.2 (reinstall)
scientific-0.3.3.2 (new version)
attoparsec-0.12.1.2 (reinstall) changes: scientific-0.3.3.1 -> 0.3.3.2,
text-1.2.0.0 -> 1.1.1.3
unbound-0.4.3.1 (reinstall) changes: base-4.7.0.1 added, binary-0.7.1.0 added,
containers-0.5.5.1 added
unordered-containers-0.2.5.1 (reinstall)
aeson-0.8.0.2 +old-locale (reinstall) changes: scientific-0.3.3.1 -> 0.3.3.2,
text-1.2.0.0 -> 1.1.1.3
semigroups-0.15.4 (new version)
uu-interleaved-0.1.0.0 (reinstall) changes: base-4.7.0.1 added
uu-parsinglib-2.8.1.1 (reinstall) changes: base-4.7.0.1 added, time-1.4.2
added
void-0.6.1 (reinstall) changes: semigroups-0.15.3 -> 0.15.4
contravariant-1.2 (reinstall) changes: semigroups-0.15.3 -> 0.15.4
comonad-4.2.2 (reinstall) changes: semigroups-0.15.3 -> 0.15.4
semigroupoids-4.2 (reinstall) changes: semigroups-0.15.3 -> 0.15.4
bifunctors-4.1.1.1 (latest: 4.2) (reinstall) changes: semigroups-0.15.3 ->
0.15.4
profunctors-4.3.2 (new version)
free-4.9 (reinstall) changes: profunctors-4.2.0.1 -> 4.3.2, semigroups-0.15.3
-> 0.15.4
either-4.3.1 (reinstall) changes: semigroups-0.15.3 -> 0.15.4
errors-1.4.7 (reinstall) changes: base-4.7.0.1 added, either-4.3.0.1 -> 4.3.1,
safe-0.3.7 -> 0.3.8
lens-4.5 (new version)
wl-pprint-text-1.1.0.2 (reinstall) changes: base-4.7.0.1 added
clash-lib-0.3.2 (new package)
clash-ghc-0.3.3 (new package)
cabal: The following packages are likely to be broken by the reinstalls:
warp-3.0.2.3
lens-4.4.0.2
vector-instances-3.3
mono-traversable-0.6.2
ihaskell-0.4.2.0
conduit-combinators-0.2.8.3
classy-prelude-conduit-0.10.1
classy-prelude-0.10.1
classy-prelude-0.9.5
chunked-data-0.1.0.1
profunctors-4.2.0.1
keys-3.10.1
monad-journal-0.5
ghc-mod-5.1.1.0
criterion-1.0.2.0
pointed-4.1
conduit-1.2.1
yaml-0.8.9.3
stylish-haskell-0.5.11.0
hoogle-4.2.36
conduit-extra-1.1.4.1
vault-0.3.0.3
wai-3.0.2
threepenny-gui-0.5.0.0
reactive-banana-0.8.0.2
uuid-1.3.4
uniplate-1.6.12
hlint-1.9.10
hlint-1.9.4
derive-2.5.18
keyvaluehash-0.3.1.2
snap-core-0.9.6.3
websockets-snap-0.9.0.0
snap-server-0.9.4.5
shake-0.13.4
semigroups-0.15.3
zeromq4-haskell-0.6.2
dlist-instances-0.1
cassava-0.4.2.0
basic-prelude-0.3.10
statistics-0.13.2.1
scientific-0.3.3.1
websockets-0.9.1.0
sqlite-simple-0.4.8.0
http-date-0.0.4
attoparsec-enumerator-0.3.3
ascii-vector-avc-0.1.0.0
case-insensitive-1.2.0.1
http-types-0.8.5
Use --force-reinstalls if you want to install anyway.
christiaanb commented 9 years ago

I'm really confused by the "base-4.7.0.1" added... It's like you are having a mixed 7.8.2 and 7.8.3 install...

What happens if you do: cabal install clash-ghc --constraint "RepLib installed"

gitfoxi commented 9 years ago
$ cabal install clash-ghc --constraint "RepLib installed"
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: clash-ghc-0.3.3 (user goal)
next goal: unbound (dependency of clash-ghc-0.3.3)
rejecting: unbound-0.4.3.1/installed-233... (package is broken)
trying: unbound-0.4.3.1
next goal: RepLib (dependency of unbound-0.4.3.1)
rejecting: RepLib-0.5.3.3/installed-a31... (package is broken)
rejecting: RepLib-0.5.3.3, 0.5.3.2, 0.5.3.1, 0.5.3, 0.5.2.1, 0.5.2, 0.5.1,
0.5, 0.4.0, 0.3, 0.2.2, 0.2.1 (global constraint requires installed instance)
Dependency tree exhaustively searched.
christiaanb commented 9 years ago

It seems that your Haskell installation is already broken? You can verify by: ghc-pkg check

gitfoxi commented 9 years ago

Oh boy is it ever. Like a hundred "dependency does not exist". Thanks for point that out. Cabal is something I don't understand. Strangely I've been able to get work done for a while now in such a state. Probably just nuke the packages and start over.

mgajda commented 9 years ago

I installed in Cabal sandbox without any problems:

cabal sandbox init
cabal install clash-ghc clash-prelude

Also had a problem when trying to install outside sandbox :-).

Ericson2314 commented 9 years ago

I've used (and developed) CLaSH from a sandbox all 2015 without issue---keeping each package in a subdirectory as we do now makes this more convenient. I guess this can be closed then?