Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 1.8 KB

ROADMAP.md

File metadata and controls

41 lines (34 loc) · 1.8 KB

Spoon Roadmap

Short-term, long term and crazy ideas about Spoon

version of 03/09/2015

  • Model
    • support for analyzing bound vs unbound type references (List<T> vs List<String>)
    • build model of binary code using a decompiler
    • Improves usage of generics on the model (See INRIA#583 (comment))
    • Add an embedded DSL / builder mechanism (see INRIA#741)
  • Transformations:
    • Keep original when printing after transformation
      • inline comments
      • indentation and formatting
    • sniper mode (only rewrites the changed nodes)
    • Transactional transformations (rollback if transfo fails)
    • adds generic transformations: a generic transformation is a transformation that is independent of the domain and can be applied to any source code, their goal is to facilitate analysis and transformation
      • everything in a block
      • unfinalizer (remove as many "final" keywords as possible)
  • Processor orchestration
  • Spoon in the IDE
    • on the fly model update
    • lazy spoon (build the class model only after a call to getDeclaration)
  • Child project spoon-refactorings (starting from TTC)
  • Templates
    • templates as query language (see TemplateMatcher)
    • inline templates
      • with anonymous classes
      • with lambda
  • Write spoon processors, compile them to ASM transformations on bytecode