Skip to content

v1.7.0

Compare
Choose a tag to compare
@iMichka iMichka released this 10 May 21:52
· 1149 commits to develop since this release
  1. Added support for CastXML (https://github.com/CastXML/CastXML)

    GCCXML is deprecated and does no more work with modern compilers.
    CastXML should be used instead.

    pygccxml 1.7.0 is still compatible with GCCXML and no changes are needed for people working with GCCXML.

  2. [CastXML] A new function was introduced to help find which XML generator you are using.

    If the generator (GCCXML or CastXML) is in your path, it will be detected.

    .. code-block:: python

    generator_path, generator_name = pygccxml.utils.find_xml_generator()

  3. [CastXML] When using the configuration, you will need to tell pygccxml which xml generator you are using.

    .. code-block:: python

    xml_generator_config = parser.xml_generator_configuration_t(
    xml_generator_path=generator_path,
    xml_generator=generator_name,
    )

gccxml_configuration_t is an alias of xml_generator_configuration_t.

load_gccxml_configuration is an alias of load_xml_generator_configuration.

Both can still be used but will be deprecated.

  1. [CastXML] The compiler path can be passed to castxml.

    This is done by using the compiler_path attribute in the configuration.
    Note that this may be important because the resulting xml file is slightly different
    depending on the compiler.

  2. [CastXML] Added support for some fields which have no location.

    These fields are: gp_offset, fp_offset, overflow_arg_area, reg_save_area

  3. [CastXML] Mangled names are only available for functions and variables with CastXML.

Getting the mangled attribute on a declaration will fail.

  1. [CastXML] Demangled names are not available.

Getting a demangled name will fail.

  1. [CastXML] Add new container traits:

unordered maps, unordered sets, multimaps, multisets

  1. [CastXML] Annotations:

Instead of using the __attribute((gccxml("string"))) c++ syntax (see version 0.9.5), the __attribute__ ((annotate ("out"))) can now be used to annotate code with CastXML.

  1. [CastXML] Disabled relinking of:

    .. code-block:: python

    rebind<std::__tree_node<std::basic_string, void *> >

This made the find_container_traits_tester unit tests fail with CastXML.
This class defintion is present in the clang AST tree, but I don't know why it is
usefull. Please tell me if you need it so we can re-enable that featur in pygccxml.

  1. [Misc] Deprecated the compiler attribute and replaced it with a global utils.xml_generator variable.

The compiler attribute was misleading; it was sometimes confused with the name and version of the xml generator.

This change also fixes some internal problems with the algorithms cache.

  1. [Misc] declarations.has_trivial_copy was defintevely removed.

Please use declarations.has_copy_constructor.

This was deprecated since version 0.9.5.

  1. [Misc] Remove gccxml logger from logger class (was deprecated).

Please use cxx_parser instead.

  1. [Misc] Removed gccxml_runtime_error_t class. This was only used internally.

Please use a normal RuntimeError instead.

  1. [Misc] Documentation was moved to readthedocs.org

https://readthedocs.org/projects/pygccxml/

  1. [Misc] Add quantifiedcode check

https://www.quantifiedcode.com/app/project/117af14ef32a455fb7b3762e21083fb3

  1. [Misc] Add option to keep xml files after errors, which is useful for debugging purposes.

  2. [Misc] Fix new pep8 warnings, clean up and simplify some code and comments

  3. [Misc] The compiler version debugging message is now hidden (closes #12)

  4. [Misc] Print less line separations in decl_printer; this makes the output more compact.

  5. [Tests] Add new test for the contains_parent_dir function.

  6. [Tests] Add test for non copyable class with const class

  7. [Tests] Add test case for non copyable class due to const array

  8. [Doc] Small documentation update, moved people list to credits page, added new examples.

  9. [Misc] Add Travis unit tests for Python 3.5