Skip to content

revert: remove dynamic plugin loading (#303) - #335

Open
lshoravi wants to merge 1 commit into
maplant:mainfrom
lshoravi:linuss/revert-plugins
Open

revert: remove dynamic plugin loading (#303)#335
lshoravi wants to merge 1 commit into
maplant:mainfrom
lshoravi:linuss/revert-plugins

Conversation

@lshoravi

@lshoravi lshoravi commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

Reverts #303 on top of current main. Plugins install double heaps and allocate separately, never getting cleaned up and occasionally corrupts memory.

The plugin feature cannot work as designed. scheme-rs is an rlib with no
[lib] section, so a cdylib plugin depending on it by path statically links
its own copy of the crate — and therefore its own `static HEAP`, its own
collector thread, its own symbol interner and its own runtime. Values
allocated inside a plugin are then freed by the host's collector, which
splices its intrusive heap list against a list head from a different heap.

Reverting the feature rather than patching it: making it sound requires
either a C ABI boundary or a shared-dynamic-runtime build, both of which
are design decisions in their own right.

Removed by hand rather than with `git revert` because maplant#330/maplant#331 touched the
same files afterwards; this preserves that work.
@lshoravi
lshoravi marked this pull request as ready for review August 1, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant