Next Steps
This is a loose TODO list with things we’re planning to add next. This is not meant to be a compreheensive list. A lot of the coverage we will add as we try more complex examples.
- Reference handling
- Heap allocation
- Drop semantics
- ADTs
- Intrinsics
- DST (partial — slices work,
dyn Traitnot yet supported) - Crate loading
Native calls
PassMode::Castsupport (requiresCastTargetin rustc_public)- Symbol caching (avoid repeated
dlsymlookups) - Trampoline caching (reuse compiled trampolines for identical signatures)
- Function pointer callbacks (native → interpreter via JIT stubs)
#[track_caller]implicit argument support
RustC Public
Here is a list of things that we can improve in rustc_public:
- Add
PlaceRef. Make it more efficient to process Place.- Once we do this, we can remove place creation in the interpreter
- Add a way to retrieve all mono items
- Add a way to retrieve source for a span so we can use annotate_snippets.
- Expose
CastTargetdetails fromPassMode::Cast(needed for struct pass/return in C ABI) - Expose
#[track_caller]implicit argument info (see https://github.com/rust-lang/rust/pull/159204)