]> Cypherpunks.ru repositories - goredo.git/blobdiff - doc/faq.texi
Fix various typos and stylistic
[goredo.git] / doc / faq.texi
index 2098b77eb00bc77754c50dc56779824719fe2687..e494e88500f7b8995301ef751b9764a25ac81242 100644 (file)
@@ -4,9 +4,9 @@
 @anchor{Stamping}
 @section Hashing and stamping
 
-All targets are checksummed if no @env{REDO_INODE_NO_TRUST} environment
-variable is set and target's @file{ctime} differs from the previous one.
-@command{apenwarr/redo} gives
+All targets are checksummed if target's size, @code{ctime}/@code{mtime}
+differs from the previous one (depending on @ref{OOD, @env{$REDO_INODE_TRUST}}
+value). @command{apenwarr/redo} gives
 @url{https://redo.readthedocs.io/en/latest/FAQImpl/#why-not-always-use-checksum-based-dependencies-instead-of-timestamps, many reasons}
 why every time checksumming is bad, but in my opinion in practice all of
 them do not apply.
@@ -14,15 +14,13 @@ them do not apply.
 @itemize
 @item Aggregate targets and willing to be out-of-date ones just must not
   produce empty output files. @command{apenwarr/*}, @command{redo-c} and
-  @command{goredo} implementations consider non existing file as an
+  @command{goredo} implementations treat non existing file as an
   out-of-date target
 @item If you really wish to produce an empty target file, just touch @file{$3}
 @end itemize
 
-DJB's proposal with both @file{stdout} and @file{$3} gives that ability
-to control your desired behaviour. Those who do not capture
-@file{stdout} -- failed. Those who create an empty file if no
-@file{stdout} was written -- failed.
+Those who create an empty file if no @file{stdout} was written -- are
+failed implementations.
 
 redo is a tool to help people. Literally all targets can be safely
 @code{redo-stamp < $3}-ed, reducing false positive out-of-dates. Of
@@ -30,11 +28,11 @@ course, with the correct @file{stdout}/@file{$3} working and placing
 necessary results in @file{$3}, instead of just silently feeding them in
 @command{redo-stamp}.
 
-redo implementations are already automatically record -ifchange on
+redo implementations already automatically record -ifchange on
 @file{.do} files and -ifcreate on non-existing @file{.do} files. So why
 they can not record @command{redo-stamp} the same way implicitly? No,
-Zen of Python does not applicable there, because -ifchange/-ifcreate
-contradict it already.
+Zen of Python is not applicable there, because -ifchange/-ifcreate
+contradicts it already.
 
 Modern cryptographic hash algorithms and CPUs are so fast, that even all
 read and writes to or from hard drive arrays can be easily checksummed
@@ -56,7 +54,7 @@ then just remove @file{foo/.redo/bar.rec}.
 
 @section Does redo-always always rebuilds target?
 
-By definition, it should be build always, as
+By definition, it should be built always, as
 @url{http://news.dieweltistgarnichtso.net/bin/redo-sh.html#why-built-twice,
 redo-sh} and @command{redo-c} implementations do. But that ruins the
 whole redo usability, potentially rebuilding everything again and again.
@@ -79,7 +77,7 @@ Building of the lower level OOD target first is unfair and dishonest
 thing to do, because probably top level target, being the OOD, won't be
 dependant on lower level target anymore at all. Actually @command{goredo}
 does this as a shameful hack and only for always-targets, still existing
-in the wild. The whole @command{redo-always} idea is wrong.
+in the wild. The whole @command{redo-always} idea is considered harmful.
 
 If you wish to run something and decide if it must OOD the toplevel
 targets, then just run @command{redo} to forcefully rebuild it and then