-
Notifications
You must be signed in to change notification settings - Fork 782
Nuance of ASYNCIFY_IGNORE_INDIRECT #4225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I try to limit asyncified imports and there is no other option to disable |
The You may also need to add the actual imports that call into JS that eventually ends up calling an |
emcc.py treats
When I add So I add fully spelled invokes into imports (to prevent other runtime errors) and I add
I have working ASYNCIFY_REMOVE+ASYNCIFY_ADD, so I can't understand what to add more for ASYNCIFY_IGNORE_INDIRECT... |
I removed locally
Firefox tells more:
The last chance is about to add all invoke_* and legalimport$invoke_* from This code insertion into And such patch of |
Now I have working solution with a patched
But if I write
So there is something related to a problem in
|
Even
But Then I stripped out debug info, but sizes differ too much: Only first stack differs:
I patched
and saw mismatches between |
Oh right, sorry, I had things reversed with I'm not sure why debug info would affect things here. If you can get small testcases for these issues that would be good. |
emscripten-core/emscripten#10941 has the same crash at I believe #2913
|
Hi, With
imho |
I don't use asyncify any more ;) |
Hi,
I try to better tune asyncify but any my attempt fails when I use ASYNCIFY_IGNORE_INDIRECT. From Emscripten side it influences on
Simple case breaks big program:
-s ASYNCIFY_IGNORE_INDIRECT -s ASYNCIFY_IMPORTS=['invoke_*']
.ModuleAnalyzer first marks functions from the remove-list as
info.inRemoveList = true;
andinfo.canChangeState = false;
.Then ModuleAnalyzer applies
onlyListInput
andaddListInput
asinfo.addedFromList = true;
andinfo.canChangeState = true;
.What will happen if REMOVE + ADD applies simultaneously to the same function?
I think
info.addedFromList = true;
assumesinfo.inRemoveList = false;
.Suspicious places are 1 and 2.
Also I'm in doubt about the moment of scanner.propagateBack. Looks like there is no opportunity to set up async sources precisely before robust async propagation. imho Dual lists can help: remove and add before propagation, remove and add after propagation.
The text was updated successfully, but these errors were encountered: