
# Objective - Enable hot patching systems with subsecond - Fixes #19296 ## Solution - First commit is the naive thin layer - Second commit only check the jump table when the code is hot patched instead of on every system execution - Depends on https://github.com/DioxusLabs/dioxus/pull/4153 for a nicer API, but could be done without - Everything in second commit is feature gated, it has no impact when the feature is not enabled ## Testing - Check dependencies without the feature enabled: nothing dioxus in tree - Run the new example: text and color can be changed --------- Co-authored-by: Jan Hohenheim <jan@hohenheim.ch> Co-authored-by: JMS55 <47158642+JMS55@users.noreply.github.com>
22 lines
944 B
Markdown
22 lines
944 B
Markdown
---
|
|
title: Hot Patching Systems in a Running App
|
|
authors: ["@mockersf"]
|
|
pull_requests: [19309]
|
|
---
|
|
|
|
Bevy now supports hot patching systems through subsecond from the Dixous project.
|
|
|
|
Enabled with the feature `hotpatching`, every system can now be modified during execution, and the change directly visible in your game.
|
|
|
|
Run `BEVY_ASSET_ROOT="." dx serve --hot-patch --example hotpatching_systems --features hotpatching` to test it.
|
|
|
|
`dx` is the Dioxus CLI, to install it run `cargo install dioxus-cli@0.7.0-alpha.1`
|
|
TODO: use the fixed version that will match the version of subsecond dependency used in Bevy at release time
|
|
|
|
Known limitations:
|
|
|
|
- Only works on the binary crate (todo: plan to support it in Dioxus)
|
|
- Not supported in Wasm (todo: supported in Dioxus but not yet implemented in Bevy)
|
|
- No system signature change support (todo: add that in Bevy)
|
|
- May be sensitive to rust/linker configuration (todo: better support in Dioxus)
|