-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
effect overrides: Add notaskstate & refactor slightly
This adds an effect override for `:notaskstate` and shifts the `:total`, meta-effect around slightly to prepare for any potential future expansion. In particular `:total` now means the maximum possible set of effects and should likely include any future additions. The assume_effects macro learned to do negation, so we can now write things like `:total :!nothrow`, which will be helpful writing tests that care about one effect in particular, but are otherwise total. The previous `:total_may_throw`, was renamed `:foldable` and includes the effects required to allow compile-time constant folding. At this point I don't anticipate the introduction of additional effects that would affect constant-foldability, but if such an effect were introduced, it would be added to `:foldable`. Note however, that `:foldable` does not include `:notaskstate` (though as noted in the docstring, because of the strong requirements of `:consistent` and `:effect_free`, it is implied that anything annotated `:notaskstate` may be DCEd and thus `:notaskstate` is implied). Nevertheless, `:notaskstate` is not included in the `:foldable` override and future effect additions may further separate `:foldable` from `:total`.
- Loading branch information
Showing
13 changed files
with
128 additions
and
60 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
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
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.