Skip to content

v0.38.0

Choose a tag to compare

@emil14 emil14 released this 31 May 17:45
· 251 commits to main since this release
a6b1713

Typed Waters

Compared to v0.37.1, this release makes generic node usage stricter and more explicit, improves runtime safety around edge cases, and continues internal tooling groundwork.

Summary

  • Generic node instantiations now require explicit type arguments (implicit any fallback removed).
  • Added analyzer + e2e regression coverage so this rule cannot silently regress.
  • Runtime safety improved for list_at out-of-bounds flow and ArrayInport.Select behavior.
  • pkg/view now exposes port order and DI args for downstream visual/tooling work.
  • Runtime microbench suite expanded for scalar list/dict message paths.
  • Docs now clarify any semantics and container specialization policy.

Language change: explicit generic args for nodes

This change is specifically about generic nodes at initialization/callsites.
If a node is generic, pass <T> explicitly when you instantiate it.

Before (now invalid, missing type arg):

import {
    fmt
    runtime
}

def Main(start any) (stop any) {
    println fmt.Println
    panic runtime.Panic
    ---
    :start -> "hello" -> println:data
    println:res -> :stop
    println:err -> panic
}

After (valid):

import {
    fmt
    runtime
}

def Main(start any) (stop any) {
    println fmt.Println<string>
    panic runtime.Panic
    ---
    :start -> "hello" -> println:data
    println:res -> :stop
    println:err -> panic
}

Internal and tooling notes

  • Deterministic projection/ordering guardrails in view tests were strengthened.
  • Version references were synchronized to 0.38.0 across release-related files.
  • Release process docs/harness were tightened for draft-first delivery and explicit publish approval.

Included PRs

  • #1130 view: deterministic overload ordering guard + plan sync
  • #1131 runtime: expand Msg scalar list/dict microbench coverage
  • #1132 analyzer: remove implicit any default for generic node instantiations
  • #1133 analyzer: add regression tests for explicit generic node args
  • #1134 docs: clarify any and container specialization policy
  • #1135 runtime: add safe Select/list_at coverage and fix bounds panic
  • #1136 feat(view): expose port order and DI args
  • #1137 release: bump version to v0.38.0

Full Changelog

v0.37.1...v0.38.0