Adam ping!
How's the SOG/SOP refactor coming along? This is coming very close to the need for the refactoring...

On 10/10/2010 4:45 PM, Justin Clark-Casey wrote:
On 09/10/10 19:05, [email protected] wrote:
Dear devs,

I'm pulling my hair here with the serialization of scene objects. This
is horrible! Using .Net serialization for something as important as this
is the worst idea ever. We're completely frozen. I'm trying to add an
additional field for the creator info, and I'm stuck in all sorts of
ways: I can't compute the value of that field at serialization-time, and
then there are the issues of compatibility with previous versions of the
SOP class.

I'd like to understand all the implications of doing an entirely
different serialization procedure, one that does not use reflection, and
that allows for processing-during-serialization. What will break, and
therefore needs fixing?

Grovelling back through the archives, I found the e-mail where I
proposed this very thing back in June 2009!

https://lists.berlios.de/pipermail/opensim-dev/2009-June/006805.html

And here's the old patch which partially implemented write.

https://lists.berlios.de/pipermail/opensim-dev/2009-July/006954.html

As you wrote later, some equivalent code was later put in libOMV, though
I would test it carefully (at the time I vaguely recall thinking that it
didn't deal with some serialization cases, but this may well have been
addressed).

I'm not excited about whether this code remains in libOMV or is placed
in OpenSim if it's going to act as a legacy format in some way.

As far as I recall, there are no implications of doing this manually as
long as the XML ends up being the same.


I understand all archiving related to previous versions will break, so
we need to keep supporting the existing serialization 'disease' for the
foreseeable future. I also understand that TPs/crossings between sims
that talk different SOG serializations will break, but that's not so bad.

If the SOG serialization is going to change in an incompatible manner, I
absolutely need to bump the OAR/IAR version numbers at the same time in
order to maintain confidence in the archiving. I also need to write the
code to stop old OpenSims trying to load these new versions.

Please can we co-ordinate this in a branch?


Anything else I should be aware of before I go off and redo this?

Although .net auto-serialization is fatal if you want to make type
changes to existing fields, it has been very convenient for adding new
fields, since extraneous xml elements are simply ignored on
deserialization. I think it's almost essential that a new format behave
in the same way.

Also, are you going to put version numbers in the new serializations so
that any future incompatible can be dealt with in some manner?

Is it worth considering whether other virtual environments might store
completely different object serializations?

For any new format, I agree with Dahlia in that something OSD-like may
be worth looking at, perhaps just a simple map as I was considering for
the 'dynamic attributes' in SOP. In fact, this could allow that to fit
in nicely.

_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev

Reply via email to