Skip to content
Snippets Groups Projects
Changes 25.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • ----------------------------
    Version 0.86 (2025-09-07)
    ----------------------------
    
    * C23 compat for nhash.c function pointer magic (fixes
      github #13)
    
    
    ----------------------------
    Version 0.85 (2024-10-01)
    ----------------------------
    
    * remove bundled Test modules (should fix github #11)
    
    * small change for compatibility with pre-dor perls
      (should fix github #10)
    
    * suppress some gcc warnings during build
    
    * update `ppport.h`, which gets rid of a lot of clang
      warnings
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    ----------------------------
    Version 0.84 (2020-11-23)
    ----------------------------
    
    * skip threads testing on 5.9.5 and 5.10.0 as
      Perl_clone() segfaults for these releases
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    ----------------------------
    Version 0.83 (2020-11-19)
    ----------------------------
    
    * more Windows fixes
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    ----------------------------
    Version 0.82 (2020-11-19)
    ----------------------------
    
    * fix speed tests (the new smaller code was parsing too
      quickly for caching to have a strong impact)
    
    * update documentation, e.g. bugtracker
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    ----------------------------
    Version 0.81 (2020-11-18)
    ----------------------------
    
    * fix parallel builds
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    ----------------------------
    Version 0.80 (2020-11-17)
    ----------------------------
    
    * fix 602_threads.t
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    ----------------------------
    Version 0.79_01 (2020-11-15)
    ----------------------------
    
    * [WIP] fixing cpan #132904: License Inconsitencies
    
    * update documentation
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    -------------------------
    Version 0.79 (2020-05-19)
    -------------------------
    
    * fix cpan #121039: Fails tests when no "." in @INC; thanks to
      Kent Fredric for the report & pull request and sorry for the
      long time this bug/pr sat in the queue
    
    * merge github PR #5: Remove use of indirect object notation in
      tests; thanks to Julien Fiegehenn for the PR and sorry for the
      long time this sat in the queue
    
    * fix some tests that generated spurious output and didn't
      actually test anything useful
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    -------------------------
    Version 0.78 (2016-02-14)
    -------------------------
    
    * added Clang support to ccconfig
    
    * fix cpan #109978: improve wording/grammar in POD; thanks to
      gregor herrmann for providing a patch
    
    * fix cpan #95716: Add support for #warn/#warning; thanks to
      Jon DuSaint for providing an initial patch
    
    * update module metadata
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    -------------------------
    
    Version 0.77 (2015-07-22)
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    -------------------------
    
    * ensure consistent order of enums when generating code; this was
      a real bug and caused the configuration part of C::B::C to report
      wrong (even invalid) configurations back to the user when built
      using a recent version of Perl that randomises hash keys
    
    * fix cpan #85264: the POD test was reporting a missing =back tag
    
      in one of the support modules; the ultimate fix was to ensure only
      the provided modules were POD checked
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    
    * fix cpan #83167: an artificially low refcnt for immortal variables
      introduced recently for debug Perl builds was causing the refcnt
      tests to fail for SvNULLs; thanks to Reini Urban for his patch;
      also thanks to Nicholas Clark for pointing me to the Perl commit
    
    
    * fix cpan #78165: spelling errors in the documentation; thanks to
      gregor herrmann for providing a patch
    
    * fix deprecated use of unescaped braces in regex
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    * fix some gcc and Perl warnings
    
    
    * switch from SnapshotCM to git repo: github.com/mhx/Convert-Binary-C/
    
    
    -------------------------
    Version 0.76 (2011-04-11)
    -------------------------
    
    * it looks like I've found the source of the test failures reported
      in cpan #56369; this version is an attempt to fix the problem, but
      without fully understanding it -- if a windows guru can explain to
      me why setjmp() deadlocks if the jmp_buf structure was allocated
      through Perl's API (New, Newz, etc), I'd really appreciate it
    
    
    -------------------------
    Version 0.75 (2011-04-10)
    -------------------------
    
    * fix cpan #63381 / perl #79854: make sure warnings cause a cache
      file not to be used (thanks to Andreas König for reporting this)
    
    * fix bug in unpack where the code would attempt to create an array
      with negative size when running out of input data
    
    * make sure elf.PL reads/writes in binary mode (thanks to רחלי מרל
      for finding this problem)
    
    
    -------------------------
    Version 0.74 (2009-04-18)
    -------------------------
    
    * fix sourcification of flexible array members (triggered by cpan
      #45105; thanks to Alexander Ost for being persistent in his
      attempt to convince me that there's a bug in sourcify)
    
    
    -------------------------
    
    Version 0.73 (2009-03-16)
    -------------------------
    
    * fix META.yml generation with newer versions of ExtUtils::MakeMaker
    
    * work around an include path handling bug present in some versions
      of Test::Harness
    
    -------------------------
    
    Version 0.72 (2009-03-15)
    -------------------------
    
    * fix cpan #43119: patch to allow Convert::Binary::C to build
      with GCC 4.4.x (thanks to Alex Lancaster for providing a patch)
    
    
    -------------------------
    Version 0.71 (2008-04-15)
    -------------------------
    
    * added new 'StdCVersion' and 'HostedC' options for configuring
      the predefined macros of the preprocessor
    
    * fix debugging build with development version of Perl
    
    
    -------------------------
    Version 0.70 (2007-12-24)
    -------------------------
    
    -- released without changes --
    
    
    ----------------------------
    Version 0.69_01 (2007-12-08)
    ----------------------------
    
    * fix UV generation on platforms where NVs don't preserve
      UVs (e.g. amd64) and perl doesn't know about UVs (<5.6.0)
    
    * make the test suite more noisy when something goes wrong
    
    
    -------------------------
    Version 0.69 (2007-12-06)
    -------------------------
    
    * fix: unpack would return garbage when an unpack hook
      causes the perl stack to be reallocated
    
    * make ccconfig handle blanks in paths correctly
    
    * slightly improve ELF parser example
    
    * fix debug format strings
    
    
    -------------------------
    Version 0.68 (2007-06-25)
    -------------------------
    
    * allow #pragma pack(0) to reset to default alignment,
      just like #pragma pack
    
    * add checks for invalid #pragma pack() arguments
    
    
    -------------------------
    Version 0.67 (2006-12-29)
    -------------------------
    
    * bleeding edge perl versions don't have SVt_PVBM anymore,
      which broke compilation of cbc/util.c
    
    
    -------------------------
    Version 0.66 (2006-11-02)
    -------------------------
    
    * fix a bug in the parser that accidentially allowed
      qualified enum specifiers as unnamed compound members
    
    * update test suite for better coverage of recent
      compiler features and bitfields
    
    
    -------------------------
    Version 0.65 (2006-08-27)
    -------------------------
    
    * fix compilation issues with perls configured with
      threads and debugging; these issues were caused by
      a buggy implementation of the assert() macro in the
      5.8 series of perl
    
    * fix compilation issues with HP compiler on itanium
      systems
    
    * fix: hooks for the same type were not re-entrant
      (i.e. you could not pack/unpack the same type
      within a hook registered for that type)
    
    * fix: passing sparse hashes or arrays to pack() in
      combination with pack hooks was causing an assertion
    
    * fix an integer promotion bug in the preprocessor
    
    * add better support for C99-style array declarator
    
    * fix enumerator handling: it was impossible to reuse
      the name of an enumerator as an identifer
    
    * ccconfig fix: macros defined to the empty string
      were not properly detected
    
    
    ----------------------------
    Version 0.64_02 (2006-03-24)
    ----------------------------
    
    * struct members are now treated more Cish than before
    
    * added experimental Dimension tag
    
    * cleaned up some internals
    
    
    ----------------------------
    Version 0.64_01 (2006-02-27)
    ----------------------------
    
    * added new methods to interface with the preprocessor:
    
      o the 'defined' method tests if a macro is defined
    
      o the 'macro_names' method returns a list of all
        defined macro names
    
      o the 'macro' method returns macro definitions
    
    * added 'Defines' option for 'sourcify' method; with
      this option turned on, macro definition are also
      sourcified
    
    * the speed of the 'sourcify' method has been greatly
      improved
    
    * add a new pod coverage test
    
    * fix a pod2usage call in elf.pl example
    
    * improve warning when trying to pack references into
      format tagged types
    
    * make the module and some basic tests compatible with
      perl 5.004
    
    * the native() function/method now also supports the
      'UnsignedChars' and 'UnsignedBitfields' properties
    
    * the 'threads' feature is deprecated and will be removed
      in a future relase
    
    -------------------------
    Version 0.64 (2006-01-16)
    -------------------------
    
    * fix version handling in *.pm files
    
    * don't index bin/elf.PL
    
    * upgrade ppport.h
    
    
    ----------------------------
    Version 0.63_01 (2006-01-09)
    ----------------------------
    
    * fix: using the Format tag on bitfield members now throws
      an exception
    
    * added experimental ByteOrder tag
    
    * added ELF parser example
    
    * improve internals
    
      o better encapsulation of the pack/unpack code
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
      o avoid unnecessary computations
    
    
      o thanks to the cachegrind tool (http://valgrind.org), some
        expressions in the lexer code of the ucpp preprocessor
        could be optimized, making the preprocessor more than
        10% faster on x86 platforms; this means that parsing
        should be about 7% faster now
    
    * improve test coverage
    
    
    -------------------------
    Version 0.63 (2005-12-29)
    -------------------------
    
    * fix a problem with the test suite when run in a directory
      that contains whitespace characters
    
    * (hopefully) fix the no_index problem in the META.yml by
      replacing "dir" with "directory"
    
    
    -------------------------
    Version 0.62 (2005-12-01)
    -------------------------
    
    * fixed a bug in unpack() that would cause an error when
      repeatedly passing a substr() as the data argument; this
      is not a critical bug, because there's no silent failure
    
    
    -------------------------
    Version 0.61 (2005-10-27)
    -------------------------
    
    * fix Makefile.PL / META.yml
    
    
    -------------------------
    Version 0.60 (2005-10-26)
    -------------------------
    
    * fixed: the byte order setting was not correctly handed
      to the bitfield layouter when using configure() before
      using parse(); since that's what C::B::C::Cached does,
      C::B::C::Cached could be using the wrong byte order for
      bitfields
    
    * the deprecated methods add_hooks(), delete_hooks() and
      delete_all_hooks() have been removed
    
    * silence some warnings with newer gcc versions
    
    * start moving test suite to use Test::More
    
    * bundle Test, Test::More and Test::Harness for older
      perl versions
    
    * extend compatibility down to perl 5.005
    
    
    -------------------------
    Version 0.59 (2005-06-13)
    -------------------------
    
    * fixed: dying hooks no longer leak memory
    
    * added new 'UnsignedBitfields' option
    
    * removed 'Bitfields are unsupported' warning
    
    * documented bitfield support
    
    * the usual cleanups and corrections
    
    
    ----------------------------
    Version 0.58_01 (2005-05-23)
    ----------------------------
    
    * bitfields are now supported; since bitfield implementations
      differ from compiler to compiler (sometimes significantly),
      the bitfield layouting engine can be exchanged at runtime;
      bitfield support is, however, still considered experimental
    
    * the memory used by internal data structures as well
      as the number of malloc/free calls has been reduced
      by about 15 percent; besides saving memory, this also
      makes parsing and cloning a bit faster
    
    * the whole pack()/unpack() engine was re-doing the work
      that has previously been done by the compound layouter;
      this redundancy has been removed, making the code more
      readable (and a little bit faster)
    
    * the compound layouter implementation has been separated
      and can now be exchanged at runtime (which is currently
      unused as there's only one implementation)
    
    * the bison parser is now making use of the %destructor
      feature introduced recently; this makes the parser code
      a lot easier to read and maintain, and makes the parser
      a bit faster; you need at least bison-2.0a to regenerate
      the files
    
    * when packing 'string' numbers, the 0b... syntax is now
      supported for binary numbers
    
    * ccconfig's interface and internals have been updated
    
    * ccconfig now has a lot more options that hopefully allow
      you to test compilers with strange commandline interface
    
    * ccconfig is now more robust against compiler failures
    
    * lots of minor tweaks and fixes
    
    
    -------------------------
    Version 0.58 (2005-02-21)
    -------------------------
    
    * there's now a mailing list; see the documentation or
      README for details
    
    * new tag() method provides a generic way of tagging
      properties such as hooks to types
    
    * the hooks methods are deprecated and will be removed
      in a future release (new interface is provided through
      tag() / untag())
    
    * completely restructured the XS/C internals, since C.xs
      was getting way too large; the code should be a lot
      more modular and organized now
    
    * make the preprocessor handle (read: ignore) any #ident
      directives (problem spotted by Ronnie Kelly)
    
    * use faster preprocessor tokenizer routine
    
    * ccconfig: add --output-file and --output-format options
    
    * fix invalid read bug when redefining a macro with trailing
      whitespace (spotted by valgrind)
    
    * make sure pack() returns null-terminated strings; not doing
      so can confuse the regex engine
    
    * strip redundant warnings from enum/compound/typedef methods
    
    * fix deep recursion in llex() that causes bus error on hpux
      (this should fix the activestate test failures)
    
    * make util / ucpp use Perl's memory allocation functions
      (this should fix problems with -Dusethreads and -Dusemymalloc)
    
    * as usual, more tests and more docs
    
    
    -------------------------
    Version 0.57 (2004-11-23)
    -------------------------
    
    * allow empty initializers (spotted by Mike Lamb)
    
    * add CharSize option to support architectures where
    
      chars are larger than 8 bits (spotted by Esa Östring)
    
    -------------------------
    Version 0.56 (2004-09-19)
    -------------------------
    
    * allow empty member declaration lists
    
    * minor doc fixes
    
    
    -------------------------
    Version 0.55 (2004-08-22)
    -------------------------
    
    * new native() function to query native properties
    
    * feature() and native() can now also be called as methods
    
    * allow setting Alignment and CompoundAlignment to zero to
      request native alignment and compound alignment
    
    * prefix compile-time defaults with CBC_ and document them
    
    * upgrade ppport.h
    
    * minor cleanups
    
    
    -------------------------
    Version 0.54 (2004-07-01)
    -------------------------
    
    * improved hooks features
    
    * changed handling of autogenerated files that has been
      causing trouble with crappy archiving tools
    
    * minor bugfixes
    
    
    -------------------------
    
    Version 0.53 (2004-05-25)
    -------------------------
    
    * fixed a bug that messed up the return values when using
      unpack in list context together with OrderMembers => 1
    
    -------------------------
    Version 0.52 (2004-05-24)
    
    -------------------------
    
    * added new CompoundAlignment option
    
    * added new behaviour for unpack method in list context
    
    * simplify inheriting from Convert::Binary::C
    
    * fixed a bug in the initializer method that caused
      wrong initialization strings for unnamed unions
    
    * fixed a systematic bug that caused sourcify to return
      invalid C code in a few special cases
    
    
    -------------------------
    Version 0.51 (2004-03-23)
    -------------------------
    
    * added method chaining for add_hooks, delete_hooks and
      delete_all_hooks
    
    * fixed some bugs when using substr() with pack and unpack
    
    * documentation fixes and updates
    
    -------------------------
    Version 0.50 (2004-03-22)
    -------------------------
    
    
    * added support for flexible array members and incomplete
      types
    
    * added support for registering pack/unpack hooks to allow
      user-defined packing/unpacking
    
    * ucpp is now reentrant, thus there's no more locking of
      parse/parse_file
    
    * fixed a memory leak when using OrderMembers => 1
    
    * improved ccconfig's detection of ability to compile
      object/executable files
    
    * lots of minor bugfixes and code cleanups
    
    
    -------------------------
    Version 0.49 (2003-11-24)
    -------------------------
    
    
    * fixed build problem on multi-threaded 5.6.x perls by
      removing irrelevant code from ppport.h
    
    * changed error reporting: preprocessor errors are no
      longer only warnings
      (this fixes an issue with Convert::Binary::C::Cached
      creating an empty cache file if none of the #include'd
      files could be found)
    
    * fixed some error/warnings reporting problems with
      Convert::Binary::C::Cached
    
    * minor cleanups
    
    
    -------------------------
    Version 0.48 (2003-11-03)
    -------------------------
    
    
    * added new 'OrderMembers' option: this option allows you
      to tie all hashes returned by the unpack method to either
      Tie::Hash::Indexed or Tie::IxHash, thus preserving the
      order of compound members when e.g. dumping the hashes or
      iterating through their keys/values
    
    * slightly improved performance for pack method
    
    * added META.yml
    
    
    Marcus Holland-Moritz's avatar
    Marcus Holland-Moritz committed
    * lots of code cleanups
    
    -------------------------
    Version 0.47 (2003-09-11)
    -------------------------
    
    
    * enhanced behaviour of def() method
    
    * added new pod test
    
    * fixed some buglets
    
    
    -------------------------
    Version 0.46 (2003-09-09)
    -------------------------
    
    
    * fixed bug #3753 "packing a struct/member/field causes a
      bus error"
    
    * added new warnings when packing/unpacking zero-sized types
    
    * updated the docs with links to http://rt.cpan.org and
      http://cpanratings.perl.org
    
    
    -------------------------
    Version 0.45 (2003-08-18)
    -------------------------
    
    
    * fixed/improved sourcify output for #pragma pack
    
    * added Context option for sourcify method
    
    
    -------------------------
    Version 0.44 (2003-08-17)
    -------------------------
    
    
    * fixed behaviour of typeof method for bitfields
    
    * dependencies method now returns plain list of files when
      called in list context
    
    * doc fixes
    
    
    -------------------------
    Version 0.43 (2003-07-24)
    -------------------------
    
    
    * fixed: undef values returned by unpack were not writable
      and caused problems with almost all versions of perl
    
    * fixed: sizeof() could return garbage when used on array
      types
    
    * fixed bogus warning generated by pack when explicitly
      passing 'undef'
    
    * improved warning messages generated by pack
    
    * added error when using offsetof on bitfields
    
    * added new initializer method
    
    * the offset argument to the member method is now optional;
      without the offset argument, a list of all possible
      members is returned
    
    * code cleanups
    
    
    -------------------------
    Version 0.42 (2003-06-23)
    -------------------------
    
    
    * added new 'ieeefp' feature
    
    * new floating point conversion code to support both IEEE
      and non-IEEE sytems
    
      o on machines using the IEEE format to store floating
        point numbers, you can pack/unpack arbitrary byteorder
        floating point values for all supported native sizes
    
      o on machines not using the IEEE format, packing and
        unpacking of floating point values is restricted to
        the types natively available
    
    * floating point conversion checks and warnings have been
      improved
    
    * added floating point format detection to ccconfig
    
    * some code cleanups
    
    
    -------------------------
    Version 0.41 (2003-06-10)
    -------------------------
    
    
    * added support for gcc's asm syntax
    
    * some cleanups
    
    
    -------------------------
    Version 0.40 (2003-04-20)
    -------------------------
    
    
    * same as 0.13, just to make CPAN(?:PLUS|-indexer)? happy
    
    
    -------------------------
    Version 0.13 (2003-04-20)
    -------------------------
    
    * changed behaviour of member method in list context
    
      o doesn't return the member's type any longer
    
      o returns all matching members instead, if multiple
        members match the given offset
    
      o this change is NOT backward compatible
    
      o to get the old behaviour, turn
    
          ($member, $typeof) = $c->member( $type, $offset );
    
          $member = $c->member( $type, $offset );
          $typeof = $c->typeof( $type.$member );
    
    * fixed lots of memory leaks resulting from using sv_dec()
      where SvREFCNT_dec() should have been used instead
    
    * fixed memory leak when object construction fails
    
    * fixed sourcify for enums in special cases
    
    * fixed segfault in debugging mode
    
    * removed lots of limitations and fixed lots of bugs when
      dealing with member expressions
    
    * changed module/ccconfig versioning; now
    
        $Convert::Binary::C::VERSION
        $Convert::Binary::C::Cached::VERSION
    
      as well as the version of ccconfig are all set to the
      version of the distribution to avoid confusion
    
    * added new typeof method
    
    * added dwimmy handling of offset suffixes
    
    * added basic type support for many methods
    
    * allowed basic types to be used without parsing any code
    
    * allowed enum/struct/union prefixes for enum, compound,
      struct and union methods
    
    * improved performance when using a threaded perl binary
      by about 20%; performance is now only 5% worse than
      with a non-threaded binary
    
    * added new "understanding types" section to documentation
    
    * fixed some inconsistencies in documentation
    
    * added some new warnings
    
    * added lots of new tests, some based on coverage analysis
      using gcov
    
    * fixed some tests that could fail due to random binary
      input when (un)packing floating point values
    
    * used ppport.h for compatibility
    
    * added check for unsupported perl binary configuration
      with usemymalloc=y _and_ threads
    
    * lots of code cleanups
    
    -------------------------
    Version 0.12 (2003-03-18)
    -------------------------
    
    * fixed some bugs in ccconfig
    
    * fixed dealing with cache file corruption
    
    * minor fixes in documentation
    
    * use Devel::Tokenizer::C for tokenizer generation
    
    -------------------------
    Version 0.11 (2003-02-27)
    -------------------------
    
    * fixed problem with recursive data structures in sourcify
    
    * minor cleanups
    
    -------------------------
    Version 0.10 (2003-01-23)
    -------------------------
    
    * added --version for ccconfig
    
    * cleaned up and fixed format strings
    
    * updated README
    
    -------------------------
    Version 0.09 (2003-01-20)
    -------------------------
    
    * fixed problems with va_list on Linux-PPC that caused some
      tests to segfault
    
    * updated preprocessor output detection in ccconfig for
      "smart" preprocessors
    
    * minor fixes and cleanups
    
    * minor documentation updates
    
    -------------------------
    Version 0.08 (2003-01-15)
    -------------------------
    
    * added ccconfig --nodelete option
    
    * added context info for structs/unions/enums
    
    * removed 'c99' feature
    
    * documentation updates and fixes
    
    
    -------------------------
    Version 0.07 (2003-01-09)
    -------------------------
    
    
    * fixed packing/unpacking for #pragma pack
    
    * complete rewrite of member() algorithm
    
    * added 'KeywordMap' option to add keywords directly to the parser
    
    * added new behaviour for EnumSize => -1
    
    * extended ranges of some integer options
    
    * integrated new version of ucpp
    
    * added 'ccconfig' script
    
    * example scripts are now generated
    
    * added and improved tests
    
    * documentation updates
    
    * lots of other tiny tweaks
    
    * deprecated 'c99' feature, will be removed in 0.08
    
    -------------------------
    Version 0.06 (2002-12-13)
    -------------------------
    
    
    * removed options 'HasVOID' and 'HasC99Keywords'
    
    * added 'DisabledKeywords' option, which replaces both 'HasVOID' and
      'HasC99Keywords', and allows to disable a lot of other keywords, too:
    
        HasVOID => 0         -->  DisabledKeywords => ['void']
        HasC99Keywords => 0  -->  DisabledKeywords => [qw(inline restrict)]
    
    * updated parser to ignore type definitions within code blocks
    
    * fixed an access violation when cleaning up the preprocessor
    
    * removed warning when using sourcify method
    
    * added some more tests
    
    * added examples directory and some example scripts
    
    * added more examples to documentation
    
    * documentation fixes/updates
    
    
    -------------------------
    Version 0.05 (2002-11-28)
    -------------------------
    
    * fixed a bug that suppressed the error message
      when the cache file could not be created, and
      added a test for it
    
    -------------------------
    Version 0.04 (2002-11-27)
    -------------------------
    
    * support for 64-bit data types on all platforms
    
    * additional data types
    
      o long long
    
      o long double
    
    * new methods
    
      o clean -- cleaning an object
    
      o clone -- cloning an object
    
      o depencencies -- retrieve an object's dependencies
    
      o sourcify -- emit an object's parsed data as C source
    
    * changed method behaviour
    
      o configure
    
        - The 'HashSize' option has been removed. I didn't like
          it anyway, and since the hash tables are now growing
          automatically, it's completely useless.
    
        - Instead of undef, 0 and 1, the def method will now return
          undef, '' (the empty string) or the kind of the type you
          passed as an argument, e.g. 'typedef' or 'union'.
    
    * added method behaviour
    
      o configure
    
        - Calls to configure (and other configuration methods) can
          be chained together when they're 'set' method calls.
    
      o parse, parse_file
    
        - All method calls that have no return value will return a
          reference to their object, so method chaining is possible.
    
      o pack, unpack, sizeof, offsetof, member
    
        - These methods now can all operate on compound members, i.e.
          you could say $obj->sizeof( 'type.foo.x' ).
    
        - The member method now can optionally return the type of the
          requested member.
    
    * new Convert::Binary::C::Cached module
    
      o cached Convert::Binary::C objects
    
      o identical interface
    
      o can speed up parsing by up to 10 - 20 times
    
    * increased speed for packing and unpacking arrays
    
    * increased portability
    
    * added new and improved existing tests
    
    * some bug fixes and a lot of code cleanups
    
    * upgraded to bison 1.75
    
    -------------------------
    Version 0.03 (2002-09-25)
    -------------------------
    
    * fixed default sizes for floats and double in object constructor
    
    * fixed some 64-bit architecture issues
    
    * fixed bug in bison parser