X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=doc%2Ffeatures.texi;h=06317a583fd2844873f76d35dc5fd5591fee0a73;hb=b4eefdd675c9aef9ff8bd1089d031ee05733195b;hp=2c5141e4ef45bca74a1aa84cbc9b3625e9acf619;hpb=ebd96d2c56c742d9d00bccb9faee5fc1a7db664a;p=goredo.git diff --git a/doc/features.texi b/doc/features.texi index 2c5141e..06317a5 100644 --- a/doc/features.texi +++ b/doc/features.texi @@ -1,6 +1,10 @@ @node Features +@cindex features @unnumbered Features +Notable features that differentiate @command{goredo} from many other +implementations. + @itemize @item explicit useful and convenient checks from @command{apenwarr/redo}: @@ -9,15 +13,25 @@ @item check that @file{stdout} and @file{$3} are not written simultaneously @item check that generated target was not modified "externally" outside the redo, preventing its overwriting, but continuing the build + (optionally can stop) @end itemize +@item recursive, indented and serialized logs display ability, with + priority to the depth and bad return codes, like in @command{apenwarr/redo}, + thanks to @url{https://apenwarr.ca/log/20181106, apenwarr's article} +@item all environment variables, working directory, command line + arguments, start/finish times, duration, participated PIDs, return + codes can be saved for later investigation @item targets, dependency information and their directories are explicitly synced (can be disabled, should work faster) -@item file's change is detected by comparing its size, @code{ctime} - and BLAKE3 hash +@item file's change is detected by comparing its size, and + @url{https://github.com/BLAKE3-team/BLAKE3, BLAKE3} hash. Also as an + optimization, by default if file's @code{ctime} is same, then hash + check is skipped. Optionally you can disable that behaviour, or even + enable trust to file's @code{mtime} @item files creation is @code{umask}-friendly (unlike @code{mkstemp()} used in @command{redo-c}) @item parallel build with jobs limit, optionally in infinite mode -@item coloured messages (can be disabled) +@item optional coloured messages @item verbose debug messages, including out-of-date determination, PIDs, lock and jobserver acquirings/releases @item displaying of each target's execution time @@ -28,6 +42,7 @@ for each line. To convert them to localtime you can use either @command{tai64nlocal} utility from @url{http://cr.yp.to/daemontools.html, daemontools}, or similar one: - @code{go get go.cypherpunks.ru/tai64n/cmd/tai64nlocal} + @code{go install go.cypherpunks.ru/tai64n/v2/cmd/tai64nlocal} +@item Either GNU Make or bmake @ref{Jobserver, jobserver} compatibility support @end itemize