Open tianhan0 opened 7 years ago
We should work off the scoot-abstract
branch. In particular we need to test and implement the interpreter.control
module
Let's try to get as many pieces as possible merged into the develop
. It becomes a mess if we start doing too many feature branches off other feature branches. Let's really follow GitFlow as much as possible (i.e., you better have a really good reason if you deviate).
I meant more like we should "resume and finish" the scoot-abstract
branch, not create further branches from it. But yes maybe the better thing is to just clean up what is on the branch now and merge it into develop before continuing.
So I've written two test cases for Constant Propagation, and I'll sync them with the branch that we decided to work on.
Meanwhile, I am continuing to work on the plugin-apron
branch, where I designed Scala interfaces for Apron last semester. Considering Constant Propagation, I need to add an interface for the join operation over different abstract numerical domains (Polka, Octagon, Box).
Also, I'm considering to improve the current interface design, in order to make them easier to understand and use by end users.
@litho17 Great, can you get those test cases for Constant Propagation reviewed and approved? The point is that it is your job to try get your work approved. It is no one's job to tell you where to put it.
And overall, we need to be working to get small PRs merged. Otherwise, such code just becomes out-dated and dies.
I am re establishing the task list for this:
0) [x] Copy needed components from scoot-abstract branch into a fresh fork of develop (@octalsrc) (We think this needs to be manualy changed while redesigning so this is going to be ommitted for now)
Pull request to develop from the following:
0) [ ] Abstract domain with program locations and storage locations
1) [ ] Constant propagation in numerical domain with assignment to static fields and expressions (@ftc)
2) [ ] Add if statements (@ftc)
3) [ ] Add While loops (@ftc)
4) [ ] After the above is done for constant propagation, we should look into making it more generic by possibly extending with Apron (@litho17)
Concrete goal: implement constant propagation in Scoot