[Haskell-cafe] Versioning

Joachim Durchholz jo at durchholz.org
Wed Dec 20 03:22:24 EST 2006


As written in my other post, I will need to update data structures that 
were marshalled to disk.

Now I'm wondering how to best prepare for the situation. E.g. one of the 
common situations is that a single data item gets replaced by a list of 
items.

Now assume that there's a SomeData type that's used across the game, and 
which gets incompatibly updated SomeData1 (say, instead of containing 
just a string it turns into a list of strings).
The update code would now have to unmarshall a blob of game data, 
traverse it to find all instances of SomeData, wrap them in a 
one-element list to turn them into SomeData1s, reconstruct the blob of 
game data with the SomeData1 items, and marshall the result back out to 
disk.
This sounds as if I'd have to write code for every single data type in 
the update program just to update a single data type. Is that true, or 
is there a way around this?

Regards,
Jo



More information about the Haskell-Cafe mailing list