Version 0.4, 2009.02.14 ----------------------- * NOTE * - xrtti no longer depends on the Essential library. It now relies only on the C standard library, C++ STL, and some POSIX libraries. - xrtti no longer uses stdmake for its build system. It uses a single GNU make makefile (GNUmakefile). Builds on systems with POSIX utilities are currently the only supported build platforms, but plans are to support Microsoft Windows soon. - Arch Linux package builds are now supported via archlinux/PKGBUILD. - Debian package builds are now supported via 'make deb'. However, as there is no gccxml package for Debian, you must build and install gccxml yourself before using xrttigen. See http://www.gccxml.org for instructions on how to download, build, and install gccxml. - As there is no gccxml package for Fedora Core, you must build and install gccxml yourself before using xrttigen. The xrtti RPM packages have a dependency on 'gccxml', so you should use --nodeps when installing them until there is an official gccxml RPM. See http://www.gccxml.org for instructions on how to download, build, and install gccxml. Changes: - U32 and S32 no longer need to be defined by the user of xrtti; these types now come from inttypes.h uint32_t and int32_t, and are renamed u32 and s32 - Added Structure::HasSizeof() and Structure::GetSizeof() - Argument::GetDefault() now returns a char * string representation of the default instead of a parsed value. This allows complex default types to be represented and avoids conversion errors. - Base::CastSubclass() is now a const method, as it always should've been - Fixes to typedefs and type passing in generated code Known Issues: - See Version 0.3 Known Issues Version 0.3, 2007.07.06 ----------------------- * NOTE * - The xrttigenwrap program has been eliminated; use xrttigen directly instead (xrttigen now runs gccxml so you don't have to run two commands to generate your Xrtti objects) - This version of Xrtti must be built against stdmake >= 0.3 and Essential >= 0.3 Changes: - A complete rewrite of most of Xrtti, which means that changes are too many to mention. Known Issues: - There are problems when trying to build the xrttigen-generated classes into libraries, either static or dynamic. The problem is that C++ compilers often do not properly handle static constructors in libraries. The solution is to link the resulting .o files directly into your program instead of via a library. Version 0.2, 2007.05.03 ----------------------- * NOTE * - The xrttigenwrap -T option has been renamed -x to better match xrttigen's arguments - The -h parameter isn't required anymore; if it isn't supplied, the input file full path name is used, unless the input is standard in, in which case xrttigen/xrttigenwrap will exit in error - The -r (include C++ rtti bindings) parameter has been replaced by a -n (suppress C++ rtti bindings) option. In other words, C++ rtti bindings are now included by default, and must be turned off by -n, unlike previously where they were turned off by default, and had to be enabled by -r - A new method, Xrtti::LookupStruct(const void *pObjectWithVirtualMethod) has been added, and provides a means for looking up Xrtti information for any class with a vtable - Files including Xrtti.h no longer have to define XRTTI_U32_ARCH and XRTTI_S32_ARCH; these are defined as appropriate for the installed system automatically - This version of Xrtti must be built against stdmake >= 0.2 and Essential >= 0.2 Changes: - Make sure to remove tmp directory from build output when building RPM. - Added DumpObjects example code. - Changed xrttigenwrap to use -x instead of -T to specify xml temp file. - If a header file specified with the -h option is surrounded by angle brackets, they will be preserved in the generated output. - Change -r to -n and default C++ rtti to enabled instead of disabled. - Xrtti::LookupStruct(const void *pObjectWithVirtualMethod) has been added. - XRTTI_U32_ARCH and XRTTI_S32_ARCH are defined automatically in the installed Xrtti.h file. - Added README.TXT. Known Issues: - None Version 0.1, 2007.04.30 ----------------------- Initial release.