[Haskell-beginners] 'cabal install hdirect' can't find hdirect

Larry Evans cppljevans at suddenlink.net
Sun Jul 4 11:33:21 EDT 2010


On 07/04/10 10:06, Larry Evans wrote:
> On 07/04/10 07:28, Daniel Fischer wrote:
>> On Sunday 04 July 2010 13:45:01 you wrote:
>>  
>>> src/Lex.lhs:330:8:
>>>     Illegal signature in pattern: Int
>>>         Use -XPatternSignatures to permit it
>>> cabal: Error: some packages failed to install:
>>> hdirect-0.21.0 failed during the building phase. The exception was:
>>> exit: ExitFailure 1
>>> ~/download/haskell/libs $ which happy
>>> /home/evansl/.cabal/bin/happy
>>> ~/download/haskell/libs $
>>>
>>> Any ideas about how to solve this problem?
>>>     
>>
>> Sure. First, tell the maintainer, he might want to fix it for all.
>>   
> Done.
>> Then, the quick fix for you,
>> * unpack the .tar.gz
>> * change the version in the .cabal file (my preferred method is 
>> appending a ".1" to the version number). You need that in case you 
>> want to build some library which depends on hdirect, so that 
>> cabal-install picks your bumped newer version rather than the newest 
>> version on hackage.
>> * make it compile, e.g. by adding a field
>> Extensions:     PatternSignatures
>> to the cabal file, or by putting a {-# LANGUAGE PatternSignatures #-}
>> pragma to the offending file.
>> Then run cabal install in the unpacked and modified directory.
>> Several iterations of edit file; cabal install may be necessary.
>>
>>   
> Downloaded:
>
> http://hackage.haskell.org/packages/archive/hdirect/0.21.0/hdirect-0.21.0.tar.gz 
>
>
> then unzipped and untarred it then edited hdirect.cabal by adding:
>
>      Extensions:     PatternSignatures
>
> Below the line:
>
> library
>
> However, still got:
>
> src/Desugar.lhs:2053:1:
>    Warning: Pattern match(es) are non-exhaustive
>             In a case alternative:
>                 Patterns not matched:
>                     (_, [])
>                     (_, IDL.IncludeEnd : _)
>                     (_, (IDL.IncludeStart _) : _)
>                     (_, (IDL.Pragma _) : _)
>                     ...
> [60 of 65] Compiling IDLToken         ( src/IDLToken.lhs, 
> dist/build/hdirect/hdirect-tmp/IDLToken.o )
> [61 of 65] Compiling LexM             ( src/LexM.lhs, 
> dist/build/hdirect/hdirect-tmp/LexM.o )
> [62 of 65] Compiling Lex              ( src/Lex.lhs, 
> dist/build/hdirect/hdirect-tmp/Lex.o )
>
> src/Lex.lhs:330:8:
>    Illegal signature in pattern: Int
>        Use -XPatternSignatures to permit it
> cabal: Error: some packages failed to install:
>
> Any further help is appreciated.
[snip]
However, the 2nd alternative solution:

{-# LANGUAGE PatternSignatures #-}

did work.  Thanks.  However, during the compilations, there
were many warnings about pattern matching.  Also, I plan to use
this with hugs.  I'm not sure which haskell compiler was used.
Does that matter?  I'm actually trying to use:

http://www.cas.mcmaster.ca/~kahl/FP/2003/Interpreter.lhs

with hugs.

TIA.

-Larry





More information about the Beginners mailing list