v0.2.0 #31
Replies: 1 comment
-
|
After ~8 months of deep architectural work, v0.2.0 is finally out. Since the detailed change log already covers what shipped, I want to briefly highlight what this release represents architecturally. This version marks the transition from primarily per-file analysis to a global, summary-driven analysis architecture capable of reasoning across large, polyglot codebases. The core shift was moving to a two-pass model with persisted function summaries, enabling cross-file propagation, cross-language resolution, and CFG-driven reasoning to operate cohesively at project scale. The time gap reflects a deliberate systems-level refactor rather than incremental feature additions. Much of the work was foundational: building infrastructure that future analysis capabilities can rely on without reworking the core engine again. More advanced capabilities are already in progress, including deeper exploit modeling and hybrid reasoning approaches. As always, feedback, scrutiny, and contributions are welcome. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Added
FuncSummaryper function (source/sanitizer/sink capabilities, taint propagation, callees), Pass 2 runs BFS taint propagation with cross-file callee resolution.cfg-unguarded-sink), auth gaps in web handlers (cfg-auth-gap), unreachable security code (cfg-unreachable-*), error fallthrough (cfg-error-fallthrough), and resource leaks (cfg-resource-leak).InteropEdgestructs without false-positive name collisions.function_summariestable) with arity, parameter names, capability bitflags, and callee lists.KINDSmaps,RULES, andPARAM_CONFIGfor full CFG construction and taint analysis.Full(default),Ast(--ast-only), andTaint(--cfg-only) selectable via CLI flags orscanner.modeconfig.GlobalSummarieswith conservative merge: union caps, OR booleans, union param/callee lists on name collisions across files._from_bytesvariants to read-once/hash-once, lock-free rayon parallelism, SQLite WAL + 8 MB cache + 256 MB mmap.tracingspans on all pipeline phases (walk, pass1, merge, pass2, per-file ops, db_init).benches/scan_bench.rswith fixtures.Changed
Capbitflags expanded:ENV_VAR,HTML_ESCAPE,SHELL_ESCAPE,URL_ENCODE,JSON_PARSE,FILE_IO.classify()in labels uses zero-allocation byte-level case-insensitive comparisons.Fixed
ptr_arglint in perf tests (&PathBuf->&Path).This discussion was created from the release v0.2.0.
Beta Was this translation helpful? Give feedback.
All reactions