Temporary file-system
Moduleghc-9.10.3GHC2021
GHC.Utils.TmpFs
Temporary file-system management
- 4 types
- 15 values
- Packageghc-9.10.3
- Exports19
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceTmpFs.hs
Initialise an empty TmpFs
Initialise an empty TmpFs sharing unique numbers and per-process temporary directories with the given TmpFs
It's not safe to use the subdirs created by the original TmpFs with the
forked one. Use newTempSubDir to create new subdirs instead.
Merge the first TmpFs into the second.
The first TmpFs is returned emptied.
A collection of paths that must be deleted before ghc exits.
Constructors
PathsToCleanptcGhcSession :: !Set FilePathPaths that will be deleted at the end of runGhc(T)
ptcCurrentModule :: !Set FilePathPaths that will be deleted the next time cleanCurrentModuleTempFiles is called, or otherwise at the end of the session.
An empty PathsToClean
Used when a temp file is created. This determines which component Set of PathsToClean will get the temp file
Constructors
TFL_CurrentModuleA file with lifetime TFL_CurrentModule will be cleaned up at the end of upweep_mod
TFL_GhcSessionA file with lifetime TFL_GhcSession will be cleaned up at the end of runGhc(T)
Instances1Show
Show TempFileLifetimeDefined in ghc-9.10.3 · GHC.Utils.TmpFs
Delete all paths in tmp_files_to_clean and tmp_subdirs_to_clean.
Delete all paths in tmp_files_to_clean and tmp_subdirs_to_clean
That have lifetime TFL_CurrentModule.
If a file must be cleaned eventually, but must survive a
cleanCurrentModuleTempFiles, ensure it has lifetime TFL_GhcSession.
Keep all the paths in tmp_files_to_clean and tmp_subdirs_to_clean
that have lifetime TFL_CurrentModule. This function is used when `-keep-tmp-files` is
used in an OPTIONS_GHC pragma.
This function removes the temporary file from the TmpFs so we no longer remove
it at the env when cleanTempFiles is called.
Ensure that new_files are cleaned on the next call of cleanTempFiles or cleanCurrentModuleTempFiles, depending on lifetime. If any of new_files are already tracked, they will have their lifetime updated.
Update the lifetime of files already being tracked. If any files are not being tracked they will be discarded.
Create a new temporary subdirectory that doesn't already exist
The temporary subdirectory is automatically removed at the end of the
GHC session, but its contents aren't. Make sure to leave the directory
empty before the end of the session, either by removing content
directly or by using addFilesToClean.
If the created subdirectory is not empty, it will not be removed (along with its parent temporary directory) and a warning message will be printed at verbosity 2 and higher.
Create and use a temporary directory in the system standard temporary directory.
Behaves exactly the same as withTempDirectory, except that the parent temporary directory will be that returned by getTemporaryDirectory.
withTempDirectory Create and use a temporary directory.
Creates a new temporary directory inside the given directory, making use of the template. The temp directory is deleted after use. For example:
withTempDirectory "src" "sdist." $ \tmpDir -> do ...The tmpDir will be a new subdirectory of the given directory, e.g.
src/sdist.342.