X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=TODO;h=2883562db370073eb664f4bb5d74490ff3835eea;hb=0413e3eaa87aba7c3a7dd0c08c69f14ca6766661;hp=a895ee3a96c2e34ea8bf4a50534899878dab3640;hpb=18a624e4d05c8e6129cdd107d91222e2a2544a1e;p=ocaml-bitstring.git diff --git a/TODO b/TODO index a895ee3..2883562 100644 --- a/TODO +++ b/TODO @@ -1,15 +1,15 @@ -$Id: TODO,v 1.2 2008-04-25 11:08:43 rjones Exp $ +$Id$ Major to-do items. -(1) In bitmatch operator, use patterns not expressions. +(1) DONE - In bitmatch operator, use patterns not expressions. -(2) Allow matching against strings. +(2) DONE - Allow matching against strings. (3) DONE - Change the syntax so { ... } surrounds match patterns. (4) Provide UInt32 and UInt64 types. -(5) Allow for specific offsets and alignment. Something like this: +(5) DONE - Allow for specific offsets and alignment. Something like this: { start : 16; another : 16 : offset(256); (* location would be 256 bits from start *) @@ -28,3 +28,38 @@ Major to-do items. (Q: Are these evaluated at compile time or at run time or selectable?) (8) Named but unbound patterns to avoid "Warning Y: unused variable". + +(9) DONE - + Make the error locations fine-grained, particularly so they point to + individual fields, not the whole match. + +(10) Cross-module, persistent, named patterns, see: + http://caml.inria.fr/pub/ml-archives/caml-list/2008/04/25992c9c9fa999fe1d35d961dd9917a2.en.html + +(11) DONE - + Runtime endiannness expressions. The suggested syntax is: + + { field : len : endian (expr) } + + where expr would evaluate to something like BigEndian or + LittleEndian. + + There are several protocols around where endianness is only + determined at runtime, examples are libpcap and TIFF. + +(12) DONE - More constant field lengths. + +(13) Implement native endian functions. + +(14) PARTLY DONE - A proper test suite. + +(15) DONE - More examples: + + ELF binaries + GIF images + +(16) We now know the offset of the current field relative to the + whole match. This may allow more efficient aligned versions + of functions to be called (at compile time). However do note + that the offset in the bitstring is usually not known. +