v0.38.0
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
anyfallback removed). - Added analyzer + e2e regression coverage so this rule cannot silently regress.
- Runtime safety improved for
list_atout-of-bounds flow andArrayInport.Selectbehavior. pkg/viewnow exposes port order and DI args for downstream visual/tooling work.- Runtime microbench suite expanded for scalar list/dict message paths.
- Docs now clarify
anysemantics 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
viewtests were strengthened. - Version references were synchronized to
0.38.0across 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