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
Bytecodewith 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)
- Workspace/project abstraction (wraps
- 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)