You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
id: design: pure-package import policy — package classes per tier, with compile-fail fixtures #5994
Part of the worlds design program: #5955. Wave-2 follow-up from the prior-art research (Lane B item 2); parent topic issue: #5956. Research source: workspace/scratch/worlds-capabilities-brief-2026-11-04/prior-art-research.md.
Scope
Define which package classes a world/library may import at each tier, and pin the policy with fixtures:
Pure packages (parsers, unicode, random — no effects) compose freely; effect-referencing packages work only where the platform exposes the operations they call. Roc's model already enforces this by construction: if a library calls Stdout.line and the platform doesn't expose Stdout, it does not compile — there is no ambient I/O to fall back to (Roc FAQ: https://www.roc-lang.org/faq).
The policy table states, per tier: which classes are allowed, what the author must declare, and what the import checker verifies against the platform catalog (pkgs/id/crates/id-core/src/world_caps.rs).
Not already done: at origin/main there are NO compile-fail / import-policy fixtures under pkgs/id (fixture files present are transcript/relay/determinism fixtures and one wasm screen fixture — none pins an import class rejection), and no policy table exists. The checker target it names is real: pkgs/id/crates/id-core/src/world_caps.rs (catalog + ceilings, verified this shift under task 10327).
Mechanism premise is sound as filed: Roc's no-ambient-I/O model means an effect-referencing package fails to compile against a platform that doesn't expose the operation — the policy is a table + checker + fixtures over an existing enforcement shape, not new machinery.
Activity
developing-today commentedon Nov 5, 2026
CODE-1660
dezren39 commentedon Nov 5, 2026
Triage — task 10360 (lane code-s)
Verdict: live design+fixtures issue, correctly scoped, nothing landed yet. Stays OPEN.
Evidence checked fresh 2026-11-05:
pkgs/id(fixture files present are transcript/relay/determinism fixtures and one wasm screen fixture — none pins an import class rejection), and no policy table exists. The checker target it names is real:pkgs/id/crates/id-core/src/world_caps.rs(catalog + ceilings, verified this shift under task 10327).Ordering recorded:
No follow-up task enqueued — this issue is itself the work item and is in the queue system. Task 10360 completes as
triaged.