Lake Traces #
This module defines Lake traces and associated utilities.
Traces are used to determine whether a Lake build artifact is dirty
(needs to be rebuilt) or is already up-to-date.
The primary type is Lake.BuildTrace
.
Utilities #
Trace Abstraction #
Compute the trace of an object in a supporting monad.
Equations
Instances For
- nilTrace : α
The nil trace. Should not unduly clash with a proper trace.
Instances
- mixTrace : α → α → α
Combine two traces. The result should be dirty if either of the inputs is dirty.
Instances
Equations
Instances For
Equations
Equations
Instances For
Equations
Hash Trace #
Equations
Compute the hash of object a
in a pure context.
Equations
Instances For
Compute the hash an object in an supporting monad.
Equations
Instances For
Compute the hash of a binary file. Binary files are equivalent only if they are byte identical.
Equations
Instances For
Compute the hash of a text file.
Normalizes \r\n
sequences to \n
for cross-platform compatibility.
Equations
Instances For
A wrapper around FilePath
that adjusts its ComputeHash
implementation
to normalize \r\n
sequences to \n
for cross-platform compatibility.
- path : System.FilePath
Instances For
Compute the hash of a file. If text := true
, normalize line endings.
Equations
Instances For
Compute the hash of each element of an array and combine them (left-to-right).
Equations
Instances For
Equations
Modification Time (MTime) Trace #
Equations
Return the modification time of a file recorded by the OS.
Equations
Instances For
Lake Build Trace #
Sets the caption of the trace.
Equations
Instances For
Clear the inputs of the build trace. This is used to remove unnecessary repetition of trace trees across multiple trace files.
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Check if the info is up-to-date using a hash. That is, check that info exists and its input hash matches this trace's hash.
Equations
Instances For
Check if the info is up-to-date using modification time. That is, check if the info is newer than this input trace's modification time.