------------ Version 0.13 ------------ * 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 ------------ * 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 ------------ * fixed problem with recursive data structures in sourcify * minor cleanups ------------ Version 0.10 ------------ * added --version for ccconfig * cleaned up and fixed format strings * updated README ------------ Version 0.09 ------------ * 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 ------------ * added ccconfig --nodelete option * added context info for structs/unions/enums * removed 'c99' feature * documentation updates and fixes ------------ Version 0.07 ------------ * 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 ------------ * 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 ------------ * 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 ------------ * 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 ------------ * 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 ------------ * 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 ------------ * initial release