raco setup: don't count stdout/stderr output as failure

Although compiling modules really should not write output, one problem
is that `parser-tools/yacc` has long reported shift/reduce conflicts
to stderr.

Only parallel mode was treating stdout/stderr output as failure, which
made `raco setup` inconsistent. Make parallel mode allow output, like
sequential mode does.

Related to #3457
This commit is contained in:
Matthew Flatt 2021-01-12 06:42:45 -07:00
parent 36e04fdbcd
commit 7a52e81c33

View File

@ -117,11 +117,18 @@
(log-message pb-logger level msg (parallel-compile-event id data)))
#f]
['DONE
(define (string-!empty? s) (not (zero? (string-length s))))
(when (ormap string-!empty? (list out err))
(append-error cc "making" #f out err "output"))
;(when last (printer (current-output-port) "made" "~a" (cc-name cc)))
#t]
(cond
[#f
;; treat output as an error:
(define (string-!empty? s) (not (zero? (string-length s))))
(when (ormap string-!empty? (list out err))
(append-error cc "making" #f out err "output"))]
[else
;; copy output to here:
(display out)
(display err (current-error-port))])
;(when last (printer (current-output-port) "made" "~a" (cc-name cc)))
#t]
[_ (eprintf "Failed trying to match:\n~s\n" result-type)]))]
[(list _ (list 'ADD fn))
;; Currently ignoring queued individual files