[Haskell-cafe] Bug in GHC or cabal-install?

Henk-Jan van Tuyl hjgtuyl at chello.nl
Tue Jun 6 11:13:55 UTC 2017


You are right, versionBranch is from originally from base, but you are  
missing the point:
package wxc compiles perfectly the first time, but, without anything being  
changed, does not compile the second time. By the way, I am using a cabal  
sandbox and as I said earlier, I am using a GHC release candidate.

Regards,
Henk-Jan van Tuyl


On Tue, 06 Jun 2017 00:33:40 +0200, Ivan Lazar Miljenovic  
<ivan.miljenovic at gmail.com> wrote:

> On 6 June 2017 at 07:55, Henk-Jan van Tuyl <b.vantuyl1 at upcmail.nl> wrote:
>>
>> wxc/setup.hs uses versionBranch from Cabal[0]; the function  
>> versionBranch is
>> not in Cabal 2, that is why I added "Cabal < 2" to wxc.cabal. When
>> installing wxc the first time, the right version of Cabal is picked,  
>> when
>> "cabal install" is invoked a second time, GHC tries to compile  
>> wxc/setup.hs
>> again, but with the wrong version of Cabal (note: the release candidate  
>> of
>> GHC comes with Cabal 2)
>>
>> [0]
>> https://hackage.haskell.org/package/Cabal-1.24.2.0/docs/Distribution-Make.html#v:versionBranch
>
> If you look at the source for this module, you'll see that it isn't
> defined in there; it's actually from Data.Version in base.
>
>>
>>
>>
>> On Mon, 05 Jun 2017 04:58:05 +0200, Ivan Lazar Miljenovic
>> <ivan.miljenovic at gmail.com> wrote:
>>
>>> I don't think it's a problem with Cabal, but the version of base going
>>> by the error: versionBranch is from base, and that error message is
>>> talking about compiling the setup.hs from wxc.
>>>
>>> On 5 June 2017 at 12:03, Henk-Jan van Tuyl <b.vantuyl1 at upcmail.nl>  
>>> wrote:
>>>>
>>>>
>>>> The strange thing is, that the right version of Cabal is picked, the
>>>> first
>>>> time wxc is compiled. But when invoking cabal-install the second time,
>>>> the
>>>> setup-depends section seems to be ignored (or at least the Cabal < 2
>>>> part).
>>>> This does not happen with GHC 8.0.2
>>>>
>>>> (By the way, cabal-install tries to compile setup.hs again, even  
>>>> though
>>>> nothing has changed.)
>>>>
>>>> Regards,
>>>> Henk-Jan van Tuyl
>>>>
>>>>
>>>>
>>>> On Sun, 04 Jun 2017 13:39:17 +0200, Ivan Lazar Miljenovic
>>>> <ivan.miljenovic at gmail.com> wrote:
>>>>
>>>>> This is from a limitation/bug with Cabal-the-library, in that there
>>>>> are typically no dependency checks for custom Setup.[l]hs
>>>>> configurations.
>>>>>
>>>>> wxc has such a custom one:
>>>>> http://hackage.haskell.org/package/wxc-0.92.3.0/src/Setup.hs
>>>>>
>>>>> versionBranch is from Data.Version in base, and it appears that the  
>>>>> in
>>>>> this GHC pre-release there's been a change in base that removed this
>>>>> function.
>>>>>
>>>>> On 4 June 2017 at 19:45, Henk-Jan van Tuyl <hjgtuyl at chello.nl> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> L.S.,
>>>>>>
>>>>>> I am trying the prerelease of GHC, version 8.2.0.20170507
>>>>>>
>>>>>> I adapted wxHaskell to the new packages that come with the new GHC  
>>>>>> and
>>>>>> it
>>>>>> compiles now, but only the first time. If I compile it a second  
>>>>>> time,
>>>>>> even
>>>>>> if nothing has changed, the information from the custom-setup  
>>>>>> section
>>>>>> of
>>>>>> the wxc.cabal file seems to be forgotten. This section looks like  
>>>>>> this:
>>>>>>
>>>>>> custom-setup
>>>>>>   setup-depends:
>>>>>>     base,
>>>>>>     Cabal < 2,
>>>>>>     containers,
>>>>>>     bytestring,
>>>>>>     split,
>>>>>>     process,
>>>>>>     directory,
>>>>>>     filepath
>>>>>> (I am using cabal-install 1.24.0.2)
>>>>>>
>>>>>> Output from the second time I try to install wxHaskell:
>>>>>>
>>>>>>> cabal install --force-reinstalls --reinstall wxdirect wxc wxcore wx
>>>>>>
>>>>>>
>>>>>>
>>>>>> [1 of 1] Compiling Main             (
>>>>>> X:\Temp\wxHaskell\wxcore\dist\setup\setup.hs,
>>>>>> X:\Temp\wxHaskell\wxcore\dist\setup\Main.o )
>>>>>> Linking X:\Temp\wxHaskell\wxcore\dist\setup\setup.exe ...
>>>>>> [1 of 1] Compiling Main             (
>>>>>> X:\Temp\wxHaskell\wxc\dist\setup\setup.hs,
>>>>>> X:\Temp\wxHaskell\wxc\dist\setup\Main.o )
>>>>>>
>>>>>> X:\Temp\wxHaskell\wxc\dist\setup\setup.hs:505:61: error:
>>>>>>                       Variable not in scope: versionBranch ::  
>>>>>> Version
>>>>>> ->
>>>>>> [a0]
>>>>>>                       |
>>>>>> 505 |           full_ver = (concat . intersperse "." . map show .
>>>>>> versionBranch) ver
>>>>>>                       |
>>>>>> ^^^^^^^^^^^^^
>>>>>>
>>>>>> This error message indicates that the wrong version of Cabal (2.0)  
>>>>>> is
>>>>>> used
>>>>>> to compile the wxcore setup.hs
>>>>>> It looks like a cabal-install bug, but this does not happen when I
>>>>>> use GHC 8.0.2; should I write a GHC bug ticket?
>>>>>>
>>>>>> Regards,
>>>>>> Henk-Jan van Tuyl


-- 
Folding at home
What if you could share your unused computer power to help find a cure? In  
just 5 minutes you can join the world's biggest networked computer and get  
us closer sooner. Watch the video.
http://foldingathome.stanford.edu/


http://Van.Tuyl.eu/
http://members.chello.nl/hjgtuyl/tourdemonad.html
Haskell programming
--


More information about the Haskell-Cafe mailing list