ghc-lib-0.20201201: The GHC API, decoupled from GHC versions
Safe HaskellNone
LanguageHaskell2010

GHC.Iface.Binary

Description

Binary interface file support.

Synopsis

Public API for interface file serialisation

writeBinIface :: Profile -> TraceBinIFace -> FilePath -> ModIface -> IO () Source #

Write an interface file

readBinIface :: CheckHiWay -> TraceBinIFace -> FilePath -> TcRnIf a b ModIface Source #

Read an interface file

readBinIface_ :: Profile -> CheckHiWay -> TraceBinIFace -> FilePath -> NameCacheUpdater -> IO ModIface Source #

Read an interface file in IO.

getSymtabName :: NameCacheUpdater -> Dictionary -> SymbolTable -> BinHandle -> IO Name Source #

getDictFastString :: Dictionary -> BinHandle -> IO FastString Source #

data CheckHiWay Source #

Constructors

CheckHiWay 
IgnoreHiWay 

Instances

Instances details
Eq CheckHiWay Source # 
Instance details

Defined in GHC.Iface.Binary

data TraceBinIFace Source #

Constructors

TraceBinIFace (SDoc -> IO ()) 
QuietBinIFace 

getWithUserData :: Binary a => NameCacheUpdater -> 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 -> NameCacheUpdater -> IO SymbolTable Source #

putName :: BinDictionary -> BinSymbolTable -> BinHandle -> Name -> IO () Source #

putDictionary :: BinHandle -> Int -> UniqFM FastString (Int, FastString) -> IO () #

putFastString :: BinDictionary -> BinHandle -> FastString -> IO () Source #

putSymbolTable :: BinHandle -> Int -> UniqFM Name (Int, Name) -> IO () Source #

data BinSymbolTable Source #

Constructors

BinSymbolTable 

Fields

data BinDictionary Source #

Constructors

BinDictionary 

Fields