BS-JD-403 - Optional dylib extension exploration #29

Open
opened 2026-06-06 01:48:36 -04:00 by Rbanh · 0 comments
Owner

Summary

Explore dynamic extension loading only after the static extension API is stable.

Why

Dynamic loading is useful for rapid iteration but has ABI, hot reload, safety, and platform complexity. It should be a spike, not a foundation.

Implementation notes

  • Document constraints and risks before implementation.
  • Prototype loading a narrow extension boundary only.
  • Do not make core editor behavior depend on dylib loading.
  • Compare with existing optional game hot reload path.

Acceptance criteria

  • Spike documents feasibility, risks, and recommended next step.
  • Prototype is isolated and removable.
  • Static API remains canonical.
  • No production workflow depends on dylib loading.

Tests/docs

Spike notes and minimal compile/runtime smoke if prototype is kept. Update ADR consequences if decision hardens.

## Summary Explore dynamic extension loading only after the static extension API is stable. ## Why Dynamic loading is useful for rapid iteration but has ABI, hot reload, safety, and platform complexity. It should be a spike, not a foundation. ## Implementation notes - Document constraints and risks before implementation. - Prototype loading a narrow extension boundary only. - Do not make core editor behavior depend on dylib loading. - Compare with existing optional game hot reload path. ## Acceptance criteria - [ ] Spike documents feasibility, risks, and recommended next step. - [ ] Prototype is isolated and removable. - [ ] Static API remains canonical. - [ ] No production workflow depends on dylib loading. ## Tests/docs Spike notes and minimal compile/runtime smoke if prototype is kept. Update ADR consequences if decision hardens.
Rbanh added this to the M4 - Extensibility and runtime integration milestone 2026-06-06 01:48:36 -04:00
Rbanh added the
roadmap:jackdaw
type:architecture
priority:P3
area:extensions
labels 2026-06-06 01:48:36 -04:00
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Falling-Metal-Interactive/Blacksite#29
No description provided.