------------------------- 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 * lots of code cleanups * small bugfixes ------------------------- 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 ); into $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. o def - 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' ). o member - 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 * fixed problems with some tests * added support for dec_osf platform ------------------------- Version 0.02 (2002-08-31) ------------------------- * decreased the complex test file, which speeds up the complex test and decreases the size of the distribution file * decreased the number of threads in the threads test * added copyright notice to the README file * minor corrections/cleanups ------------------------- Version 0.01 (2002-08-30) ------------------------- * initial release