On 2013-06-18 00:06, Francois Chabot wrote:

Well, the main thing that I want on my end is a O(1) memory footprint
when dealing with hierarchical data with no cross-references.

That's kind of hard since it creates data. But if you mean except for the data then it stores some meta data in order to support reference types. That is, not serializing the same reference more than once. Theoretically a template parameter could be added to avoid this, but that defeats the purpose of a class/interface design. It could be a runtime parameter, don't know how well the compiler can optimize that out.

Even better would be that serialization being a lazy input range that can be
easily piped into something like Walter's std.compress. I guess I could
log an enhancement request to that effect, but I kinda felt that this
was beyond the scope of Orange. It has a clear serialize, then deal with
the data design. What I need really goes against the grain here.

I'm no expert on ranges but I'm pretty sure it can work with std.compress. It returns an array, which is a random access range. Although it won't be lazy.

The deserialization would be a bit harder since it depends on std.xml which is not range based.

Once again, the sticking point is not the serialization format, but the
delivery method of said data.

Ok.

No! no no no. I just feel that Orange handles a big piece of the
serialization puzzle, but that there's a lot more to it.

Ok, I see. But I need to know about the rest, what you're missing to be able to improve it. I have made a couple of comments here.

--
/Jacob Carlborg

Reply via email to