X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghci%2FByteCodeItbls.lhs;h=fd39e44eb3d9a775ba1f2ffd8b3c137b598aa6fa;hb=9608803049b49cacef9c452d079693a1111be036;hp=9b2dac0618d6801b3ee6ce27badeef3b09154f53;hpb=cdce647711c0f46f5799b24de087622cb77e647f;p=ghc-hetmet.git diff --git a/compiler/ghci/ByteCodeItbls.lhs b/compiler/ghci/ByteCodeItbls.lhs index 9b2dac0..fd39e44 100644 --- a/compiler/ghci/ByteCodeItbls.lhs +++ b/compiler/ghci/ByteCodeItbls.lhs @@ -6,6 +6,13 @@ ByteCodeItbls: Generate infotables for interpreter-made bytecodes \begin{code} {-# OPTIONS -optc-DNON_POSIX_SOURCE #-} +{-# OPTIONS -w #-} +-- The above warning supression flag is a temporary kludge. +-- While working on this module you are encouraged to remove it and fix +-- any warnings in the module. See +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings +-- for details + module ByteCodeItbls ( ItblEnv, ItblPtr(..), itblCode, mkITbls , StgInfoTable(..) ) where @@ -21,7 +28,7 @@ import TyCon ( TyCon, tyConFamilySize, isDataTyCon, tyConDataCons ) import Constants ( mIN_PAYLOAD_SIZE, wORD_SIZE ) import CgHeapery ( mkVirtHeapOffsets ) import FastString ( FastString(..) ) -import Util ( lengthIs, listLengthCmp ) +import Util import Outputable import Foreign @@ -31,7 +38,6 @@ import Data.Bits ( Bits(..), shiftR ) import GHC.Exts ( Int(I#), addr2Int# ) import GHC.Ptr ( Ptr(..) ) -import GHC.Prim import Debug.Trace import Text.Printf @@ -48,10 +54,8 @@ newtype ItblPtr = ItblPtr (Ptr ()) deriving Show itblCode :: ItblPtr -> Ptr () itblCode (ItblPtr ptr) - = (castPtr ptr) -#ifdef GHCI_TABLES_NEXT_TO_CODE - `plusPtr` conInfoTableSizeB -#endif + | ghciTablesNextToCode = castPtr ptr `plusPtr` conInfoTableSizeB + | otherwise = castPtr ptr -- XXX bogus conInfoTableSizeB = 3 * wORD_SIZE @@ -117,7 +121,7 @@ make_constr_itbls cons , code = code #endif } - qNameCString <- newCString $ dataConIdentity dcon + qNameCString <- newArray0 0 $ dataConIdentity dcon let conInfoTbl = StgConInfoTable { conDesc = qNameCString, infoTable = itbl @@ -273,7 +277,7 @@ type HalfWord = Word16 #endif data StgConInfoTable = StgConInfoTable { - conDesc :: CString, + conDesc :: Ptr Word8, infoTable :: StgInfoTable }