regenerate wasm.js from preamble.js

69 views
Skip to first unread message

Александр Гурьянов

unread,
Apr 20, 2021, 5:45:53 AM4/20/21
to emscripte...@googlegroups.com
Hi. I am trying to use SPLIT_MODULE with Unity. However unity shipped with old emscripten that does not know how to deal with SPLIT_MODULE. I successfully spitted wasm file with wasm-split, but I can't run it because .js file can't load it.

Is it possible to regenerate .js file for given wasm, wasm.deferred file? Or if it is not possible, what I should define for correct work of SPLIT_MODULE? Currently I even can't start main module, had this error:


index.js:1 3943ms |  ERR! RangeError: offset is out of bounds
    at Int8Array.set (<anonymous>)
    at mergeMemory (eval at value (http://localhost:3000/dev/web/debug/gamepix-loader.js:6586:98), <anonymous>:1059:17)
    at receiveInstance (eval at value (http://localhost:3000/dev/web/debug/gamepix-loader.js:6586:98), <anonymous>:1120:33)
    at http://localhost:3000/dev/web/debug/gamepix-loader.js:6743:119

Alon Zakai

unread,
Apr 20, 2021, 11:17:35 AM4/20/21
to emscripte...@googlegroups.com
There is an experimental --post-link option to create a JS file for a given linked wasm file. However it isn't aware of SPLIT_MODULE so I am not sure if it will work here.

--
You received this message because you are subscribed to the Google Groups "emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-disc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVHu%2B5srLKjuitYZLhtpbiFg6RdSjLytNcg6XwzDk3Wf%2Bw%40mail.gmail.com.

Sam Clegg

unread,
Apr 20, 2021, 1:31:54 PM4/20/21
to emscripte...@googlegroups.com
SPLIT_MODULE is currently experimental, with limited testing.   Trying to backport it to an older version of emscripten, while not impossible, is likely to result in many challenges, and is not really a use case that we want to have to support.   It might just work.. but you will likely need to get down in the weeds to fix any issues that come up.   Your energy may be better spent trying to push unity to upgrade the version of emscripten they support.  

cheers,
sam

On Tue, Apr 20, 2021 at 2:45 AM Александр Гурьянов <caii...@gmail.com> wrote:
--

Александр Гурьянов

unread,
Apr 20, 2021, 10:05:40 PM4/20/21
to emscripte...@googlegroups.com
Yeah pushing emscripten of Unity to new version is a best solution either, but I think it's impossible. They didn't change emscripten version for many years, they use 1.38.11. I don't know why, maybe there is some internal problem, but seems it's not into their priority. They  still use js2wasm to generate WebAssembly.

I tried to update it manually by replacing emscripten, and hook into build scripts, however they also uses *.bc files to link into binary. As answered before, it's not possible to use *.bc files from older version of emscripten with newer emscripten.

So, I see back porting wasm-split is only solution, btw I hope it will not be super hard. I did similar stuff with js split. I use wasm file from unity and split out some functions into js, now I just want to improve my technology with wasm-split.



ср, 21 апр. 2021 г. в 00:31, 'Sam Clegg' via emscripten-discuss <emscripte...@googlegroups.com>:

Александр Гурьянов

unread,
Apr 21, 2021, 6:39:29 AM4/21/21
to emscripte...@googlegroups.com
I did it. However I realized that it is not what I actually want, I will write a new topic.

ср, 21 апр. 2021 г. в 09:05, Александр Гурьянов <caii...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages