Hacker News new | ask | show | jobs
by 1718627440 277 days ago
Yes, but it suddenly matters if you execute code in an interpreter, where the user can change any symbol/function definition at anytime. What do you do with a a struct definition, that changes? Do all the functions return something different now? Or does the return type of all the functions change to an anon struct and the name now refers to something different. Stuff like that is what the distinction is between a compiled and an interpreted language.
1 comments

The same way you deal with them as they come from a dynamic library, and the code gets reloaded on the fly, like on game engines that use compiled C and C++ instead of whatever scripting language.

Compiled code with dynamic replacement during execution,

https://liveplusplus.tech/

https://learn.microsoft.com/en-us/visualstudio/debugger/hot-...

https://dev.epicgames.com/documentation/en-us/unreal-engine/...

Plain interpreters,

https://iel.ucdavis.edu/publication/2006/CUJ_proof.pdf

https://root.cern/

Just some examples.

That's really cool, but I think you still run in situation where its impossible to keep the program running, and/or you need to make decisions which are not described by the language standard.

>

    Warning message

    If you see the following dialog box, Hot Reload is unable to apply the current edits without restarting. You can choose either to rebuild the app and apply changes (restart) or to continue editing. If you rebuild, all application state is lost. If you continue editing, it's possible that additional changes or corrections might cause Hot Reload to work again.

    [Screenshot of the apply changes dialog box]

    If you select the Always rebuild when changes can't be applied option in the dialog box, you won't see the dialog box again in the current Visual Studio session, and Visual Studio will automatically rebuild and reload instead of showing the dialog box.