I just noticed that I had two remaining calls to ccall() where I used the
string argument marshalling feature (in all other cases I call functions on
the C side directly). I have those cases now replaced with (essentially)
"withStackSave(() => { ... allocateUTF8OnStack() ... }"
Is this "kosher"? (I'm aware of the risk that these functions may go away
one day).
I don't want to impose specific compiler flags (like LEGACY_RUNTIME) on my
library users, that's why I had to replace ccall() (unless there's a
another way to inject ccall into the code than through compiler options?).
It would be nice to have a guaranteed set of these low level C interop
functions btw (like this withStackSave, allocateUTF8OnStack stuff).
Cheers!
-Floh.
On Tuesday, 6 September 2022 at 19:35:05 UTC+2 Shlomi Fish wrote:
> On Tue, 6 Sep 2022 09:06:27 -0700
> "'Sam Clegg' via emscripten-discuss" <[email protected]>
> wrote:
>
> > Starting with 2.1.21, in order to make the default output size smaller
> some
> > runtime functions are transitioning to library functions. In debug
> builds,
> > if you try to use these functions, you should see an actionable warning.
> >
> > From the changelog:
> >
>
> Thanks for the warning, Sam!
>
> > - The `LEGACY_RUNTIME` setting is no longer enabled by default. If you
> use
> > any
> > of these legacy runtime functions (except in library code with explicit
> >
> > dependencies) then you would need to set `LEGACY_RUNTIME` on the command
> > line
> > or add the ones you need to `DEFAULT_LIBRARY_FUNCS_TO_INCLUDE`:
> >
> > - addFunction
> >
> > - removeFunction
> >
> > - allocate
> >
> > - AsciiToString
> >
> > - stringToAscii
> >
> > - UTF16ToString
> >
> > - stringToUTF16
> >
> > - lengthBytesUTF16
> >
> > - UTF32ToString
> >
> > - stringToUTF32
> >
> > - lengthBytesUTF32
> >
> > - allocateUTF8
> >
> > - allocateUTF8OnStack
> >
> > - writeStringToMemory
> >
> > - writeArrayToMemory
> >
> > - writeAsciiToMemory
> >
> > - intArrayFromString
> >
> > - intArrayToString
> >
> > - warnOnce
> >
> > - ccall
> >
> > - cwrap
> >
> > Although this is technically a breaking change for those who use these
> >
> > functions, there are assertions in debug builds that catch such usages
> > and
> > direct towards how to fix the issue.
> >
> > I hope this change is not too disruptive and overall a move in the right
> > direction.
> >
> > cheers,
> > sam
> >
>
>
>
> --
>
> Shlomi Fish https://www.shlomifish.org/
> Chuck Norris/etc. Facts - https://www.shlomifish.org/humour/bits/facts/
>
> If Botticelli were alive today, he’d be working for Vogue.
> — https://en.wikiquote.org/wiki/Peter_Ustinov
>
> Please reply to list if it's a mailing list post - https://shlom.in/reply
> .
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/emscripten-discuss/100fd252-0d53-48e1-8c4d-50482dd16a6dn%40googlegroups.com.