Skip to content

Releases: CastXML/pygccxml

v1.7.5

10 May 21:50
Compare
Choose a tag to compare
  1. Improve error message when no castxml or gccxml is found.

  2. Fix compilation of tests with c++11.

  3. Fix patching of enums in default arguments for C++03.

  4. Version numbers are still tagged with the v prefix (1.7.4 was correctly tagged),
    as this is recommended by GitHub. The version number in the init.py and
    setup.py files are without v prefix, because this is what pip requires.

Thanks to the following people for their contribution to this release:
Ashish Sadanandan

v1.7.4

10 May 21:51
Compare
Choose a tag to compare
  1. CV-qualified arrays were not being handled correctly by type traits
    manipulations functions. For instance, 'int const[N]' would not be
    detected as 'const'. Similar problems existed for volatile qualified
    arrays too. See #35 for more details. A newer version of CastXML is
    recommended (xml output version >= 1.138)

  2. Close subprocess stdout stream once value has been read.
    Fixes some warnings under python3.

  3. Since this release, pyggcxml's version numbers do not contain the v
    prefix anymore. This was breaking distribution on PyPI (pypi.python.org).

  4. The documentation is now at http://pygccxml.readthedocs.io/

Thanks to the following people for their contribution to this release:
Ashish Sadanandan

v1.7.3

10 May 21:51
Compare
Choose a tag to compare
  1. Addition of an is_union() method in the type_traits module.

  2. type_traits.smart_pointer_traits will now classify std::shared_ptr as a
    smart pointer (only boost::shared_ptr was recognized before)

  3. Fix a regression in undname_creator_t.format_argtypes

  4. C++xx flags are now correctly passed to CastXML. Allowed flags are:
    "-std=c++98", "-std=c++03", "-std=c++11", "-std=c++14", "-std=c++1z"
    Thanks to Mark Moll for the fix.

  5. Add better support for "typedef (class|struct) {} foo;" syntax when using
    CastXML. GCCXML did not recognize the typedef. Fetching these
    declarations can now be done with: .typedef("foo") or .class_("foo").

  6. Add support for the future llvm 3.9. As in release v1.7.1, new structs and
    typedefs are now exposed by llvm, which broke pyplusplus.
    In this case these are __NSConstantString_tag and __NSConstantString.
    The two declarations are now hidden from the declarations tree, but can still
    be generated by using the config.flags = ["f1"] option.

  7. Multiple fixes to adapt default arguments in functions for py++. Using the
    latest version of CastXML is recommended. This makes sure default arguments
    for function parameters are correctly defined, so that py++ can process them.

  8. Fix for exception when using castxml + gcc5 + std=c++11 and maps.

  9. Removed unittest2 dependency for testing with python 2.6

  10. Testing: test with std::tr1 unordered containers for gcc >= 4.4.7 and castxml

  11. Cosmetic fix for generator name printed to stdout when launching unit tests

  12. Fix simple typo in example.py comment

Thanks to the following people for their contribution to this release:
Mark Moll, Ashish Sadanandan, Mark Oates

v1.7.2

10 May 21:51
Compare
Choose a tag to compare
  1. Fix exception in is_copy_constructor when the constructor's argument was
    a typedef. is_copy_constructor will now return False instead of failing.
    See issue #27.

  2. Fix bug with utils.xml_generator being unset when reading cached file.
    This could for example happen when reading a cached file from a second
    python interpreter (e.g. in a subprocess or by calling pygccxml
    multiple times from a script). See issue #27.

  3. SafeConfigParser is throwing a deprecation warning in python 3.2 and newer.
    Use ConfigParser instead. Thanks to Mark Moll for the patch.

  4. Add support for cflags property in config files.
    Thanks to Mark Moll for the patch.

v1.7.1

10 May 21:51
Compare
Choose a tag to compare
  1. Remove the __va_list_tag declaration from the tree when parsing with CastXML

    The __va_list_tag declarations are internal declarations, which are often
    not needed. They are for example polluting the declarations tree when running
    pyplusplus.

    This is optional but on by default. To still load the __va_list_tag declarations
    in the tree, a config flag can be set like this: config.flags = ["f1"],
    or by passing the flags=["f1"] argument the config setup.

  2. Some code cleanup

  3. Build new package for pypi. The 1.7.0 upload has gone wrong ...

v1.7.0

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

v1.6.2

10 May 21:52
Compare
Choose a tag to compare
  1. Use setuptools instead of distutils for the packaging

  2. Change rights of declarations_cache.py and templates_tester.py
    from -rwxr-xr-x+ to -rw-r--r--+, so that all the files have the same
    execution rights.

v1.6.1

10 May 21:52
Compare
Choose a tag to compare
  1. Fix a regression introduced by previous changes. Syntax errors were introduced
    in the part were you can check if a class is copyable or not (see #13). These
    have been fixed now.

v1.6.0

10 May 21:53
Compare
Choose a tag to compare
  1. Moved the repository from mercurial to git

  2. Changed the documentation from epydoc to sphinx doc

  3. Setup the documentation as gh-page and add script to update the documentation
    Just call "make gh-pages" on the root folder to create a commit with the
    new documentation, which you may then push to the github repository.
    The url for the documentation is now http://gccxml.github.io/pygccxml/

  4. Add Travis unit tests for Python 2.6, 2.7, 3.2, 3.3 and 3.4
    The tests are run after each commit (see .travis.yml file in root folder)
    https://travis-ci.org/gccxml/pygccxml

  5. Add automatic code coverage. The code coverage is run during each travis
    run and the results are uploaded to https://coveralls.io/r/gccxml/pygccxml

  6. Fix copy_constructor unit test

  7. Deprecate parser.config_t (replaced by parser.gccxml_configuration_t)

  8. Fix for string comparison with future unicode literals
    When using from future import unicode_literals in python 2.7,
    the call to the namespace() method would fail due to the isinstance/str
    check.

    A is_str() function was added to the utils module, allowing for a
    python 2 and python 3 compatible string check.
    A unit test for this case was added.

  9. All the code is now pep8 compliant and is tested for this in an unit test

  10. Most of unused imports and variables were removed using the pyflakes tool

  11. Use new style python decorators (@Property) everywhere

  12. Add new unit test for the example.py file

  13. Update the licence headers to reflect the change in maintainers

v1.5.2

10 May 21:53
Compare
Choose a tag to compare
  1. Make python 3.x compatible. Still works with python 2.6 and python 2.7.

  2. Add .dylib parser for Darwin

  3. Fix some unit tests

  4. workaround for problem with boost >=1.54

  5. Simpler way of checksumming files in a python 2 and 3 compatible way

  6. Prevent warnings to be treated as fatal errors in py++

  7. "has_inline" property was added to declarations.calldef_t class.

  8. Thanks to Aron Xu, for pointing out that it is better to use "os.name",
    instead of "sys.platform" for platform specific logic.

  9. "__int128_t" and "__uint128_t" types were introduced. Many thanks to Gustavo Carneiro
    for providing the patch.