On 19-03-13 20:01, Ted Janeczko wrote: ...
Tav, that sounds like a fantastic birthday party! I've done quite a bit of looking into the internal workings of SPObjects when I created the objects dialog, and I think I have a decent understanding of how everything is updated, but it does get very confusing due to gobject obscurities... If it would help out, I can take a closer look into this and start documenting the process so that it will be easier to work with in the future.
I looked at this some time ago, and one of the main issues is that we constantly keep around the XML (text) representation of attributes. So you update some internal path representation, which triggers an update of the XML, which triggers an update of the internal path representation. (I don't remember how we actually avoid an infinite loop.) This not only causes immense slow-downs, but also causes a loss of precision when doing several transformations in sequence for example. So any clarification on how this mechanism works exactly would indeed be hugely appreciated.