std.serialization: pre-voting review / discussion

ilya-stromberg ilya-stromberg-2009 at yandex.ru
Fri Aug 23 06:34:02 PDT 2013


On Thursday, 22 August 2013 at 19:53:53 UTC, Jacob Carlborg wrote:
> On 2013-08-22 21:30, ilya-stromberg wrote:
>
>> What about more difficult cases?
>
> No it can't. It will throw an exception because it cannot find 
> a "long" element:
>
> Could not find an element "long" with the attribute "key" with 
> the value "b"

It's a serious issue. May be it's more important than range 
support. For example, I have to change class (bug fixing, new 
features, etc.), but it comparable with previos version (example: 
it's always possible to convert "int" to "long"). I that case I 
can't use std.serialization and have to write own solution (for 
examle, save data in csv file).

The easist way to fix it - store Interface Definition of the 
serialized data (should be generated automaticly). For example, 
we can use XML Schema for Xml Archive. With Interface Definition 
we can find changes and try to convert data to new format.

Note that glycerine also put your attention to this point:
http://forum.dlang.org/post/kftlfwcyughhghewqogm@forum.dlang.org

> 1. Interface Definition Language (IDL): required or not? If 
> not, how do know the details of what to serialize. If not, how 
> do you handle/support data versioning? If not, how do you 
> interoperate without another language? If yes, which types are 
> supported and what is the syntax and grammar of the IDL?

Ideas?


More information about the Digitalmars-d mailing list