Skip to main content

Roadmap

Where crashlink stands, feature by feature. Checked items are done; unchecked items are planned or in progress.

  • Bytecode parsing
  • Opcode disassembly
    • Local resolution and naming
  • IR lifter (layer 0)
    • If statements
    • Loops
    • Switch opcode statements
    • Function calls
      • CallClosure
    • Closures, lambdas
  • IR optimization layers
    • Resolve locals from assigns block
    • Trace optimization
    • Nested if/else/if/else -> switch
    • More to address issues as they arise!
  • Haxe pseudocode
  • Cross-reference index
  • GUI prerequisites
    • Workspace/project abstraction (wraps Bytecode with cached analysis state)
    • Incremental/async analysis API (background decompile, progress callbacks)
    • Patch buffer (in-memory edits, dirty tracking, re-serialisation)
    • Function search index (by name, file, type)
    • Source location API (debug file + line → function/opcode, and reverse)
  • GUI (probably qt6 at this point)
    • Graphical disassembler
    • Embedded CFG viewer through some Graphviz bindings
    • Decompiler
    • Basic local name patching
    • Other direct patching
    • Rename other symbols
    • Persistent patching/export modified bytecode
    • IR layer viewer
  • Partial recompilation (against stubs of other functions)