Bumping this once again because I'm hoping to land the default stack size reduction change soon: https://github.com/emscripten-core/emscripten/pull/18191
In the end I decided to put the stack first in debug builds which gives a nice, consistent, error message on stack overflow: https://github.com/emscripten-core/emscripten/pull/18154 We also decided to go with 64KB default to match wasm-ld and wasi-sdk defaults. I'll post again here once/if it lands. cheers, sam On Wed, Oct 12, 2022 at 6:27 PM Sam Clegg <s...@google.com> wrote: > emscripten_stack_get_current is also designed to be super fast (its > basically just a single `global.get` instruction). > > On Wed, Oct 12, 2022 at 6:26 PM Sam Clegg <s...@google.com> wrote: > >> >> >> On Wed, Oct 12, 2022 at 2:22 AM Floh <flo...@gmail.com> wrote: >> >>> PS: what would be *really* nice is a way to query the current and 'high >>> water mark' stack sizes (only in debug mode, or with a specific build >>> option), to get an idea how much stack a program/thread is using, instead >>> of depending on trial-and-error. >>> >> >> The current value is accessible via ` emscripten_stack_get_current` >> defined in `emscripten/stack.h`: >> https://github.com/emscripten-core/emscripten/blob/main/system/include/emscripten/stack.h >> >> Tracking the high water mark could be done with same binaryen pass that >> currently implement STACK_OVERFLOW_CHECK.. but it's not something we do at >> this point. >> >> >> >>> On Tuesday, 11 October 2022 at 17:27:07 UTC+2 s...@google.com wrote: >>> >>>> On Tue, Oct 11, 2022 at 12:13 AM Floh <flo...@gmail.com> wrote: >>>> >>>>> My C code is still quite stack heavy, because a lot of my code >>>>> essentially uses the stack as per-frame arena allocator ;) But I guess as >>>>> long as there's a compiler/linker option to set the stack size I think >>>>> it's >>>>> fine. >>>>> >>>>> Will a stack overflow cause a proper runtime error, or will this >>>>> result 'undefined behaviour'? >>>>> >>>> >>>> The plan is to enable `STACK_OVERFLOW_CHECK=2` in debug (-O0) builds >>>> (currently we just use `STACK_OVERFLOW_CHECK=1`). This should give >>>> precise errors at the point of overflow. >>>> >>>> >>>>> On Tuesday, 11 October 2022 at 01:34:07 UTC+2 s...@google.com wrote: >>>>> >>>>>> Bumping this discussion because I'm taking a look at landing this >>>>>> once again. >>>>>> >>>>>> In answer to the pthread question: Yes I'm planning on changing the >>>>>> default for both the main thread and pthreads (The plan is to make them >>>>>> the >>>>>> same by default). >>>>>> >>>>>> On Fri, Jul 9, 2021 at 3:24 AM 'Maksim Ivanov' via emscripten-discuss >>>>>> <emscripte...@googlegroups.com> wrote: >>>>>> >>>>>>> One question: Will this planned change only affect is only for the >>>>>>> main thread? In case there's no change for background threads (e.g., >>>>>>> created via pthreads), it'll be useful to mention it somewhere. >>>>>>> >>>>>>> On Thursday, May 27, 2021 at 2:01:11 PM UTC+2 jj wrote: >>>>>>> >>>>>>>> ke 19. toukok. 2021 klo 11.27 Floh (flo...@gmail.com) kirjoitti: >>>>>>>> > 1 MB is quite certainly ok (but might be a problem for code with >>>>>>>> lots of recursions?), but I think 64 KByte is asking for trouble ;) >>>>>>>> >>>>>>>> Btw, I would recommend you to try how small you can go. I would be >>>>>>>> surprised if you are running into issues with 64KB today. >>>>>>>> (recursions >>>>>>>> won't increase to this limit, unless the recursing functions have >>>>>>>> locals that have their addresses taken) >>>>>>>> >>>>>>> -- >>>>>>> >>>>>> 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/d7c00f7e-6bc2-4ae8-ae2d-0353ae4cff80n%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/d7c00f7e-6bc2-4ae8-ae2d-0353ae4cff80n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>>>> 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/7c70d4dc-d14b-4282-9a82-1c1e08393dd0n%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/emscripten-discuss/7c70d4dc-d14b-4282-9a82-1c1e08393dd0n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>> 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-discuss+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/emscripten-discuss/218eec81-edce-45b7-b061-a1d57f381d3an%40googlegroups.com >>> <https://groups.google.com/d/msgid/emscripten-discuss/218eec81-edce-45b7-b061-a1d57f381d3an%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- 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-discuss+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/CAL_va28Md1SE1f0nVk8QNX%2Bq%3DLFR3W7waqa0dKTqafDgLfO%3Diw%40mail.gmail.com.