Bug#842679: haskell-debian: FTBFS: ghc: panic! (the 'impossible' happened)

Ilias Tsitsimpis i.tsitsimpis at gmail.com
Mon Oct 31 11:45:39 UTC 2016


Control: reassign -1 ghc 8.0.1-8
Control: tags -1 + pending

On Mon, Oct 31, 2016 at 10:45AM, Chris Lamb wrote:
> Dear Maintainer,
> 
> haskell-debian fails to build from source in unstable/amd64:
>
> [...]
> 
>   [34 of 37] Compiling Debian.GenBuildDeps ( Debian/GenBuildDeps.hs, dist-ghc/build/Debian/GenBuildDeps.o )
>   ghc: panic! (the 'impossible' happened)
>     (GHC version 8.0.1 for x86_64-unknown-linux):
>   	find_tycon
>     Loc
>     []
>   
>   Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

This should be fixed by the following patch (available on our repo):

| Subject: Avoid find_tycon panic if datacon is not in scope
| 
| When using TH to splice expressions involving record field construction,
| the parent datacon may not be in scope.  We shouldn't panic about this,
| because we will be renaming Exact RdrNames which don't require any
| disambiguation.
| 
| Reviewers: austin, bgamari
| Reviewed By: bgamari
| Differential Revision: https://phabricator.haskell.org/D2321
| GHC Trac Issues: #12130
| 
| Origin: upstream, https://git.haskell.org/ghc.git/commitdiff/694e0f3a08030
| 
| Index: b/compiler/rename/RnPat.hs
| ===================================================================
| --- a/compiler/rename/RnPat.hs
| +++ b/compiler/rename/RnPat.hs
| @@ -636,7 +636,7 @@ rnHsRecFields ctxt mk_arg (HsRecFields {
|      find_tycon :: GlobalRdrEnv -> Name {- DataCon -} -> Maybe Name {- TyCon -}
|      -- Return the parent *type constructor* of the data constructor
|      -- (that is, the parent of the data constructor),
| -    -- or 'Nothing' if it is a pattern synonym.
| +    -- or 'Nothing' if it is a pattern synonym or not in scope.
|      -- That's the parent to use for looking up record fields.
|      find_tycon env con
|        | Just (AConLike (RealDataCon dc)) <- wiredInNameTyThing_maybe con
| @@ -648,8 +648,9 @@ rnHsRecFields ctxt mk_arg (HsRecFields {
|            ParentIs p -> Just p
|            _          -> Nothing
|  
| -      | otherwise
| -      = pprPanic "find_tycon" (ppr con $$ ppr (lookupGRE_Name env con))
| +      | otherwise = Nothing
| +        -- This can happen if the datacon is not in scope
| +        -- and we are in a TH splice (Trac #12130)
|  
|      dup_flds :: [[RdrName]]
|          -- Each list represents a RdrName that occurred more than once

I hold off on the upload in order to see if GHC will finish compiling
on mips64el.

Best,

-- 
Ilias



More information about the Pkg-haskell-maintainers mailing list