| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | Haskell2010 | 
GHC.Iface.Binary
Description
Binary interface file support.
Synopsis
- writeBinIface :: Profile -> TraceBinIFace -> FilePath -> ModIface -> IO ()
- readBinIface :: Profile -> NameCache -> CheckHiWay -> TraceBinIFace -> FilePath -> IO ModIface
- readBinIfaceHeader :: Profile -> NameCache -> CheckHiWay -> TraceBinIFace -> FilePath -> IO (Fingerprint, BinHandle)
- getSymtabName :: NameCache -> Dictionary -> SymbolTable -> BinHandle -> IO Name
- getDictFastString :: Dictionary -> BinHandle -> IO FastString
- data CheckHiWay
- data TraceBinIFace- = TraceBinIFace (SDoc -> IO ())
- | QuietBinIFace
 
- getWithUserData :: Binary a => NameCache -> BinHandle -> IO a
- putWithUserData :: Binary a => TraceBinIFace -> BinHandle -> a -> IO ()
- getSymbolTable :: BinHandle -> NameCache -> IO SymbolTable
- putName :: BinDictionary -> BinSymbolTable -> BinHandle -> Name -> IO ()
- putDictionary :: BinHandle -> Int -> UniqFM FastString (Int, FastString) -> IO ()
- putFastString :: BinDictionary -> BinHandle -> FastString -> IO ()
- putSymbolTable :: BinHandle -> Int -> UniqFM Name (Int, Name) -> IO ()
- data BinSymbolTable = BinSymbolTable {- bin_symtab_next :: !FastMutInt
- bin_symtab_map :: !(IORef (UniqFM Name (Int, Name)))
 
- data BinDictionary = BinDictionary {- bin_dict_next :: !FastMutInt
- bin_dict_map :: !(IORef (UniqFM FastString (Int, FastString)))
 
Public API for interface file serialisation
writeBinIface :: Profile -> TraceBinIFace -> FilePath -> ModIface -> IO () Source #
Write an interface file
readBinIface :: Profile -> NameCache -> CheckHiWay -> TraceBinIFace -> FilePath -> IO ModIface Source #
Read an interface file.
readBinIfaceHeader :: Profile -> NameCache -> CheckHiWay -> TraceBinIFace -> FilePath -> IO (Fingerprint, BinHandle) Source #
Read an interface file header, checking the magic number, version, and way. Returns the hash of the source file and a BinHandle which points at the start of the rest of the interface file data.
getSymtabName :: NameCache -> Dictionary -> SymbolTable -> BinHandle -> IO Name Source #
getDictFastString :: Dictionary -> BinHandle -> IO FastString Source #
data CheckHiWay Source #
Constructors
| CheckHiWay | |
| IgnoreHiWay | 
Instances
| Eq CheckHiWay Source # | |
| Defined in GHC.Iface.Binary | |
data TraceBinIFace Source #
Constructors
| TraceBinIFace (SDoc -> IO ()) | |
| QuietBinIFace | 
getWithUserData :: Binary a => NameCache -> BinHandle -> IO a Source #
This performs a get action after reading the dictionary and symbol table. It is necessary to run this before trying to deserialise any Names or FastStrings.
putWithUserData :: Binary a => TraceBinIFace -> BinHandle -> a -> IO () Source #
Put a piece of data with an initialised UserData field. This
 is necessary if you want to serialise Names or FastStrings.
 It also writes a symbol table and the dictionary.
 This segment should be read using getWithUserData.
Internal serialisation functions
getSymbolTable :: BinHandle -> NameCache -> IO SymbolTable Source #
putName :: BinDictionary -> BinSymbolTable -> BinHandle -> Name -> IO () Source #
putDictionary :: BinHandle -> Int -> UniqFM FastString (Int, FastString) -> IO () Source #
putFastString :: BinDictionary -> BinHandle -> FastString -> IO () Source #
data BinSymbolTable Source #
Constructors
| BinSymbolTable | |
| Fields 
 | |
data BinDictionary Source #
Constructors
| BinDictionary | |
| Fields 
 | |