jco icon indicating copy to clipboard operation
jco copied to clipboard

Instantiation mode with default imports

Open buismaarten opened this issue 1 year ago • 4 comments

When using instantiation mode of the transpile command, the imports is a required arguments of instantiate function. Can we the lists of the default imports like using in non-instantiation? This way we can specify/overwrite imports when needed.

buismaarten avatar Oct 18 '24 21:10 buismaarten

This might make sense as an option actually. We'd need to use a dynamic import in the instantiation body and make this a configurable option as part of the instantiation output. Happy to give pointers if you're interested in working on it.

guybedford avatar Oct 18 '24 21:10 guybedford

Thanks for your answer. I doubt if I can pick it up. After a few days finding out how this library works, I haven't really figured out how the inside works yet.

buismaarten avatar Oct 18 '24 21:10 buismaarten

I don't know if it's reasonable or possible, but is it possible to have an instantiation mode or something so that the WebAssembly.compile as a function argument can be left out?

This way we aren't required to instantiate with a WebAssembly.compile object if we have the base64 of the WASM file inside the JS module. Also we can override the imports to allow things like preopens and env easily.

buismaarten avatar Oct 19 '24 08:10 buismaarten

It sounds like you want some kind of partial instantiation here? It's an interesting use case, perhaps there's a way to define it with CLI arguments so that the given imports are host imports and the given ones are instantiate arguments.

But I also like your first suggestion for handling this too as default arguments, that seems a little more elegant.

guybedford avatar Oct 28 '24 22:10 guybedford

As far as the original request, the manual instantiation option should now be enough to easy specify default imports.

Also, to control the behavior (i.e. avoid compiling), please provide a getCoreModule as the first function to instantiate. That use case should be well covered now.

vados-cosmonic avatar Aug 27 '25 11:08 vados-cosmonic