Nixfreak is a user on mastodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

#Smalltalk and other #ImageBased #ComputerLanguages have a reputation for making software developed in them hard to upgrade. As far as I know, this has never been satisfactorily solved.

#Erlang, on the other hand, lets you upgrade modules "live", though they need to be made for it.

The persistent #LPMud implementation #DGD had hot code reloading built in: IIRC if you upgraded a class there was a command you could call to upgrade each instance of that class to use the new code.

Nixfreak @Nixfreak

@seanl lets you update live code also.

· Web · 0 · 0

@Nixfreak The live update is the easy part. It's updating state and dealing with multiple versions running at the same time that's hard.

@Nixfreak A Python messaging server we used at Linden Lab had live update too, but it was just replacing the module, so it relied on the module's either being stateless or explicitly dealing with any leftover state from the old module.

@Nixfreak In #Erlang, the thing you're live-updating is often the module underlying a process, so updating the state is mandatory. Upgrade is implemented by the built-in behaviors IIRC, so you couldn't just live-upgrade *any* process.

In #lpmud you'd be upgrading classes, which are in many ways like Erlang processes, but IIRC you don't deal with state as explicitly and there was no concept of version, so you'd better only jump one version at a time.