Subject: Re: bug#37064: Ghc 8.6.5 fails to find core package database
From: Timothy Sample <[email-masked]>
To: Gabriel Giamarchi <[email-masked]>
Cc: [email-masked]
Date: Mon, 09 Sep 2019 22:05:43 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi again,

Timothy Sample <[email-masked]> writes:

> Gabriel Giamarchi <[email-masked]> writes:
>
>> Installing only 'ghc 8.6.5' (Glasgow Haskell compiler) and sourcing
>>
>> '~/.guix-profile/etc/profile' leads to ghc not finding core modules.
>> ('ghci' doesn't find System.IO for instance).
>>
>> This is due to $GHC_PACKAGE_PATH not containing ghc 8.6.5's
>> package.conf.d, but
>> instead ghc 8.4.3's database.
>>
>> Note: Not setting this variable leads to a working ghc (will search in
>> default
>> location), but is required to install additional packages via guix.
>>
>> The issue might come from guix/profiles.scm:812, since
>>   (module-ref (resolve-interface '(gnu packages haskell)) 'ghc)
>> evaluates to <package [email-masked] gnu/packages/haskell.scm:445> in my repl.
>
> Good catch.  I can confirm this is the issue, but I’m not sure how to
> fix it.  We could try to find GHC from the profile rather than
> unconditionally using a certain package.  However, that would not help
> if someone were to install GHC 8.4 and 8.6 in the same profile.

I took another look at this and we were wrong!  The main issue here is
that I made a mistake in the GHC 8.6 package definition, and it was
setting GHC_PACKAGE_PATH incorrectly.  This should be fixed as of commit
83aa656217.  Sorry for the trouble.

Note that you will likely run into trouble trying to use other
Guix-provided Haskell packages with GHC 8.6, as they are all built with
GHC 8.4.  AFAIU, this is not something that GHC supports.

-- Tim