X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=TODO;h=ecb06207a550c54d12732e10c48ddf0025f34748;hb=e87f0879fef8e32e7ae7f7103f420c1612f3863f;hp=11e2d027757f3d443fd27adda3895657a6a280fc;hpb=7c250cb55ee4173181498c4bc026472afd14137c;p=ocaml-bitstring.git diff --git a/TODO b/TODO index 11e2d02..ecb0620 100644 --- a/TODO +++ b/TODO @@ -1,11 +1,11 @@ -$Id: TODO,v 1.1 2008-04-15 13:41:14 rjones Exp $ +$Id: TODO,v 1.5 2008-05-07 14:37:00 rjones Exp $ 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) Change the syntax so { ... } surrounds match patterns. +(3) DONE - Change the syntax so { ... } surrounds match patterns. (4) Provide UInt32 and UInt64 types. @@ -20,3 +20,39 @@ Major to-do items. { start : 16; another : 16 : align(32); (* implicit 16 bit gap before this *) } + +(7) Assertions: + + { start : 16 : assert (offset = 0); } + + (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) Runtime endiannness expressions. The suggested syntax is: + + { field : len : endianness(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) More constant field lengths. + +(13) Implement native endian functions. + +(14) A proper test suite. + +(15) More examples: + + ELF binaries + GIF images