Boils down to eval error propogation or lack thereof.
Unified · Split
| @@ -149,7 +149,7 @@ bocaml2() { · 148 unmodified lines | |||
| 149 | local cmd="ocamlc -depend -bytecode -one-line $(oincs $o) $s" | 149 | local cmd="ocamlc -depend -bytecode -one-line $(oincs $o) $s" |
| 150 | local keycmd="digest $o $s $o.depl" | 150 | local keycmd="digest $o $s $o.depl" |
| 151 | isfresh "$o.depl" "$overs$cmd$(eval $keycmd)" || { | 151 | isfresh "$o.depl" "$overs$cmd$(eval $keycmd)" || { |
| 152 | eval "$cmd || die '$cmd' failed" | { | 152 | eval "$cmd" | { |
| 153 | read _ _ depl | 153 | read _ _ depl |
| 154 | :>"$o.depl" | 154 | :>"$o.depl" |
| 155 | for d in $depl; do | 155 | for d in $depl; do |
| @@ -176,7 +176,7 @@ bocaml2() { · 20 unmodified lines | |||
| 176 | keycmd="digest $o $s $(< $o.depl)" | 176 | keycmd="digest $o $s $(< $o.depl)" |
| 177 | isfresh "$o" "$overs$cmd$(eval $keycmd)" || { | 177 | isfresh "$o" "$overs$cmd$(eval $keycmd)" || { |
| 178 | printf "%*.s%s -> %s\n" $n '' "${s#$srcd/}" "${o#$outd/}" | 178 | printf "%*.s%s -> %s\n" $n '' "${s#$srcd/}" "${o#$outd/}" |
| 179 | eval "$cmd || die '$cmd failed'" | 179 | eval "$cmd" || die "$cmd failed" |
| 180 | echo "$overs$cmd$(eval $keycmd)" >"$o.past" | 180 | echo "$overs$cmd$(eval $keycmd)" >"$o.past" |
| 181 | } && vecho "fresh '$o'" | 181 | } && vecho "fresh '$o'" |
| 182 | } | 182 | } |
| @@ -220,7 +220,7 @@ bocamlc() { · 37 unmodified lines | |||
| 220 | local keycmd='digest $o $d' | 220 | local keycmd='digest $o $d' |
| 221 | isfresh "$o" "$cvers$cmd$(eval $keycmd)" || { | 221 | isfresh "$o" "$cvers$cmd$(eval $keycmd)" || { |
| 222 | printf "%s -> %s\n" "${s#$srcd/}" "${o#$outd/}" | 222 | printf "%s -> %s\n" "${s#$srcd/}" "${o#$outd/}" |
| 223 | eval "$cmd || die '$cmd failed'" | 223 | eval "$cmd" || die "$cmd failed" |
| 224 | read _ d <$o.dep | 224 | read _ d <$o.dep |
| 225 | echo "$cvers$cmd$(eval $keycmd)" >"$o.past" | 225 | echo "$cvers$cmd$(eval $keycmd)" >"$o.past" |
| 226 | } && vecho "fresh $o" | 226 | } && vecho "fresh $o" |
| @@ -234,7 +234,7 @@ bobjc() { · 7 unmodified lines | |||
| 234 | local keycmd='digest $o $d' | 234 | local keycmd='digest $o $d' |
| 235 | isfresh "$o" "$cmd$(eval $keycmd)" || { | 235 | isfresh "$o" "$cmd$(eval $keycmd)" || { |
| 236 | printf "%s -> %s\n" "${s#$srcd/}" "${o#$outd/}" | 236 | printf "%s -> %s\n" "${s#$srcd/}" "${o#$outd/}" |
| 237 | eval "$cmd || die '$cmd failed'" | 237 | eval "$cmd" || die "$cmd failed" |
| 238 | read _ d <$o.dep | 238 | read _ d <$o.dep |
| 239 | echo "$cmd$(eval $keycmd)" >"$o.past" | 239 | echo "$cmd$(eval $keycmd)" >"$o.past" |
| 240 | } && vecho "fresh $o" | 240 | } && vecho "fresh $o" |
| @@ -246,7 +246,7 @@ cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)" · 5 unmodified lines | |||
| 246 | keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml" | 246 | keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml" |
| 247 | isfresh "$outd/confstruct.ml" "$cmd$(eval $keycmd)" || { | 247 | isfresh "$outd/confstruct.ml" "$cmd$(eval $keycmd)" || { |
| 248 | echo "generating $outd/confstruct.ml" | 248 | echo "generating $outd/confstruct.ml" |
| 249 | eval "$cmd || die genconfstr.sh failed" | 249 | eval "$cmd" || die genconfstr.sh failed |
| 250 | echo "$cmd$(eval $keycmd)" > "$outd/confstruct.ml.past" | 250 | echo "$cmd$(eval $keycmd)" > "$outd/confstruct.ml.past" |
| 251 | } && vecho "fresh $outd/confstruct.ml" | 251 | } && vecho "fresh $outd/confstruct.ml" |
| 252 | 252 | ||
| @@ -264,7 +264,7 @@ for target; do · 11 unmodified lines | |||
| 264 | cmd="asciidoctor -b manpage -o $out $src" | 264 | cmd="asciidoctor -b manpage -o $out $src" |
| 265 | isfresh "$out" "$cmd$(eval $keycmd)" || { | 265 | isfresh "$out" "$cmd$(eval $keycmd)" || { |
| 266 | echo "$src -> $out" | 266 | echo "$src -> $out" |
| 267 | eval "$cmd || die '$cmd failed'" | 267 | eval "$cmd" || die "$cmd failed" |
| 268 | echo "$cmd$(eval $keycmd)" >"$out.past" | 268 | echo "$cmd$(eval $keycmd)" >"$out.past" |
| 269 | } && vecho "fresh $out" | 269 | } && vecho "fresh $out" |
| 270 | done;; | 270 | done;; |
| @@ -306,7 +306,7 @@ cmd="ocamlc -custom $libs -o $outd/llpp $cobjs $(echo $ord) -cclib \"$clibs\"" · 35 unmodified lines | |||
| 306 | keycmd="digest $outd/llpp $cobjs $ord $mulibs" | 306 | keycmd="digest $outd/llpp $cobjs $ord $mulibs" |
| 307 | isfresh "$outd/llpp" "$cmd$(eval $keycmd)" || { | 307 | isfresh "$outd/llpp" "$cmd$(eval $keycmd)" || { |
| 308 | echo linking $outd/llpp | 308 | echo linking $outd/llpp |
| 309 | eval "$cmd || die '$cmd failed'" | 309 | eval "$cmd" || die "$cmd failed" |
| 310 | echo "$cmd$(eval $keycmd)" >"$outd/llpp.past" | 310 | echo "$cmd$(eval $keycmd)" >"$outd/llpp.past" |
| 311 | } && vecho "fresh llpp" | 311 | } && vecho "fresh llpp" |
| 312 | 312 | ||
| @@ -9,7 +9,11 @@ · 8 unmodified lines | |||
| 9 | ** TODO Make isfresh work (properly) with multiple targets | 9 | ** TODO Make isfresh work (properly) with multiple targets |
| 10 | ** TODO Removing .mlis leads to build errors | 10 | ** TODO Removing .mlis leads to build errors |
| 11 | Nuking everything (or just deleting .deps?) solves it though | 11 | Nuking everything (or just deleting .deps?) solves it though |
| 12 | ** TODO errors in config.ml | 12 | ** DONE errors in config.ml (!) |
| 13 | CLOSED: [2020-08-09 Sun 08:53] | ||
| 14 | they do not lead to aborted compilation | ||
| 15 | *** recipe: making a fresh error and compiling | ||
| 16 | (so that both config.ml and stuff that depends on it is being rebuilt by build.bash) | ||
| 13 | * TODO [maybe] inside rect/quad (_Generic) | 17 | * TODO [maybe] inside rect/quad (_Generic) |
| 14 | * TODO Shift-insert for searches | 18 | * TODO Shift-insert for searches |
| 15 | * TODO Threaded rendering | 19 | * TODO Threaded rendering |