Add check for variable ordering and language versioning scheme
This was prompted by @xywei and myself having trouble shaking out ordering bugs in a slightly more complex kernel.
-
Fix the tests -
Handle aliasing -
Add a test -
Make sure lang_version
is one of a recognized set -
Use access footprint overlap check in barrier placement -
Update docs
@mattwala, all: What do you think of this? Specifically:
- Do you think the ordering requirement is too restrictive or inconvenient?
- What do you think of the language versioning scheme? In an ideal world, we'd just freeze the language or stay compatible indefinitely and call it a day, but it is intended to be a research language, so it is going to have to evolve. My thought is that as long as we use this sparingly, it might give us a bit of room to gently evolve the language while not breaking metric tons of code all at once.
- Do you think the check will hurt our scaling?
I figured I would post this for comments before I go further with it.
@xywei, this should help you get rid of any remaining ordering bugs. I'd be happy to hear how that goes.
Edited by Andreas Klöckner