-
Notifications
You must be signed in to change notification settings - Fork 18.3k
Description
The compiler already has a concurrent lexer and parser, and it will soon have a concurrent backend. We should have a fast builder running a race-enabled version of the toolchain to catch data races.
I have in mind something like this (very rough sketch):
$ ./all.bash # instead of doing 'go install cmd' after bootstrapping, do 'go install -race cmd'
$ for all-platforms-like-misc-compile; do go build -a std cmd; done
This would provide race detector coverage for normal and error conditions, plus all the assemblers. Ideally "all platforms" would ultimately also end up including some variations like -shared, -dynlink, -race, -msan, etc.
There might also be some extra flags to add somewhere to ramp up the concurrency, to try to flush out races.
This is clearly not fully thought out yet. :) Step one is to get a basic builder going and make it easy to improve.
I'm happy to do the legwork on this, but I'll need some help and direction, I fear.
@bradfitz @adams-sarah