-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Cider] First pass at data-race detection and also some control port …
…overhauling. (#2305) This adds a thread-id and vector clock system to Cider enabling some race-detection checks. The checks are turned off by default, since the analysis can be expensive, but can be enabled with the `--check-data-race` flag. The checks are overly conservative right now for `with` groups under the current semantic model and will produce false positives in these cases. I also ended up adjusting the treatment of control ports in this set of changes. We explicitly consider some control ports rather than special casing the `@done` ports, however this does not extend to every port by default. Currently, we treat `@go`, `@done`, `inout`, and ports explicitly marked `@control` as control. To avoid breaking a bunch of existing code, we also ignore any attempts to set a zero control port to `undef` with an assignment. This also requires us to update the assignment conflict rules so that “implicit” values---those produced by zeroing a control, or otherwise assigning a value which does not come from a cell or assignment---are allowed to be overwritten by cells or assignments. Implicit values may not, however, override any defined value.
- Loading branch information
1 parent
074df16
commit 586fb25
Showing
27 changed files
with
2,086 additions
and
326 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.