Implementing a new Primop, stage1 panic

Paul Monday paul.monday at parsci.com
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 parsci.com




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 haskell.org [mailto:glasgow-haskell-users-bounces at haskell.org] On Behalf Of Paul Monday
> Sent: 16 October 2011 16:54
> To: glasgow-haskell-users at haskell.org
> 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 http://hackage.haskell.org/trac/ghc/wiki/AddingNewPrimitiveOperations and http://hackage.haskell.org/trac/ghc/wiki/Commentary/PrimOps)  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-0.3.0.3 -package base-4.4.0.0 -package bin-package-db-0.0.0.0 -package bytestring-0.9.2.0 -package containers-0.4.2.0 -package directory-1.1.0.1 -package filepath-1.2.0.1 -package hoopl-3.8.7.2 -package hpc-0.5.1.0 -package old-time-1.0.0.7 -package process-1.1.0.0 -package template-haskell-2.6.0.0 -package unix-2.5.0.0  -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 parsci.com
>  
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20111017/d55f8f3c/attachment-0001.htm>


More information about the Glasgow-haskell-users mailing list