On Thursday, 27 February 2025 at 09:24:59 UTC, Lewis wrote:
- Support for DLL-based hotswapping. This required piping a few calls in the DLL's druntime/phobos over to the EXE's druntime (eg. using a GC proxy, thread management). Also, a couple small changes to stuff like the GC initialization in the DLL so the proxy gets set up correctly. This was completely worth it, DLL hotswapping is a gamechanger, just a massive improvement to iteration time. My changes are a tad hacky, but the release build of the game skips the DLL and links everything statically, so any bugs from this hackiness are debug-only.

Obligatory link to talks Manu and myself did on this topic:

https://www.youtube.com/watch?v=Jf7dvOWjLpU

https://www.youtube.com/watch?v=7YjLW7anNfc

https://www.youtube.com/watch?v=nro3txFndbM

https://www.youtube.com/watch?v=Aj9_Mb6wQV0

And yeah, being able to switch between release optimised binaries and debug binaries at runtime is one of the key advantages over something like Live++. Ultimately, treating code as data and making it just another asset in your engine's pipeline is 100% the way to go.

Reply via email to