Skip to content

Releases: CastXML/pygccxml

v1.9.1

16 Aug 21:40
Compare
Choose a tag to compare
  1. Fix bug in the find_noncopyable_vars method which wrongly returned
    member variables of pointer type (#84)

  2. Fix bug in the smart_pointer_traits.value_type and
    auto_pointer_traits.value_type methods which didn't find the expected
    value_type declaration (#85)

  3. Fix bug in the smart_pointer_traits.is_smart_pointer and
    auto_pointer_traits.is_smart_pointer methods which didn't properly
    work (#85)

v1.9.0

10 May 21:48
Compare
Choose a tag to compare
  1. [New features]
  • Full Python 3.6 support

  • Full pypy and pypy3 support

  • Better windows support

  • Small performance improvements

  • Added is_struct function to declarations package. It returns true if
    a declaration is a struct.

  • Added support for the castxml epic version format 1.
    This is a new format which is partially not backward compatible with the
    legacy format. To use this new format, use the castxml_epic_version flag
    and set it to 1.
    This new format will allow to support new c++ features that were not recognized
    by gccxml and previous versions of castxml.

  • Added support for elaborated type specifiers.
    A new elaborated_t type was added, with the related is_elaborated
    and remove_elaborated function.
    This is only available when setting the castxml_epic_version flag to 1 .

  1. [Windows]
  • Add Appveyor Windows build (castxml, VS 2013, python 3.5) and merge coverage
    results with Travis.

  • Attributes defined as __thiscall__ are now ignored (tested with VS 2013).
    The __thiscall__ in some attributes will be removed too. If you still
    want to have access to these attributes, you can use the
    config.flags = ["f2"] option.

  1. [Deprecations]
  • Deprecated decl attribute from dependency_info_t.
    Use the declaration attribute instead.

  • Deprecated the nss, free_fun and free_funs methods from the
    namespace_t class. Use the namespaces, free_function and
    free_functions methods instead.

  • Deprecated the mem_fun, mem_funs, mem_oper, mem_opers,
    enum and enums methods from the scopedef_t class.
    Use the member_function, member_functions, member_operator,
    member_operators, enumeration and enumerations methods instead.

  • Deprecated the mdecl_wrapper_t.to_list(). You can implement your own
    version of it if you really need it.

  • Deprecated the declaration_not_found_t and multiple_declarations_found_t
    attributes from the scopedef_t class. These exceptions are available
    through the pygccxml.declarations package.

  • Deprecated the decorated_name attribute from declaration_t.
    This was used by the binary parser, which have been removed in this version.
    As these attributes still could be used somewhere (but always returned None
    anyway), they need to go through a deprecation cycle first.

  1. [Removals]
  • Removed utils.xml_generator and utils.xml_output_version attributes.
    These two variables should not have made it into the public API. There is no
    deprecation cycle for these because of the complexity of keeping these
    module attributes around.

v1.8.6

10 May 21:48
Compare
Choose a tag to compare
  1. Fix _HAS_TR1=0 definition for msvc9 (#72)

  2. Fix possible infinite recursion in find_noncopyable_vars() (#71)

v1.8.5

10 May 21:49
Compare
Choose a tag to compare
  1. Fix multiple calls to __hash__() (#70)

  2. Static and extern qualifiers are now no more treated as equivalents
    in the type_qualifiers class (for CastXML).
    The old behaviour is kept for GCC-XML (static == extern).

  3. Fix for declarations.is_noncopyable when used on a pointer_t.

v1.8.4

10 May 21:49
Compare
Choose a tag to compare
  1. Include paths read from configuration files on windows are now normed
    and passed between quotation marks. This makes pygccxml more robust
    when used on Windows (with paths containing whitespaces).

  2. Closed cache file handle, which would not be closed in case of an exception
    (warning thrown by Python 2.7.13)

  3. Always call wait() on subprocesses before closing stdout/stderr streams.
    Detected by Python 3.6. Fixes the following warning:
    ResourceWarning: subprocess xxxxx is still running

  4. Fix deprecation warnings thrown by ConfigParser when using pygccxml
    with python 2.7.13. Fix the usage of pygccxml with python 3.6.

  5. Updated travis setup to python 3.6 for OS X.

v1.8.3

10 May 21:49
Compare
Choose a tag to compare
  1. Single-source the version number to prevent version numbers mismatches.
    Release 1.8.2 contained a wrong version number in its download url
    on pypi.

v1.8.2

10 May 21:49
Compare
Choose a tag to compare
  1. xml_generator_configuration_t will no more try to find
    castxml or gccxml. You can use utils.find_xml_generator to help you
    finding the path to the xml generator, or set it manually.
    It is now mandatory to pass a valid xml_generator and
    xml_generator_path to the configuration (#65).

v1.8.1

10 May 21:50
Compare
Choose a tag to compare
  1. Added is_struct function to declarations package. It returns true if
    a declaration is a struct.

  2. Removed * from decl_string when type is a function pointer (#61)

  3. Update travis.yml for newer OS X images. Update CastXML binaries for Travis.

  4. Fix regression in directory_cache, which was crashing due an unset variable.
    Add support for python3 in directory_cache.

v1.8.0

10 May 21:50
Compare
Choose a tag to compare
  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

v1.7.6

10 May 21:50
Compare
Choose a tag to compare
  1. Fix problem with argument without names when building declaration string (#55)