Skip to content

v0.5.50

Latest

Choose a tag to compare

@aalpar aalpar released this 13 Apr 20:12
· 419 commits to master since this release

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 --mcp starts a stdio MCP server with a single eval tool 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).
  • LoadPackagesChecked helper consolidating error handling.