=============
What's to do?
=============

for future releases (in no special order):
------------------------------------------

* more gcov, more tests

* map MemAlloc => malloc / Free => free? / macro? (speed?)

* optimize/cleanup tests

* have a definition() method?
  Like typedef/compound/enum, but for all of 'em?

* cleanup unsafe values handling

* COPY_LINE ?

* maybe add DollarsInIdentifiers, AtSignsInIdentifiers?

* on parse error, print parser stack?

* add some warnings during parsing
  empty arrays in structs a[]

* maybe add routine with checks after parsing

* add platform independent IEEE floating point support
  (SoftFloat or sth. similar?)

* support gcc's __attribute__, at least for struct packing

* support (read: ignore ;) asm (and variations: asm volatile)

* maybe add tests for all preprocessor warnings/errors?

* maybe add a more complete preprocessor testsuite?

* character arrays => strings?

* support flexible array members

* perhaps bless (tie) long double SV's and store binary data (?)

* sourcify only specific types (pass in a list of types) (?)

* support for unsigned and 64-bit integer arithmetics

* implement cast operators

* support constant address arithmetics

  - this is mainly needed for the offsetof C macro and
    similar stuff, eg

      enum { OFFSET = offsetof( struct foo, bar ) };

    doesn't work yet. But I guess such construct is rarely
    used.

* maybe add an object representing a single type?

  - for example:

      $p = new Convert::Binary::C;
      $p->parse_file( 'some_code.h' );
      $type = $p->get_type( 'type' );
      $data = $type->unpack( $raw );

    (no, I didn't think about how to name any of the new stuff ;)

  - should use less memory
  - should allow for serializing
  - should allow for use with PerlIO layers (?)
  - I have to think about that!!!
  - Any suggestions are strongly appreciated!

* make the preprocessor re-entrant

  - not high priority, since the locking is working fine, too

* perhaps add bitfield support

  - would need something like compiler definition files to
    describe the behaviour of different compilers

* do some more optimization in the Get/SetBasicType area

* add even more tests

  - this can't hurt ;)
  - perhaps try to increase the speed of the slow tests
