Compiling futhark with ghc 9.2.1 panics on internal error
Summary
GHC 9.2.1 panics when compiling futhark. Older GHCs do not.
Steps to reproduce
cabal install futhark -w ghc-9.2.1
Then you get an error message like:
[152 of 251] Compiling Futhark.CodeGen.Backends.GenericC ( src/Futhark/CodeGen/Backends/GenericC.hs, dist/build/Futhark/CodeGen/Backends/GenericC.o, dist/build/Futhark/CodeGen/Backends/GenericC.dyn_o )
ghc: panic! (the 'impossible' happened)
(GHC version 9.2.1:
refineFromInScope
InScope {wild_00 eta_B0 t1_X1 t1_aSb4 s1_a1wDi msg_arGLF
stacktrace_arGLG m_arGN2 keep_cached_arGN8 m_arGN9 a_arGNk op_arJ5N
s_arJ5O op_arJg3 s_arJg4 a_arJg5 op_arJhe s_arJhf a_arJhg op_arU4H
s_arU4I $c==_arWDP $c/=_arWE4 $ccompare_arWEg $c<_arWEO $c<=_arWEU
$c>_arWF0 $c>=_arWF6 $cmax_arWFc $cmin_arWFi $c==_arWFq $c/=_arWFB
$ccompare_arWFN $c<_arWFX $c<=_arWG7 $c>_arWGd $c>=_arWGj
$cmax_arWGp $cmin_arWGv $cshowsPrec_arWGD $cshow_arWGH
$cshowList_arWGN $cgetNameSource_arWH5 $krep_arWKt $krep_arWKu
$krep_arWKv $krep_arWKw $krep_arWKx $krep_arWKy $krep_arWKz
$krep_arWKA $krep_arWKB $krep_arWKC $krep_arWKD $krep_arWKE
$krep_arWKF $krep_arWKG $krep_arWKH $krep_arWKI $krep_arWKJ
$krep_arWKK $krep_arWKL $krep_arWKM $krep_arWKN $krep_arWKO
$krep_arWKP $krep_arWKQ $krep_arWKR $krep_arWKS $krep_arWKT
$krep_arWKU $krep_arWKV $krep_arWKW $krep_arWKX $krep_arWKY
$krep_arWKZ $krep_arWL0 $krep_arWL1 $krep_arWL2 $krep_arWL3
$krep_arWL4 $krep_arWL5 $krep_arWL6 $krep_arWL7 $krep_arWL8
$krep_arWL9 $krep_arWLa $krep_arWLb $krep_arWLc $krep_arWLd
$krep_arWLe $krep_arWLf $krep_arWLg $krep_arWLh $krep_arWLi
$krep_arWLj $krep_arWLk $krep_arWLl $krep_arWLm $krep_arWLn
$krep_arWLo $krep_arWLp $krep_arWLq $krep_arWLr $krep_arWLs
$krep_arWLt $krep_arWLu $krep_arWLv $krep_arWLw $krep_arWLx
$krep_arWLy $krep_arWLz $krep_arWLA $krep_arWLB $krep_arWLC
$krep_arWLD $krep_arWLE $krep_arWLF $krep_arWLG $krep_arWLH
$krep_arWLI $krep_arWLJ $krep_arWLK $krep_arWLL $krep_arWLM
$krep_arWLN $krep_arWLO $krep_arWLP $krep_arWLQ $krep_arWLR
$krep_arWLS $krep_arWLT $krep_arWLU $krep_arWLV $krep_arWLW
$krep_arWLX $krep_arWLY $krep_arWLZ $krep_arWM0 $krep_arWM1
$krep_arWM2 $krep_arWM3 $krep_arWM4 $krep_arWM5 $krep_arWM6
$krep_arWM7 $krep_arWM8 $krep_arWM9 $krep_arWMa $krep_arWMb
$krep_arWMc $krep_arWMd $krep_arWMe $krep_arWMf $krep_arWMg
$krep_arWMh $krep_arWMi $krep_arWMj $krep_arWMk $krep_arWMl
$krep_arWMm $krep_arWMn $krep_arWMo $krep_arWMp $krep_arWMq
$krep_arWMr $krep_arWMs $krep_arWMt $krep_arWMu cHeader cUtils cCLI
cServer cLib cJsonManifest envOperations envCachedMem
opsWriteScalar opsReadScalar opsAllocate opsDeallocate opsCopy
opsStaticArray opsMemoryType opsCompiler opsError opsCall
opsFatMemory opsCritical compArrayTypes compOpaqueTypes
compEarlyDecls compInit compNameSrc compUserState compHeaderDecls
compLibDecls compCtxFields compProfileItems compClearItems
compDeclaredMem compItems errorMsgString freeAllocatedMem
defaultOperations declsCode contextContents contextFinalInits
runCompilerM getUserState modifyUserState atInit collect'
inNewFunction item items fatMemory cacheMem publicDef publicDef_
headerDecl libDecl earlyDecl contextField contextFieldDyn
profileReport onClear stm stms decl publicName contextType
memToCType rawMemCType fatMemType fatMemSet fatMemAlloc fatMemUnRef
rawMem allocRawMem freeRawMem declMem copyMemoryDefaultSpace
criticalSection valueDescToCType opaqueToCType allTrue gnuSource
disableWarnings asLibrary asExecutable asServer compileProg
cachingMemory compileFun derefPointer volQuals
writeScalarPointerWithQuals readScalarPointerWithQuals
compileExpToName compileExp compilePrimExp compileCode blockScope
...
s'_a1wDm
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/GHC/Utils/Panic.hs:181:37 in ghc:GHC.Utils.Panic
pprPanic, called at compiler/GHC/Core/Opt/Simplify/Env.hs:706:30 in ghc:GHC.Core.Opt.Simplify.Env
Expected behavior
Not trigger an internal error
Environment
- GHC version used: GHC 9.2.1
Optional:
- Operating System: Ubuntu 20.04
- System Architecture: x86_64