ghc-9.13: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Unit.Module.Location

Description

Module location

Synopsis

Documentation

data ModLocation Source #

Module Location

Where a module lives on the file system: the actual locations of the .hs, .hi, .dyn_hi, .o, .dyn_o and .hie files, if we have them.

For a module in another unit, the ml_hs_file_ospath and ml_obj_file_ospath components of ModLocation are undefined.

The locations specified by a ModLocation may or may not correspond to actual files yet: for example, even if the object file doesn't exist, the ModLocation still contains the path to where the object file will reside if/when it is created.

The paths of anything which can affect recompilation should be placed inside ModLocation.

When a ModLocation is created none of the filepaths will have -boot suffixes. This is because in --make mode the ModLocation is put in the finder cache which is indexed by ModuleName, when a ModLocation is retrieved from the FinderCache the boot suffixes are appended. The other case is in -c mode, there the ModLocation immediately gets given the boot suffixes in mkOneShotModLocation.

Constructors

OsPathModLocation 

Fields

Instances

Instances details
Outputable ModLocation Source # 
Instance details

Defined in GHC.Unit.Module.Location

Methods

ppr :: ModLocation -> SDoc Source #

Show ModLocation Source # 
Instance details

Defined in GHC.Unit.Module.Location

addBootSuffix :: OsPath -> OsPath Source #

Add the -boot suffix to .hs, .hi and .o files

addBootSuffix_maybe :: IsBootInterface -> OsPath -> OsPath Source #

Add the -boot suffix if the Bool argument is True

addBootSuffixLocn :: ModLocation -> ModLocation Source #

Add the -boot suffix to all file paths associated with the module

addBootSuffixLocnOut :: ModLocation -> ModLocation Source #

Add the -boot suffix to all output file paths associated with the module, not including the input file itself

removeBootSuffix :: OsPath -> OsPath Source #

Remove the -boot suffix to .hs, .hi and .o files