1.5 API for Parallel Builds🔗ℹ 
The 
setup/parallel-build library provides the parallel-compilation
functionality of 
raco setup and 
raco make.
Both parallel-compile-files and parallel-compile log messages
to the topic 'setup/parallel-build at the level 'info. These
messages are instances of a parallel-compile-event prefab structure:
(struct parallel-compile-event (worker event) #:prefab)
The 
parallel-compile-files utility function is used by 
raco make to
compile a list of paths in parallel.  The optional
#:worker-count argument specifies the number of compile workers to spawn during
parallel compilation.  The compile workers are implemented as Racket places if 
use-places?
is true, otherwise the compile workers are implemented as separate
Racket processes. The callback, 
handler, is called with the symbol
'done as the 
handler-type argument for each successfully compiled file,
'output when a
successful compilation produces stdout/stderr output, 
'error when a
compilation error has occurred, or 
'fatal-error when an unrecoverable
error occurs. The other arguments give more information for each status update.
The return value is 
(void) if it was successful, or 
#f if there was an error.
| (parallel-compile-files | 
| source-files | 
| #:worker-count 4 | 
| #:handler | 
| (lambda (type work msg out err) | 
| (match type | 
| ['done (when (verbose) (printf " Made ~a\n" work))] | 
| ['output (printf " Output from: ~a\n~a~a" work out err)] | 
| [_ (printf " Error compiling ~a\n~a\n~a~a" | 
| work | 
| msg | 
| out | 
| err)]))) | 
Changed in version 7.0.0.19 of package base: Added the #:use-places? argument.
| | (parallel-compile |  | worker-count |  |  |  |  |  |  |  | setup-fprintf |  |  |  |  |  |  |  | append-error |  |  |  |  |  |  |  | collects-tree |  |  |  |  |  |  | [ | #:use-places? use-places?]) |  | → |  | (void) | 
 | 
| worker-count : non-negative-integer? | 
|  | 
|  | 
| collects-tree : (listof any/c) | 
| use-places? : any/c = #t | 
The 
parallel-compile function is used by 
raco setup to
compile collections in parallel. The 
worker-count argument
specifies the number of compilation workers to spawn during parallel
compilation. The 
use-places? argument specified whether
to use places, otherwise separate processes
are used. The 
setup-fprintf and 
append-error
functions communicate intermediate compilation results and errors. The
collects-tree argument is a compound data structure containing
an in-memory tree representation of the collects directory.
When the exn argument to append-error is a pair of
strings, the first string is a long form of the error message, and the
second string is a short form (omitting evaluation context
information, for example).
Changed in version 6.1.1.8 of package base: Changed append-error to allow
a pair of error strings.
Changed in version 7.0.0.19: Added the #:use-places? argument.