--
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/20190906073253.yh5wv677v3l4xn4k%40mail.beuc.net.
Hi,
(I was hoping other people would give their PoV...)
Generally-speaking, we may need more patches because of:
- the combination of Emscripten features (Python +
uninterruptible main loop -- aka fpcast+async; thankfully I could
get rid of dynamic linking...)
- centrally improving Emscripten portability rather than adapting the codebases (e.g. spending weeks on the 1-line #8751 / LANG support, rather than adding a quick EM_ASM in all my projects)
- working directly with Emscripten rather than using a framework
that provides a layer of work-arounds (e.g. Unity)
Again, at a given point of time we always have a buffer of pending patches (I forgot to mention #6511 and #7631 that were added to our shell.html template, btw), the ones we can upstream are replaced by newer ones: old bugs we eventually tackle like fullscreen support or autosave-on-quit; backports for regressions in a given Emscripten release.
Hopefully one day the web ecosystem will be so mature that we'll
be able to take our distro's years-old compiler, `./configure
--host=browser` without any change, and publish. Meanwhile... we
patch :)
To answer your specific questions:
- This is a game engine, much of the tests are manual, sadly (but I contribute tests when I submit Emscripten patches); we often get integration errors, or errors due to combining multiple Emscripten options.- I upgrade Emscripten to a tagged version ~every other month;
since this is likely to introduce breaking changes, I only do it
when I have the time to deal with the consequences (e.g. when I'm
not in the middle of developing RenPyWeb itself). I avoid ToT for
stability and reproducibility reasons.
- EMT_STACK_MAX is the exception, not the rule ;) That's about the only thing I could have upstream but didn't due to lack of time -- and it's now deprecated.
- Tagging: TBH I didn't figure out yet e.g. "what LLVM commit is used for emsdk 1.38.42" from https://chromium.googlesource.com/emscripten-releases/
Cheers!
Sylvain
Come to think of it, there's one thorough automated test that we
have to run at each upgrade:
building dependencies!
https://github.com/renpy/renpyweb
https://github.com/renpy/renpyweb/tree/master/scripts
https://www.beuc.net/python-emscripten/python/dir?ci=tip
Typing a simple:
$ make
will download and build all dependencies, and it's not uncommon that something breaks on Emscripten upgrade.
Cheers!
Sylvain
> * Are there tests in your codebase that we could run in upstream emscripten?
Come to think of it, there's one thorough automated test that we have to run at each upgrade:
building dependencies!
https://github.com/renpy/renpyweb
https://github.com/renpy/renpyweb/tree/master/scripts
https://www.beuc.net/python-emscripten/python/dir?ci=tip
Typing a simple:
$ make
will download and build all dependencies, and it's not uncommon that something breaks on Emscripten upgrade.
Cheers!
Sylvain
On 10/09/2019 12:41, Sylvain Beucler wrote:
Hi,
(I was hoping other people would give their PoV...)
Generally-speaking, we may need more patches because of:
- the combination of Emscripten features (Python + uninterruptible main loop -- aka fpcast+async; thankfully I could get rid of dynamic linking...)
- centrally improving Emscripten portability rather than adapting the codebases (e.g. spending weeks on the 1-line #8751 / LANG support, rather than adding a quick EM_ASM in all my projects)
- working directly with Emscripten rather than using a framework that provides a layer of work-arounds (e.g. Unity)
Again, at a given point of time we always have a buffer of pending patches (I forgot to mention #6511 and #7631 that were added to our shell.html template, btw), the ones we can upstream are replaced by newer ones: old bugs we eventually tackle like fullscreen support or autosave-on-quit; backports for regressions in a given Emscripten release.
Hopefully one day the web ecosystem will be so mature that we'll be able to take our distro's years-old compiler, `./configure --host=browser` without any change, and publish. Meanwhile... we patch :)
To answer your specific questions:
- This is a game engine, much of the tests are manual, sadly (but I contribute tests when I submit Emscripten patches); we often get integration errors, or errors due to combining multiple Emscripten options.
- I upgrade Emscripten to a tagged version ~every other month; since this is likely to introduce breaking changes, I only do it when I have the time to deal with the consequences (e.g. when I'm not in the middle of developing RenPyWeb itself). I avoid ToT for stability and reproducibility reasons.
- EMT_STACK_MAX is the exception, not the rule ;) That's about the only thing I could have upstream but didn't due to lack of time -- and it's now deprecated.
- Tagging: TBH I didn't figure out yet e.g. "what LLVM commit is used for emsdk 1.38.42" from https://chromium.googlesource.com/emscripten-releases/
--
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/14c22302-1e4c-e5af-bab8-20e55e14151a%40beuc.net.
HHi,
On Mon, Sep 16, 2019 at 6:50 AM Beuc <be...@beuc.net> wrote:
> * Are there tests in your codebase that we could run in upstream emscripten?
Come to think of it, there's one thorough automated test that we have to run at each upgrade:
building dependencies!
[...]
It might be useful to set up CI that runs the emscripten tip-of-tree builds on that (emsdk install tot-fastcomp or tot-upstream). Those are literally the very newest code, that passed chromium CI but is not as heavily tested as the actual release tags. You may sometimes see a temporary breakage you can ignore, but it would also catch regressions.
There seem to be a misunderstanding, you asked for test you could
run, not the other way around ;)
It isn't worth it for us to constantly rebuild with ToT: most of
the time we're working on Ren'Py/RenPyWeb itself and can't afford
varying dependencies.
Investigating all temporary and non-temporary breakages sounds
like time I should reserve for properly upgrading and adapting to
a newer, stable Emscripten once every other month.
- Tagging: TBH I didn't figure out yet e.g. "what LLVM commit is used for emsdk 1.38.42" from https://chromium.googlesource.com/emscripten-releases/
Is that still an issue? Are the docs at
(I hadn't seen this question on first read.)
My first attempts with binaryen seems to work, and for those interested Sam Clegg posted a recap:
https://github.com/emscripten-core/emscripten/issues/8995#issuecomment-532984238
Cheers!
Beuc
I just upgraded 1.38.45->1.38.46 and I got a new build failure
in an unmodified ffmpeg build.
Which is also what happened last time I upgraded Emscripten 1
month ago (different error).
I don't see wasm-ld-related notes in the ChangeLog, but apparently
it got stricter again.
Compiling a few external libs may actually be a good release test
case for the Emscripten project ¯\_(ツ)_/¯
- Beuc
--
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/3f1f8c14-8d50-d66d-f6fb-31c588f42acf%40beuc.net.
--
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/3f1f8c14-8d50-d66d-f6fb-31c588f42acf%40beuc.net.
To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/421d3f5d-0b5b-dcc2-4e29-03e4fe9c7dd4%40gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/CAL_va28ik-mb7pop9PyU_O-P3SZ6rK%3DCB2kkCSO7ZgivoiLM8g%40mail.gmail.com.