Chan
Unbounded channels.
The channels are implemented with
MVars and therefore inherit
all the caveats that apply to
MVars (possibility of races,
deadlocks etc). The
stm (software transactional memory)
library has a more robust implementation of channels called
TChans.
Chan is an abstract type representing an unbounded FIFO
channel.
Chan is an abstract type representing an unbounded FIFO
channel.
Unbounded channels.
Deviations: Chan as defined here does not have an
Eq instance, this is because the MonadConc
MVar type does not have an Eq constraint. The
deprecated unGetChan and isEmptyCHan functions are
not provided. Furthermore, the getChanContents function is
not provided as it needs unsafe I/O.
Chan is an abstract type representing an unbounded FIFO
channel.
Result is different than OldFact.
An action to be invoked if a configuration property is changed.
If this action is invoked and throws an exception, the
onError
function will be called.
CHANGEATTRS is a more expressive alternative to ADDATTRS
How should you determine if a file has changed, used by
shakeChange. The most common values are
ChangeModtime
(the default, very fast,
touch causes files to rebuild) and
ChangeModtimeAndDigestInput (slightly slower,
touch
and switching
git branches does not cause input files to
rebuild).
Compare equality of file contents digests, a file has changed if its
digest changes. A touch will not force a rebuild. Use this
mode if modification times on your file system are unreliable.
Compare equality of modification timestamps, a file has changed if its
last modified time changes. A touch will force a rebuild.
This mode is fast and usually sufficiently accurate, so is the
default.
A file is rebuilt if both its modification time and digest have
changed. For efficiency reasons, the modification time is checked
first, and if that has changed, the digest is checked.
Use
ChangeModtimeAndDigest for input/source files and
ChangeModtime for output files. An input file is one which is a
dependency but is not built by Shake as it has no matching rule and
already exists on the file system.
A file is rebuilt if either its modification time or its digest has
changed. A touch will force a rebuild, but even if a files
modification time is reset afterwards, changes will also cause a
rebuild.
I recomputed the value and it was different.
I recomputed the value and it was the same.