Implement "defaulted" instantiation arguments
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
The issue names no files or tests. Start by locating wac's handling of new expressions and unlocked-dep or locked-dep imports, then trace dependency resolution and instantiation. Done means omitted dependency arguments are resolved recursively, shared instances are created, exports are projected into arguments, and unresolved transitive dependencies produce an error.
Written by the indexing model from the issue text.
Description
If a component being instantiated with a new expression has a unlocked-dep or locked-dep import and the import has not been satisfied by an argument to the new expression, wac should implicitly resolve and instantiate a (shared) instance of the dependency and project into its exports, passing the result as the argument.
Example:
Package foo:bar:
(component
// ...
(export "f" (func 0))
)
Package bar:baz:
(component
(import "unlocked-dep=<foo:bar/f@{>=0.1.0}>" (func))
)
Composition:
let i = new bar:baz { };
Then foo:[email protected] should get resolved and instantiated, f should be aliased from the export, and the alias passed in as the argument for unlocked-dep=<foo:bar/[email protected]>.
The instantiated dependency would either have all of its imports satisfied by implicit imports or by recursively instantiated dependencies for any unlocked-dep and locked-dep imports.
It would be an error if the (transitive) dependencies fail to resolve.
- Dominant language
- Rust
- Stars
- 207
- Forks
- 41
- Avg merge
- 4d 9m
- Merged PRs (30d)
- 4
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from bytecodealliance/wac
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
bytecodealliance/wac#219 ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
bytecodealliance/wac#181 · 7 reactions ·
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
bytecodealliance/wac#170 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 30/100
bytecodealliance/wac#169 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 30/100
bytecodealliance/wac#166 · 1 comment ·
All issues in bytecodealliance/wac
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 4 days
-
`future_into_py` loses the original panic messagePossibly taken @Danipulok claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 90/100
PyO3/pyo3-async-runtimes#91 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 Under an hour Newbie friendliness 85/100
Maintainers usually reply within 2 days