Implementing a new Primop, stage1 panic

Paul Monday paul.monday at
Mon Oct 17 21:11:22 CEST 2011

Fascinating!  I added the switch, figured I needed to clean everything to see the whole stack and whammo, everything worked.

I wonder if the build is missing a dependency check along the way, I'll have to keep a close eye as I modify files now.

Thanks for the tip!

Paul Monday
Parallel Scientific, LLC.
paul.monday at

On Oct 17, 2011, at 8:00 AM, Simon Peyton-Jones wrote:

> Paul
> Always switch on -dcore-lint; it’s a self-checker for types, and usually nails an error much closer to the source.
> Simon
> From: glasgow-haskell-users-bounces at [mailto:glasgow-haskell-users-bounces at] On Behalf Of Paul Monday
> Sent: 16 October 2011 16:54
> To: glasgow-haskell-users at
> Subject: Implementing a new Primop, stage1 panic
> (Reposting since this got cross-posted sort of oddly and I wasn't subscribed yet)
> I'm having an odd problem as I try to define my own primop, it seems that some docs may be out of date with respect to all of the touch points for a simple primop addition.  I've followed what the various wiki pages have to offer (primarily and  without success.  I even unraveled my PrimOp to be, basically, an exact copy of another PrimOp without luck.
> The primop I'm attempting to add is now very, very simple and copies FloatAddOp exactly so there must be an additional file I have to modify before the primop is "completely" added.
> Here are my simple modifications:
> ./compiler/prelude/primops.txt.pp
> primop   FloatVAddOp   "plusFloatVec#"      Dyadic            
>    Float# -> Float# -> Float#
>    with commutable = True
> ./compiler/codeGen/CgPrimOp.hs
> translateOp FloatVAddOp  = Just (MO_F_Add W32)
> The compiler error is below.  I have the feeling that an interface is not being built somewhere … this must be a simple one but I can't find any references to this error anywhere … has anyone seen this one before?????
> "inplace/bin/ghc-stage1"   -H64m -O0 -fasm    -package-name ghc-7.3.20111007 -hide-all-packages -i -icompiler/basicTypes -icompiler/cmm -icompiler/codeGen -icompiler/coreSyn -icompiler/deSugar -icompiler/ghci -icompiler/hsSyn -icompiler/iface -icompiler/llvmGen -icompiler/main -icompiler/nativeGen -icompiler/parser -icompiler/prelude -icompiler/profiling -icompiler/rename -icompiler/simplCore -icompiler/simplStg -icompiler/specialise -icompiler/stgSyn -icompiler/stranal -icompiler/typecheck -icompiler/types -icompiler/utils -icompiler/vectorise -icompiler/stage2/build -icompiler/stage2/build/autogen -Icompiler/stage2/build -Icompiler/stage2/build/autogen -Icompiler/../libffi/build/include -Icompiler/stage2 -Icompiler/../libraries/base/cbits -Icompiler/../libraries/base/include -Icompiler/. -Icompiler/parser -Icompiler/utils   -optP-DGHCI -optP-include -optPcompiler/stage2/build/autogen/cabal_macros.h -package Cabal-1.11.2 -package array- -package base- -package bin-package-db- -package bytestring- -package containers- -package directory- -package filepath- -package hoopl- -package hpc- -package old-time- -package process- -package template-haskell- -package unix-  -Wall -fno-warn-name-shadowing -fno-warn-orphans -XHaskell98 -XNondecreasingIndentation -XCPP -XMagicHash -XUnboxedTuples -XPatternGuards -XForeignFunctionInterface -XEmptyDataDecls -XTypeSynonymInstances -XMultiParamTypeClasses -XFlexibleInstances -XRank2Types -XScopedTypeVariables -XDeriveDataTypeable  -DGHCI_TABLES_NEXT_TO_CODE -DSTAGE=2 -O0 -fasm  -no-user-package-conf -rtsopts     -odir compiler/stage2/build -hidir compiler/stage2/build -stubdir compiler/stage2/build -hisuf hi -osuf  o -hcsuf hc -c compiler/iface/BinIface.hs -o compiler/stage2/build/BinIface.o
> ghc-stage1: panic! (the 'impossible' happened)
>   (GHC version 7.3.20111007 for x86_64-unknown-linux):
>           applyTypeToArgs
>     ghc-prim:GHC.Prim.sizeofMutableArray#{(w) v 91V} [gid[PrimOp]]
>       @ e{tv i4L2} [tv] ds{v i4Lc} [lid] i#{v i4Lg} [lid]
>     forall a{tv 12} [tv].
>     ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
>       e{tv i4L2} [tv] a{tv 12} [tv]
>     -> ghc-prim:GHC.Prim.Int#{(w) tc 3G}
> Paul Monday
> Parallel Scientific, LLC.
> paul.monday at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Glasgow-haskell-users mailing list