Skip to content

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
Edited by Vanessa McHale
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information