Releases: CastXML/pygccxml
v1.8.1
-
Added
is_structfunction to declarations package. It returns true if
a declaration is a struct. -
Removed * from decl_string when type is a function pointer (#61)
-
Update travis.yml for newer OS X images. Update CastXML binaries for Travis.
-
Fix regression in directory_cache, which was crashing due an unset variable.
Add support for python3 in directory_cache.
v1.8.0
-
CastXMLis now the default XML generator (instead ofGCCXML)
find_xml_generatorwill now look forCastXMLfirst too. -
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. -
Fix parsing of
boost/locale.hppcode.
Templated class instantiations with specializations are now better supported,
specifically when containing parentheses:
myClass<std::vector<char>(const std::string &, const std::string &)> obj; -
When using the
remove_pointerfunction on a function pointer, the
remove_pointerfunction now correctly returns acalldef_type_t. -
declarations.is_string,declarations.is_std_wstring,
declarations.is_std_ostreamanddeclarations.is_std_wostreamnow
correctly work when a the type is also a reference.
Example:declarations.is_stringreturned false for
typedef std::string& x3;; it will return true now. -
General code style overhaul (with the help of quantifiedcode.com)
-
Added a bunch of new examples and documentation update and cleanup
-
[Removals] Remove
compilerattribute in declarations.py and
gccxml_pathfrom config.py
These were deprecated in pygccxml v1.7.0, and definitively removed for v1.8.0 -
[Deprecations]
-
The
binary_parsersmodule 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_blobandformat_decl.
Theundname_creator_tclass 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_tandclass_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. Thenamespace()method can be used instead. -
Deprecate
etree_scanner_tandetree_saxifier_tclasses.
The most efficient xml scanner class is theietree_scanner_tclass, 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_compilerandenumclasses from theutilsmodule. These were
not used inpygccxml, and can easily be implemented in your own project if you
need and equivalent
v1.7.6
v1.7.5
-
Improve error message when no castxml or gccxml is found.
-
Fix compilation of tests with c++11.
-
Fix patching of enums in default arguments for C++03.
-
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
-
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) -
Close subprocess stdout stream once value has been read.
Fixes some warnings under python3. -
Since this release, pyggcxml's version numbers do not contain the
v
prefix anymore. This was breaking distribution on PyPI (pypi.python.org). -
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
-
Addition of an is_union() method in the type_traits module.
-
type_traits.smart_pointer_traits will now classify std::shared_ptr as a
smart pointer (only boost::shared_ptr was recognized before) -
Fix a regression in undname_creator_t.format_argtypes
-
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. -
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"). -
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_tagand__NSConstantString.
The two declarations are now hidden from the declarations tree, but can still
be generated by using theconfig.flags = ["f1"]option. -
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. -
Fix for exception when using castxml + gcc5 + std=c++11 and maps.
-
Removed unittest2 dependency for testing with python 2.6
-
Testing: test with std::tr1 unordered containers for gcc >= 4.4.7 and castxml
-
Cosmetic fix for generator name printed to stdout when launching unit tests
-
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
-
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. -
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. -
SafeConfigParser is throwing a deprecation warning in python 3.2 and newer.
Use ConfigParser instead. Thanks to Mark Moll for the patch. -
Add support for cflags property in config files.
Thanks to Mark Moll for the patch.
v1.7.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 theflags=["f1"]argument the config setup. -
Some code cleanup
-
Build new package for pypi. The
1.7.0upload has gone wrong ...
v1.7.0
-
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.0is still compatible with GCCXML and no changes are needed for people working with GCCXML. -
[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()
-
[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.
-
[CastXML] The compiler path can be passed to castxml.
This is done by using the
compiler_pathattribute in the configuration.
Note that this may be important because the resulting xml file is slightly different
depending on the compiler. -
[CastXML] Added support for some fields which have no location.
These fields are:
gp_offset,fp_offset,overflow_arg_area,reg_save_area -
[CastXML] Mangled names are only available for functions and variables with CastXML.
Getting the mangled attribute on a declaration will fail.
- [CastXML] Demangled names are not available.
Getting a demangled name will fail.
- [CastXML] Add new container traits:
unordered maps, unordered sets, multimaps, multisets
- [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.
-
[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.
- [Misc] Deprecated the
compilerattribute and replaced it with a globalutils.xml_generatorvariable.
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.
- [Misc]
declarations.has_trivial_copywas defintevely removed.
Please use declarations.has_copy_constructor.
This was deprecated since version 0.9.5.
- [Misc] Remove
gccxmllogger from logger class (was deprecated).
Please use cxx_parser instead.
- [Misc] Removed
gccxml_runtime_error_tclass. This was only used internally.
Please use a normal RuntimeError instead.
- [Misc] Documentation was moved to readthedocs.org
https://readthedocs.org/projects/pygccxml/
- [Misc] Add quantifiedcode check
https://www.quantifiedcode.com/app/project/117af14ef32a455fb7b3762e21083fb3
-
[Misc] Add option to keep xml files after errors, which is useful for debugging purposes.
-
[Misc] Fix new pep8 warnings, clean up and simplify some code and comments
-
[Misc] The compiler version debugging message is now hidden (closes #12)
-
[Misc] Print less line separations in
decl_printer; this makes the output more compact. -
[Tests] Add new test for the
contains_parent_dirfunction. -
[Tests] Add test for non copyable class with const class
-
[Tests] Add test case for non copyable class due to const array
-
[Doc] Small documentation update, moved people list to credits page, added new examples.
-
[Misc] Add Travis unit tests for Python 3.5