Hi Jo,

You seem to be describing SYB and not knowing it:
http://homepages.cwi.nl/~ralf/syb1/

That basically does exactly what you've requested, in terms of
traversing all items when only one matters. That said, serialisation
is still a hard problem - think long and hard before picking a data
format.

With Yhc.Core I used Drift to derve Binary instances, keep a version
tag, and if the version tags mismatch refuse to load the data.

Thanks

Neil

On 12/20/06, Joachim Durchholz <[EMAIL PROTECTED]> wrote:
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

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to