Fission

Frequently Asked Questions

Q: Why a Rust-first decompiler?

Rust enables safe concurrency and disciplined ownership boundaries across large analyses—critical when structuring graphs and normalization pipelines evolve quickly without sacrificing auditability.

Q: How does Fission use Ghidra?

Fission consumes Sleigh-driven semantics for lifting while owning downstream normalization (NIR/HIR), structuring, and rendering in Rust. Ghidra remains valuable as a benchmark and parity reference, not as the runtime orchestrator after lift—see docs/architecture/ARCHITECTURE.md.

Q: Which binary formats are supported?

README.md lists PE / ELF / Mach-O tiers (including experimental caveats). Treat wiki summaries as shorthand—capabilities evolve release-to-release.

Q: Is output deterministic?

Pipelines feeding snapshots, automation lanes, and benchmarks aim for determinism given fixed toolchain inputs. Always record CLI versions and flags when asserting regressions—see Reading decompiler output.

Q: Should I use CLI or desktop UI for truth?

Headless fission-cli remains the canonical reproducibility surface for CI and benchmarks. fission-tauri complements interactive workflows—see Tauri desktop workflow.

Q: Where do release notes live?

Canonical changelog paths live under docs/changelog/—see Release notes index.

Q: Where should behavioral bugs be fixed?

Follow AGENTS.md: repair semantics at the owning crate (fission-pcode, fission-static, …), not via printer-only patches—see PR checklist.