|
|
|
|
|
by alavrik
5746 days ago
|
|
For example, over time you dynamically upgrade a module going from version 1 to 2 and, later, to version 3. During the first module upgrade, data types from the newer module (2) can be incompatible with the data types from the older module (1). Such incompatibilities are resolved dynamically during the upgrade procedure (implemented as a part of v2) which knows about type incompatibilities between versions 1 and 2. After the upgrade from version 1 to 2, any subsequent module versions (e.g. 3) doesn't have to know anything about types from the initial module (1). |
|
I'm not sure why being statically typed would make hot code loading impossible. Can't you always interject some transformation function between updates? At the very worse you could have code to serialize your data structure right before update, then another function after the update to deserialize and turn it into the new structure. Am I missing something?