Add support for plugins to dynamically linked modules #821
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of the change
Changes from not supporting a plugin when creating dynamically linked modules to requiring a plugin when creating dynamically linked modules. This is a breaking change.
I've also updated the dynamic codegen to not emit calls to
eval_bytecode
for the default plugin.Why am I making this change?
Part of #768. We want to support using plugins when building dynamically linked modules. And, as I mention in a comment, we never want to assume the import namespace in the Javy CLI, so we need a plugin to be specified so we can derive the import namespace to use from it.
For the change to stop emitting calls to
eval_bytecode
, we want to removeeval_bytecode
from the default plugin and the first step to doing that is to stop emitting new calls toeval_bytecode
. The requirement to specify a plugin when building new dynamically linked modules means we can be sure the plugin used in any execution environment also supports callinginvoke
with a null function assuming the same or a newer plugin is used in the execution environment as is used when invokingjavy build -C dynamic -C plugin=...
.Checklist
javy-cli
andjavy-plugin
do not require updating CHANGELOG files.