GHC.Iface.Binary
Binary interface file support.
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
|