Skip to content

v1.8.0

Compare
Choose a tag to compare
@iMichka iMichka released this 10 May 21:50
· 696 commits to develop since this release
  1. CastXML is now the default XML generator (instead of GCCXML)
    find_xml_generator will now look for CastXML first too.

  2. Do not allow to use the GCCXML provided by newer gccxml debian packages.
    It is a wrapper around CastXML which can confuse pygccxml.
    You should use the castxml package and the CastXML binary instead.
    If you really want to use gccxml, the gccxml.real binary from the
    gccxml debian package can still be used.

  3. Fix parsing of boost/locale.hpp code.
    Templated class instantiations with specializations are now better supported,
    specifically when containing parentheses:
    myClass<std::vector<char>(const std::string &, const std::string &)> obj;

  4. When using the remove_pointer function on a function pointer, the
    remove_pointer function now correctly returns a calldef_type_t.

  5. declarations.is_string, declarations.is_std_wstring,
    declarations.is_std_ostream and declarations.is_std_wostream now
    correctly work when a the type is also a reference.
    Example: declarations.is_string returned false for
    typedef std::string& x3;; it will return true now.

  6. General code style overhaul (with the help of quantifiedcode.com)

  7. Added a bunch of new examples and documentation update and cleanup

  8. [Removals] Remove compiler attribute in declarations.py and
    gccxml_path from config.py
    These were deprecated in pygccxml v1.7.0, and definitively removed for v1.8.0

  9. [Deprecations]

  • The binary_parsers module was deprecated. It seems that this module is not
    used by other third-party projects, at least a quick search on GitHub
    did not give any interesting usage. Also, this code is not tested, and
    there seem to be some undefined variables, so it is highly probable that this
    module is not working anyway.
    I do not want to put much efforts in maintaining this module, but concentrate
    on improving pygccxml's core features. If somebody wants to revive this
    module it can still be done in a separate project.
    Thus, the 3 following functions are now deprecated and will be removed in
    pygccxml 1.9.0: merge_information, undecorate_blob and format_decl.
    The undname_creator_t class is also deprecated for the same reason.

  • A bunch of attributes and methods were deprecated.
    They will throw a warning when used with pygccxml 1.8.0, and will be removed
    in version 1.9.0.

    • In class_declaration_t and class_t:

      • decl.container_traits attribute => declarations.find_container_traits(decl)
    • In class_t

      • decl.find_noncopyable_vars() method => declarations.find_noncopyable_vars(decl)
      • decl.find_copy_constructor() method => declarations.find_copy_constructor(decl)
      • decl.has_vtable argument => declarations.has_vtable(decl)
    • In constructor_t

      • ctor.is_copy_constructor attribute => declarations.is_copy_constructor(ctor)
      • ctor.is_trivial_constructor attribute => declarations.is_trivial_constructor(ctor)
    • Deprecate the ns() method. The namespace() method can be used instead.

    • Deprecate etree_scanner_t and etree_saxifier_t classes.
      The most efficient xml scanner class is the ietree_scanner_t class, which
      is the one used since many years now.

    • The [gccxml] section used in the configuration file is now deprecated.
      Please use [xml_generator] instead.

  • native_compiler and enum classes from the utils module. These were
    not used in pygccxml, and can easily be implemented in your own project if you
    need and equivalent