Skip to content

Releases: DanielcoderX/rustygo

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:23
693c7c7

Full Changelog: v0.9.0...v1.0.0

Full Changelog: v0.9.0...v1.0.0

Full Changelog: v0.9.0...v1.0.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:17
5ba295a

Full Changelog: v0.8.0...v0.9.0

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:10
3cef02a

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:04
d1a841c

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 08:07
c9c365e

Full Changelog: v0.5.0...v0.6.0

v0.4.0 - SSA Inter-Procedural Analysis, Standalone Vet Driver & GC Safety Gating

Choose a tag to compare

@DanielcoderX DanielcoderX released this 12 Aug 10:48
143b24e

🚀 What's New in v0.4.0

1. Inter-Procedural SSA Function Summaries (internal/analysis/summary)

  • Added fixpoint propagation pass for inter-procedural parameter escape and return origin analysis across function calls.

2. Standalone go/analysis Vet Driver (rustygo-vet)

  • Exposed static analysis core via standard golang.org/x/tools/go/analysis interface.
  • Run rustygo-vet ./... in CI/CD pipelines or integrate into golangci-lint.

3. Interactive Explain Flag (-rustygo-explain)

  • Added -rustygo-explain CLI flag to rustygoc build for real-time terminal analysis output ([SAFE], [UNSAFE], [UNKNOWN]).

4. GC Pointer Safety Gating (HasPointers)

  • Gated compiler rewriter and public AllocValue / AllocSliceCap generic APIs on HasPointers(T).
  • Prevents GC pointer scanning corruption by safely falling back to standard Go heap for pointer-containing types.

5. Architectural Deliverables

  • 📜 PROPOSAL.md: Formal Go Design Proposal detailing SSA lifetime evaluation pipeline and safety guarantees.
  • ⚡ BENCHMARKS.md: Visual benchmark suite detailing memory allocation drops and GC pause reductions.

📦 Installation & Upgrade

go install rustygo/cmd/rustygo-vet@v0.4.0
go install rustygo/compilerplugin/cmd/rustygoc@v0.4.0

RustyGo v0.3.0 - SSA Lifetime Analysis Foundation

Choose a tag to compare

@DanielcoderX DanielcoderX released this 12 Jul 11:41
aaa3aa7

RustyGo v0.3.0

This release introduces the compiler analysis foundation required for safe automatic arena allocation.

Highlights

New SSA-based Analysis Pipeline

RustyGo now analyzes Go programs through SSA instead of source-level AST inspection.

The new pipeline provides a compiler-grade representation for:

  • allocation tracking
  • ownership propagation
  • lifetime verification
  • escape detection

Rust-style Lifetime Checker

Added a lifetime analysis engine inspired by Rust's ownership model.

Features:

  • region tracking
  • ownership graphs
  • alias propagation
  • lifetime validation
  • escape diagnostics

The analyzer can now determine whether an allocation can safely remain within its owning scope.

Allocation Discovery

RustyGo now discovers allocation candidates from SSA:

  • heap allocations
  • slices
  • maps
  • channels
  • pointer-producing instructions

Each allocation receives a unique identity and analysis metadata.

Escape Classification

Added a classification layer that converts lifetime results into allocation decisions:

  • Arena
  • Heap
  • Unknown

RustyGo follows a strict safety rule:

Unknown is never treated as safe.

Improved Analysis Diagnostics

Reports now include:

  • allocation location
  • lifetime state
  • escape reason
  • propagation path

Example:


Allocation #12

Type:
*Request

Decision:
Heap

Reason:
EscapesReturn

Path:
Alloc → Variable → Return

Architecture Progress

Current pipeline:


Go Source
|
v
SSA
|
v
Allocation Discovery
|
v
Lifetime Checker
|
v
Escape Classification
|
v
Arena Rewrite (planned)

Roadmap

Completed:

  • Arena allocator
  • SSA analysis
  • Ownership analysis
  • Region tracking
  • Lifetime checker
  • Allocation discovery
  • Escape classification

Next:

  • Function summaries
  • Arena rewrite pass
  • Compiler integration improvements
  • Automatic allocation replacement

Breaking Changes

None.

This release adds compiler analysis capabilities without changing the public runtime API.