Implementation of hot reloading in compiled programming languages
Abstract
Hot reloading is a powerful software developing tool which allows the programmer to make changes to the codebase, and see those changes be applied to the program while it is running. This feature is naturally easy to implement in interpreted programming languages, such as Python, JavaScript and Ruby. This feature is highly demanded in compiled languages as well, because it allows to write and debug programs much faster and simpler, without the need to recompile the whole project to test out new functionality. It is especially useful when working on user interface or investigating problems that require the program in a specific state, which is hard or time consuming to reproduce. This paper explores existing approaches to solving this problem in compiled languages. We take a look at approaches used in languages with additional runtime, such as Java and C#, and explore languages which are compiled to native binaries, such as C++, Rust and Zig. We also discuss current challenges that arise with this technology, and what solutions are possible in new generations of programming languages.
Prombles in programming 2026; 2: 77-86
Keywords
Full Text:
PDFReferences
Appavoo, J., et al. (2003) "Enabling autonomic behavior in systems software with hot swapping", in IBM Systems Journal, vol. 42, no. 1. Armonk, NY, USA: International Business Machines Corporation, pp. 60–76.
Kay, A.C. (1996) "The early history of Smalltalk", in History of Programming Languages---II. New York, NY, USA: Association for Computing Machinery, pp. 511–598.
Steele Jr, G. L. (1990). Common Lisp the Language(2nd ed.). Digital Press.
Python Software Foundation (2025), importlib — The implementation of import.
Godbolt, M. (2020) "Optimizations in C++ compilers", Commun. ACM, 63(2), pp. 41–49.
Oracle Corporation (2025) HotSwap.
Microsoft (2025) Edit and continue for C#.
Wurthinger, T., Wimmer, C. and Stadler, L. (2010) "Dynamic code evolution for Java", in Proceedings of the 8th Internationaln Conference on the Principles and Practice of Programming in Java. New York, NY, USA: Association for Computing Machinery (PPPJ '10), pp. 10–19.
Andersson, J. and Ritzau, T. (05 2000) "Dynamic Code Update in JDRUMS".
Subramanian, S., Hicks, M. and McKinley, K. (06 2009) "Dynamic Software Updates: A VM centric Approach", pp. 1–12.
Lyalin, D. (2021) Introducing the .NET Hot Reload experience for editing code at runtime.
Microsoft (2025) Write and debug running code with Hot Reload in Visual Studio.
Hayden, C.M. et al. (2012) "Kitsune: efficient, general-purpose dynamic software updating for C", in Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications. New York, NY, USA: Association for Computing Machinery (OOPSLA ’12), pp. 249–264.
Zylinski K. (2023) Hot Reload Gameplay Code: What, why, limitations and examples.
Buck, B. and Hollingsworth, J.K. (2000) "An API for Runtime Code Patching", in The International Journal of High Performance Computing Applications, vol. 14, no. 4. Thousand Oaks, CA, USA: SAGE Publications, pp. 317–329.
Molecular Matters GmbH (2025) Live++ for Windows - Documentation.
Neamtiu, I. et al. (2006) "Practical dynamic software updating for C", in Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation. New York, NY, USA: Association for Computing Machinery (PLDI '06), pp. 72–83.
Neamtiu, I. and Hicks, M. (2009) "Safe and timely updates to multi-threaded programs", in Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation. New York, NY, USA: Association for Computing Machinery (PLDI '09), pp. 13–24.
Perkin, L. (2024) Hot-reloading with Raylib.
Konka, J. (2022) Hot-code reloading on macOS/arm64 with Zig.
Armstrong, J. (2007) "A history of Erlang", in Proceedings of the Third ACM SIGPLAN Conference on History of Programming
Languages. New York, NY, USA: Association for Computing Machinery (HOPL III), pp. 6-1-6–26.
The Rust Foundation (2025) Dynamic_reload crate documentation.
The Rust Foundation (2025) hot_lib_reloader crate documentation.
Nguyen, H. (2024) Guide for Implementing Live Reload Using Golang Air.
Mun language documentation.
Cassel, D. (2022), NASA Programmer Remembers Debugging Lisp in Deep Space.
Refbacks
- There are currently no refbacks.








