ghc-9.4.0.20220721: The GHC API
Safe HaskellSafe-Inferred
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

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.

data CheckHiWay Source #

Constructors

CheckHiWay 
IgnoreHiWay 

Instances

Instances details
Eq CheckHiWay Source # 
Instance details

Defined in GHC.Iface.Binary

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