Releases: CastXML/pygccxml
v1.9.1
-
Fix bug in the
find_noncopyable_vars
method which wrongly returned
member variables of pointer type (#84) -
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) -
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
- [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 thecastxml_epic_version
flag
and set it to 1.
This new format will allow to support new c++ features that were not recognized
bygccxml
and previous versions ofcastxml
. -
Added support for elaborated type specifiers.
A newelaborated_t
type was added, with the relatedis_elaborated
andremove_elaborated
function.
This is only available when setting thecastxml_epic_version
flag to 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.
- [Deprecations]
-
Deprecated
decl
attribute fromdependency_info_t
.
Use thedeclaration
attribute instead. -
Deprecated the
nss
,free_fun
andfree_funs
methods from the
namespace_t
class. Use thenamespaces
,free_function
and
free_functions
methods instead. -
Deprecated the
mem_fun
,mem_funs
,mem_oper
,mem_opers
,
enum
andenums
methods from thescopedef_t
class.
Use themember_function
,member_functions
,member_operator
,
member_operators
,enumeration
andenumerations
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
andmultiple_declarations_found_t
attributes from thescopedef_t
class. These exceptions are available
through thepygccxml.declarations
package. -
Deprecated the
decorated_name
attribute fromdeclaration_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.
- [Removals]
- Removed
utils.xml_generator
andutils.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
v1.8.5
v1.8.4
-
Include paths read from configuration files on windows are now normed
and passed between quotation marks. This makespygccxml
more robust
when used on Windows (with paths containing whitespaces). -
Closed cache file handle, which would not be closed in case of an exception
(warning thrown by Python 2.7.13) -
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 -
Fix deprecation warnings thrown by
ConfigParser
when using pygccxml
with python 2.7.13. Fix the usage ofpygccxml
with python 3.6. -
Updated travis setup to python 3.6 for OS X.
v1.8.3
v1.8.2
v1.8.1
-
Added
is_struct
function 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
-
CastXML
is now the default XML generator (instead ofGCCXML
)
find_xml_generator
will now look forCastXML
first 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.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;
-
When using the
remove_pointer
function on a function pointer, the
remove_pointer
function now correctly returns acalldef_type_t
. -
declarations.is_string
,declarations.is_std_wstring
,
declarations.is_std_ostream
anddeclarations.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. -
General code style overhaul (with the help of quantifiedcode.com)
-
Added a bunch of new examples and documentation update and cleanup
-
[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 -
[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
andformat_decl
.
Theundname_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
andclass_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_t
andetree_saxifier_t
classes.
The most efficient xml scanner class is theietree_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
andenum
classes from theutils
module. These were
not used inpygccxml
, and can easily be implemented in your own project if you
need and equivalent