Skip to content

build: run race-enabled toolchain #19962

@josharian

Description

@josharian

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Buildersx/build issues (builders, bots, dashboards)NeedsFixThe path to resolution is known, but the work has not been done.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions