Something looks wrong with this branch, commit 1481 should probably have been a rebase instead of merging trunk into a branch that you then want to merge into trunk. BZR won't fail to merge this but the history will look a bit weird.
You appear to be using "iff" in quite a few places (including some other occurrences in current lp:upstart) are those actually meant as "if and only if" or are those typos (or a mix of the two)?
Besides those two small details, nothing jumped at me during a quick read through of the diff. However this is a massive change so I won't pretend to have done a careful review of it.
I mostly rechecked the concept based on the very detailed comments you left in the code and checked that the serialization/deserialization bits make sense and match.
Something looks wrong with this branch, commit 1481 should probably have been a rebase instead of merging trunk into a branch that you then want to merge into trunk. BZR won't fail to merge this but the history will look a bit weird.
You appear to be using "iff" in quite a few places (including some other occurrences in current lp:upstart) are those actually meant as "if and only if" or are those typos (or a mix of the two)?
Besides those two small details, nothing jumped at me during a quick read through of the diff. However this is a massive change so I won't pretend to have done a careful review of it. deserialization bits make sense and match.
I mostly rechecked the concept based on the very detailed comments you left in the code and checked that the serialization/