[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