The runtime should enable a way for the host to provide the data representing an assembly. This is a similar idea to the existing bundle_probe, but with the host fully handling populating the data (as opposed to it being an offset into the current executable that the runtime then maps).
To do this, we can update the host_runtime_contract with a new callback:
// Probe for an assembly by `path`. Sets the data representing the assembly (`data`, `size`)
// Returns true if found, false otherwise.
bool(HOST_CONTRACT_CALLTYPE* external_assembly_probe)(
const char* path,
/*out*/ void** data
/*out*/ int64_t* size);
This will be called before the default assembly resolution by the runtime. If both bundle_probe and external_assembly_probe are set, bundle_probe is called first.
The runtime should enable a way for the host to provide the data representing an assembly. This is a similar idea to the existing
bundle_probe, but with the host fully handling populating the data (as opposed to it being an offset into the current executable that the runtime then maps).To do this, we can update the
host_runtime_contractwith a new callback:This will be called before the default assembly resolution by the runtime. If both
bundle_probeandexternal_assembly_probeare set,bundle_probeis called first.external_assembly_probeto be separate from single-file bundle probing #113356