Code HotReloading Feedback

So I’ve been using this stuff for a while now in the latest-preview and now in final 4.5 and it’s pretty sweet so far. However asserting if you mess up (say forget to initialize a TSubobjectPtr) and having the process shut down is brutal.

This stuff needs to be more forgiving, say for example: throw an exception on the failure, print the errors to the log and swap back to the previous version of the dll or even just log the error each time that code fails. Look at Unity for example; even in an Update (Tick), if your code errors out for whatever reason. They handle the exception and print to the editor log so that you can address the mistake without having to manage total catastrophe. Obviously sometimes this can’t be helped and in those cases the thing is going to come down anyway but try and keep the editor as resilient to programmer error as possible is paramount.

We’re running 64bit here, we don’t need to fear exceptions in c++ anymore. (Especially in tool code)

Keep being awesome

/ Kyle

That would be awesome! Anything to improve iteration time even more is high on my wishlist.

The problem with Unity (C# and generally scripting languages) vs C++ is that you can encapsulate those inside of their virtual environments which handle the crashes. We generally don’t use exceptions outside of UnrealHeaderTool so that makes it a little bit harder to handle. I agree that maybe we should automatically re-start the editor with the previous DLLs if something goes wrong during hot-reload.