New in 0.3.13 ------------- * Added a uuidgen program. * Suppress warnings in GCC 4. * Put headers in a versioned location. * Fixed building of XPLC on FreeBSD. New in 0.3.12 ------------- * Additional work done on the category system. * Improved the module loader. New in 0.3.11 ------------- * Fixed an AMD64 portability issue (possibly affected other 64 bit systems). * Improved the test framework. * Improved the Debian package. New in 0.3.10 ------------- * Made it easy to install multiple versions of XPLC in parallel. * Fixed compilation problems with Darwin/Mac OS X. * Fixed a problem with Debian package uninstallation. * Simon Law took over maintenance of the Debian package. New in 0.3.9 ------------ * Fixed a compile problem in the "illegal delete detector". New in 0.3.8 ------------ * Refactored the module loading mechanism, sharing more code and making it simpler to use. * Fixed some bugs in the unit tests. * Improved the examples a bit to make lifting of code easier. New in 0.3.7 ------------ * Some example code to show the basic use of XPLC. * Added an addModuleDirectory method to the XPLC helper class. * Added missing Doxygen documentation. New in 0.3.6 ------------ * Added a clause to the license on the C++ bindings, to allow closed-source programs and libraries to use the XPLC C++ bindings. * Build XPLC as a DLL on Windows, and put the C++ bindings in a separate statically linked library, as on Unix. * Fixed some interaction between xplc_ptr and the "illegal delete detector". * Fixed an issue when building XPLC with GCC 3.4. New in 0.3.5 ------------ * Rewrote and finished the xplc_ptr smart pointer templated class. * Mostly implemented component categories (missing IFactory behavior). * Fixed a few details in the pkg-config support. * Updated the README. New in 0.3.4 ------------ * Added an "illegal delete detector". * Added support for pkg-config. * Re-enabled support for dyld on Mac OS X/Darwin. * Avoid leaking autoconf headers in the installed headers. New in 0.3.3 ------------ * Major improvements to the Win32 port, including compatibility with windows.h. * Continuing work on the module loader subsystem. New in 0.3.2 ------------ * Made the UUID structure compatible with the one in Windows. * Improved the Doxygen documentation. * Changed the way loadable modules are defined. * Moved the generic factory to the C++ binding, making it feel more natural to use in C++ in the process. * Replaced the GenericComponent macro with a more efficient and easier to use IMPLEMENT_IOBJECT macro. * Fixed a leak when using weak reference. New in 0.3.1 ------------ * Added a good deal of Doxygen documentation. * Fixed a bug where some symbols where missing from libxplc.so. * Added a Debian package setup. * Restricted exported symbols, made libxplc.so resistant to changes in libxplc-cxx.a. * Various optimizations to decrease the size of libxplc.so. * Fixed build system for Visual C++.NET. * Started the category support. * Improved testing suite. New in 0.3.0 ------------ * Added weak references and appropriate tests. * Improved GenericComponent to handle weak reference support automatically. * The XPLC helper class can now create objects directly from a moniker. * Fixed a problem in the RPM package. New in 0.1.7 ------------ * We now support the dyld found on Mac OS X/Darwin. * Optimized IID storage for space and time as best as humanly possible and usable. * Enabled generation of position-independent code (allows for more sharing between processes, but is almost 20% bigger, can be disabled). * Added an XPLC helper class, that provides shortcuts to many often used operations and also takes care of proper lifetime of the service manager reference. * Some bugs fixed. New in 0.1.6 ------------ * Added a (still experimental) smart pointer templated class. * Fixed a large number of leaks, thanks to Valgrind. * Simplified building on Windows. * Added support for number of new platforms. * Switched to autoconf 2.5x. * Added support for building without dynamic loading support. * Code cleanups. * Improved Standard C++ correctness. * Created a new libxplc-cxx.a library that contains the code for the C++ bindings. * Added a "create" templated helper function to create instances of components quickly and easily. * Improved GenericComponent to also automate getInterface implementation. * Added a Perl script to convert the output of "uuidgen" to a C definition. * Improved the dependencies generation (now compatible with gcc 3). * Fixed various small bugs and warnings. New in 0.1.5 ------------ * Added an RPM package spec file. * Improved general portability. * Fixed the Win32 port and added Visual Studio 2002 project files. New in 0.1.4 ------------ * Added the long awaited module loader, that will load modules from a given directory. * Combined the unit tests into a single binary. * Fixed a number of bugs, including a number of memory leaks found using Valgrind. * Various evolutive reorganizations and clarifications. * Added support for FreeBSD. New in 0.1.3 ------------ * Added a way to mark unstable interfaces as such, so that you cannot accidentally use an unstable interface (there is a 'configure' switch to allow unstable interfaces, and unstable releases of XPLC have it enabled by default). * Added an "uninstall" make target. * Renamed the static library libxplc.a and added a libxplc_s.a symbolic link pointing to it. * Added a platform-independent dlopen/LoadLibrary abstraction. * Changed the simple dynamic loader so that it does not require a different binary interface from modules. * Started laying down a binary interface for modules. * Improved testing suite. New in 0.1.2 ------------ * Added a moniker interface and resolving service. * Added a "new" moniker that creates an instance from a factory moniker. * Changed the "getInterface" and "mutateInterface" templated functions name to "get" and "mutate", respectively. * Fixed a bug where the static service handler would hold a reference to itself and never release it. * Added a template mix-in that traces addRef/release calls. * Added methods to convert UUID to/from strings. * Improved the testing suite to catch more errors. * Added developer-specific debugging hooks. New in 0.1.1 ------------ * Added the missing test for the generic component template. * Automated some of the release work. * Added 'configure' switches for a number of compiler behaviors. * The simple dynamic loader does not append the platform-specific extension for shared objects anymore. * Added addFirstHandler and addLastHandler methods to the IServiceManager interface (bug #431200). * Enabled more warnings and fixed them. * Bug fixes.