GHC API 7.10 -> 8.0.1 (unusable due to missing or recursive dependencies)

A.M. agentm at themactionfaction.com
Sat Jan 7 03:00:49 UTC 2017


Hello,

I am migrating a use of the GHC API from GHC 7.10 to GHC 8.0.1 and have
hit an issue whereby importing pre-compiled libraries spits out:

package testhsscript-0.1-CQQKGzp5pWwBmTnAldv1Hk is unusable due to
missing or recursive dependencies:
  Glob-0.7.13-2PN6d9dpHzz7DHotD0T0wu base-4.9.0.0

though these packages are indeed in the sandbox and listed with
ExposePackage in the packageFlags. To be clear, a variant of this code
worked as expected under GHC 7.10.

I have created a simplified test case to demonstrate the issue:

https://github.com/agentm/testhsscript

Here is the meat of the problem:

* lib/Test.hs - contains a module importing Glob with some functions of
no consequence
https://github.com/agentm/testhsscript/blob/master/lib/Test.hs

* test.hs includes the GHC API call to load the precompiled Test module
from the cabal sandbox
https://github.com/agentm/testhsscript/blob/master/test.hs

* cabal file has two targets: Library and executable "test"- the
executable uses the GHC API to load the pacakge "testhsscript"
https://github.com/agentm/testhsscript/blob/master/testhsscript.cabal

For reference, here is the GHC API invocation which works under GHC 7.10:

https://github.com/agentm/project-m36/blob/master/src/lib/ProjectM36/AtomFunctionBody.hs#L31

I suspect I am missing something basic that has changed in GHC 8 and
would very much appreciate any tips.

Here is the failing result of attempting to load the testhsscript package:

Setting up HscEnv
Using binary package database:
/home/agentm/Dev/testhsscript/.cabal-sandbox/x86_64-linux-ghc-8.0.1-packages.conf.d/package.cache
Using binary package database:
/opt/ghc/8.0.1/lib/ghc-8.0.1/package.conf.d/package.cache
loading package database
/home/agentm/Dev/testhsscript/.cabal-sandbox/x86_64-linux-ghc-8.0.1-packages.conf.d
package testhsscript-0.1-CQQKGzp5pWwBmTnAldv1Hk is unusable due to
missing or recursive dependencies:
  Glob-0.7.13-2PN6d9dpHzz7DHotD0T0wu base-4.9.0.0
package Glob-0.7.13-2PN6d9dpHzz7DHotD0T0wu is unusable due to missing or
recursive dependencies:
  base-4.9.0.0 containers-0.5.7.1 directory-1.2.6.2
dlist-0.8.0.2-GWAMmbX9rLg3tqrbOizHGv filepath-1.4.1.0
transformers-0.5.2.0 transformers-compat-0.5.1.4-G5tKvPrwhggJRvSwXNMs1N
package ghc-paths-0.1.0.9-GIOnKzk0HmEBZ77Q1HsThK is unusable due to
missing or recursive dependencies:
  base-4.9.0.0
package mtl-2.2.1-6qsR1PHUy5lL47Hpoa4jCM is unusable due to missing or
recursive dependencies:
  base-4.9.0.0 transformers-0.5.2.0
package dlist-0.8.0.2-GWAMmbX9rLg3tqrbOizHGv is unusable due to missing
or recursive dependencies:
  base-4.9.0.0 deepseq-1.4.2.0
package transformers-compat-0.5.1.4-G5tKvPrwhggJRvSwXNMs1N is unusable
due to missing or recursive dependencies:
  base-4.9.0.0 ghc-prim-0.5.0.0 transformers-0.5.2.0
loading package database /opt/ghc/8.0.1/lib/ghc-8.0.1/package.conf.d
test: <command line>: cannot satisfy dlist:
    dlist-0.8.0.2-GWAMmbX9rLg3tqrbOizHGv is unusable due to missing or
recursive dependencies:
      base-4.9.0.0 deepseq-1.4.2.0
    (use -v for more information)



Cheers,
M

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20170106/e9bb9e3e/attachment.sig>


More information about the ghc-devs mailing list