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

Edward Z. Yang ezyang at mit.edu
Sat Jan 7 03:37:35 UTC 2017


Hello A.M.,

In 8.0.1 package databases must be specified in the correct order,
whereas in 7.10 they could be done in any order. This problem
was fixed in 8.0.2, give it a try.

Edward

Excerpts from A.M.'s message of 2017-01-06 22:00:49 -0500:
> 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


More information about the ghc-devs mailing list