-------------
Many thanks to *Matthias Baas* and *Allen Bierbaum*! They contributed so much to
Py++, especially Matthias:
* New high-level API: :doc:`Py++ <index>` has simple and powerful API
* Documentation: Matthias and Allen added a lot of documentation strings
* Bug fixes and performance improvements
1. New GUI features:
* It is possible now to see XML generated by GCC-XML.
* It is possible to use GUI as wizard. It will help you to start with
:doc:`Py++ <index>`, by generating :doc:`Py++ <index>` code.
2. **Attention - non backward compatible change**.
``module_creator.creator_t.__init__`` method has been changed. ``decls``
argument could be interpreted as
* list of all declaration to be exported
* list of top-level declarations. ``creator_t`` should export all
declarations recursively.
In order to clarify the use of ``decls`` argument new argument ``recursive``
has been added. By default new value of ``recursive`` is ``False``.
Guide for users/upgraders: if use are exporting all declaration without
filtering, you should set ``recursive`` argument to ``True``. If you use
``pygccxml.declarations.filtering.*`` functions, you have nothing to do.
Sorry for the inconvenience :-(.
3. Better split of extension module to files. From now the following declarations will
have dedicated file:
* named enumerations, defined within namespace
* unnamed enumerations and global variables
* free functions
This functionality will keep the number of instantiated templates within
one file, ``main.cpp``, to be very low. Also it is possible to implement
solution, where ``main.cpp`` file does not contain templates instantiations
at all.
4. Only constant casting operators could be used with ``implicitly_convertible``.
This bug has been fixed.
5. Bug exporting non copyable class has been fixed.
6. Small bug fix - from now file with identical content will not be overwritten.
7. Boost.Python ``optional`` is now supported and used when a constructor has a
a default argument.
8. :doc:`Py++ <index>` now generates correct code for hierarchy of abstract classes:
.. code-block:: c++
struct abstract1{
virtual void do_smth() = 0;
}
struct abstract2 : public abstract1{
virtual void do_smth_else() = 0;
}
struct concrete : public abstract2{
virtual void do_smth(){};
virtual void do_smth_else(){};
}
9. Logging functionality has been added
10. New packages ``module_builder``, ``decl_wrappers`` and ``_logging_`` has
been added.
11. ...
http://boost.org/libs/python/doc/v2/init.html#optional-spec
-------------