Support registering custom syscalls #126
Merged
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.
This PR adds the ability to register custom syscalls in Mollusk's test environment. This allows developers to define their own custom syscalls, register them with the test environment, then write programs that access these syscalls and test their functionality.
Since program cache entries for Agave's JIT cache require an environment parameter of type
Arc<BuiltinProgram<InvokeContext<'static>>>, creating an API for developers to register syscalls was slightly convoluted.BuiltinProgram<InvokeContext<'static>>field toProgramStoredirectly, which can be updated when new functions are registered.create_program_runtime_environment_v1, create a new loader from the config and function registry of the owned loader stored on the program store. This should be functionally equivalent to what was already implemented.