Improve default codecs (especially repeated behavior)

Registered by toby schneider

General improvements to the default codecs in version 3. We'll make this a codec group (see https://blueprints.launchpad.net/dccl/+spec/dccl-codec-groups) so that it doesn't break backwards compatibility with the version 2 codecs (which will still exist).

Ideas include:
- Change default repeated field from current fixed array (like C arrays with size max_length) to a variable array up to max_length. To do this we would put a (invisible to the user) uintN field (min:0 max: max_length) on the bit stream ahead of the array elements which contains the size of the repeated field.
- Change the default message codec to use a presence bit for optional fields (the current behavior [where the message codec is always present if any of its children are present] is arguably a bug).
- Change the string codec to use a variable bounded size field (currently it always uses an 8-bit size field).

Blueprint information

Status:
Complete
Approver:
toby schneider
Priority:
Undefined
Drafter:
None
Direction:
Approved
Assignee:
None
Definition:
Approved
Series goal:
Accepted for 3.0
Implementation:
Implemented
Milestone target:
None
Started by
toby schneider
Completed by
toby schneider

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.