[Review extended] SE-0412: Strict concurrency for global variables

The review for SE-0412: Strict concurrency for global variables ran from November 8th to November 22nd. The Language Steering Group discussed the feedback from the initial review period, and has decided to accept the proposal in principle.

The Language Steering Group agrees with reviewers that this is an important hole in the data-race safety model to fill, and agrees that diagnostics at the declaration site of unsafe global variables with the nonisolated(unsafe) opt-out mechanism is the right overall approach. However, several reviewers commented on the value of still warning programmers about uses of unsafe global variables that they do not control, with an explicit opt-in to suppress those warnings. This idea matches the existing model for interoperating with code that predates concurrency that is out of the programmer's control through the use of @preconcurrency import statements.

The proposal authors have revised the proposal to instead use @preconcurrency as the suppression mechanism for diagnostics about using unsafe global variables that are imported from other modules. As such, the review is extended until December 12th. Please focus the remainder of the review on the use of @preconcurrency for imported global variables.

Thank you to everyone who participated in the review discussion so far! Please continue the review discussion over in the original review thread.

Holly Borla
Review Manager