227 commits since v0.1.0. Major additions across all analysis layers.
New Libraries
(wile goast belief)— Declarative consistency deviation detection (Engler-style). Define beliefs in 3-5 lines, run across packages. Site selectors, property checkers, threshold-based reporting. Categories 1-4 validated.(wile goast dataflow)— Worklist-based forward/backward dataflow analysis on SSA blocks, plus def-use reachability.(wile goast domains)— Five pre-built abstract domains: reaching definitions, liveness, constant propagation, sign analysis, interval analysis.(wile goast fca)— Formal Concept Analysis for false boundary detection. NextClosure algorithm, cross-boundary concept filtering.(wile goast fca-algebra)— Bridges FCA concept lattices with(wile algebra lattice)and(wile algebra closure).(wile goast path-algebra)— Semiring-parameterized path computation over call graphs (lazy single-source Bellman-Ford with caching).(wile goast unify)— AST/SSA structural diff engine with pluggable classifiers and substitution-aware scoring.(wile goast ssa-normalize)— Algebraic normalization rules for SSA binop nodes via(wile algebra symbolic).(wile goast boolean-simplify)— Boolean normalization for Go AST conditions and belief selector predicates.(wile goast utils)— Shared traversal utilities (nf,walk,tag?,ast-transform,ast-splice).
New Primitives
go-cfg-to-structured— Restructure Go blocks into single-exit form: goto elimination, loop return rewriting, guard folding.go-ssa-canonicalize— Dominator-order blocks, alpha-renamed registers for canonical SSA comparison.go-load/go-session?— Shared GoSession for snapshot consistency across layers without redundant package loads.go-interface-implementors— Find types implementing an interface.go-list-deps— Lightweight transitive dependency discovery.
MCP Server
wile-goast --mcpstarts a stdio MCP server with a singleevaltool and three guided prompts (goast-analyze,goast-beliefs,goast-refactor).
Infrastructure
- GoSession sharing across all package-loading primitives (typecheck, SSA, CFG, callgraph, lint).
- Embedded Scheme libraries and wile StdLibFS for self-contained binary.
- CLI modes:
-e,-f, stdin execution. - golangci-lint with ruleguard rules.
- Function name normalization across layers (Form 3 qualified names).
LoadPackagesCheckedhelper consolidating error handling.