Changes between Version 20 and Version 21 of StructuredBinaryData

2012-08-07T06:14:35Z (11 years ago)
Sean Bartell

More future features.


  • StructuredBinaryData

    v20 v21  
    272272   could pass the whole blob as a parameter and apply transforms to subblobs.
    273273   This is essential for non‐sequential blobs like filesystems.
     274 Infinite loop detection:: When decoding transforms like
     275   `struct { if (.non_existent) { } }`, an infinite loop occurs. This can also
     276   happen if the field exists, but in an outer `struct`. An error should be
     277   printed instead; Bithenge should not try to look in the `if` when searching
     278   for `.non_existent`.
    274279 Complex expressions:: Expressions that use operators or call transforms.
     280 Better error reporting:: errno.h is intended for system call errors; when
     281   other errors occur, a more helpful error message should be printed, like
     282   "field .foo not found" or "cannot apply nonzero_boolean to blobs".
    275283 Assertions:: These could be implemented as transforms that don't actually
    276284   change the input. There could be multiple levels, ranging from “warning” to
    278286 Enumerations:: An easier way to handle many constant values, like
    279287   `enum { 0: "none", 1: "file", 2: "directory", 3: "symlink" }`.
     288 Recursive transforms:: Although simple cases are handled by `do...while`, in
     289   some cases transforms need to recursively refer to themselves or each other.
    280290 Merge blobs and internal nodes:: Currently, `struct`, `repeat`, and so on only
    281291   work with blobs, which must be either byte sequences or bit sequences.