mkxp-z/subprojects
刘皓 379c22833f
Store coroutine variables in the Ruby stack in libretro builds
To stop Ruby's garbage collector from freeing Ruby `VALUE`s while we're
in the middle of using them in libretro builds, we need to make sure all
the `VALUE`s we use are on the sandbox's stack.

Also, to allow Ruby to recognize `VALUE`s on the sandbox's stack on
big-endian targets, I've changed the serialization of `VALUE`s. Before,
any `VALUE`s returned by a sandbox function were always converted to the
target's endian, and any `VALUE`s passed to sandbox functions as
argument were then converted back to WebAssembly's endianness,
little-endian. Now, `VALUE`s are always little-endian; they are no
longer converted to the target's endianness. That should be fine since
`VALUE`s are supposed to be opaque values.
2025-01-19 19:08:03 -05:00
..
packagefiles Add Nintendo consoles, PS2 and PSP to libretro CI 2025-01-15 22:10:50 -05:00
.gitignore Add all dependencies of libretro build as Meson subprojects 2025-01-02 17:51:22 -05:00
boost_asio.wrap Turn all sandbox bindings into coroutines 2025-01-07 00:02:09 -05:00
boost_assert.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
boost_config.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
boost_container_hash.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
boost_core.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
boost_describe.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
boost_mp11.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
boost_static_assert.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
boost_throw_exception.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
boost_type_index.wrap Implement stackful coroutine-based executor for libretro builds 2025-01-08 19:39:48 -05:00
bzip2.wrap Add all dependencies of libretro build as Meson subprojects 2025-01-02 17:51:22 -05:00
liblzma.wrap Rename lzma subproject to liblzma 2025-01-03 17:42:44 -05:00
libzip.wrap Add all dependencies of libretro build as Meson subprojects 2025-01-02 17:51:22 -05:00
zlib-darwin.wrap Add Alpine Linux and Android to libretro CI 2025-01-13 23:09:39 -05:00
zlib.wrap Add Alpine Linux and Android to libretro CI 2025-01-13 23:09:39 -05:00
zstd.wrap Add all dependencies of libretro build as Meson subprojects 2025-01-02 17:51:22 -05:00