-
Notifications
You must be signed in to change notification settings - Fork 1
Roadmap
Sewen Thy edited this page Aug 21, 2022
·
9 revisions
Aug 2022 - Aug 2022
- Gain understanding on how EM refactoring is implemented in Java/Scala or similar languages and be able to write down its formal description.
- Understand why it won't work for Rust.
- Understand Intellij's platform documentation on writing plugin.
Aug 2022 - early Sept 2022
- Create methodology for finding Rust projects EM commits
- Find examples of EM refactoring in real life Rust projects
- Write up on examples
- Find way to automate
- Understand Intellij's EM refactoring in Rust Write pseudocode for Rust's EM
- Use Intellij's EM on case study examples
- Summary of limitations
Sept 2022
- Make sure that EM only runs on code that it can correct extract
Aug 2022 - early Sept 2022 initial focus on readings
Mainly looking into:
- how previous implementations for rust are done
- how implementations for other languages are done
- how are those implementations formalized/proven
Sept 2022 onwards
- keep reading new stuff if available or learn about more advanced techniques/tools for implementation
Sept 2022 - Dec 2022
The bulk of the implementation work focusing on having a working extract function refactoring function working in Rust.
- Start with minimal working
conservative
solution. - Then incrementally build to add
richer
scenarios.
Dec 2022 - Feb 2022
Refactoring does not change code behaviour, more specifically, the following does not change:
- name bindings
- lifetimes
- ownership
Feb 2022 - Mar 2022
- Finish capstone write-up.
- Finish paper write-up.
Feb 2022 - March 2022
- Make a PR for the plugin