2.4 KiB
| id | ticket | title | created | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| LSN-0020 | pbs-learn-to-discussion-lessons-migration | PBS Runtime Values, Identity, and Memory Boundaries Legacy Import | 2026-03-27 |
|
Context
Legacy import from docs/compiler/pbs/learn/03. Runtime Values, Identity, and Memory Boundaries.md.
This lesson preserves the runtime-facing mental model that keeps PBS lowering, diagnostics, and future optimization work aligned on aliasing, retention, and ownership.
Key Decisions
Value categories are explicit
What: PBS distinguishes copied payload values, identity-bearing values, and carrier-only values.
Why: Later lowering and diagnostics need a stable answer to whether a construct preserves aliasing, creates retention, or just transports an existing payload.
Trade-offs: The model is intentionally qualitative rather than layout-specific, which keeps it stable but less byte-accounting-friendly.
Host boundary semantics remain explicit
What: Host interaction is stack-only across the boundary, but host-backed resources still count as identity-bearing on the PBS side.
Why: PBS needs a clean boundary without pretending that host ownership disappears once a value crosses into language semantics.
Trade-offs: This is semantically clean, but it requires implementers to avoid naive “stack-only means no ownership complexity” shortcuts.
Patterns and Algorithms
- Treat scalars as copied payload without user-visible identity.
- Treat structs, services, and host-backed resources as identity-bearing.
- Treat tuples,
optional, andresultas carriers that do not create identity of their own. - Interpret cost visibility semantically:
- allocation-bearing,
- retention-bearing,
- copy versus aliasing,
- host-boundary crossing,
- trap possibility.
- Keep future lifetime-control and concurrency surfaces out of
core-v1unless explicitly claimed.
Pitfalls
- Assuming carrier types create fresh identity.
- Confusing qualitative runtime guarantees with exact allocator or collector promises.
- Assuming stack-only host crossing eliminates host ownership concerns.
- Silently treating future-profile surfaces as current supported behavior.
Takeaways
- PBS runtime contracts are qualitative on purpose.
- Identity, aliasing, and retention are the stable facts that matter most for maintenance.
- Host authority and PBS semantic identity can coexist without contradiction.