PyROOT
Python 3 is now in principle supported: a problem remains with passing builtin
types by reference, since the internal object layout has changed.
There may be further problems with handling of char*: all strings are unicode in
p3, so if the C++ code is meant to see the char* as byte*, that won't work.
Other significant feature improvements include:
- Globally overloaded operators are now supported, and histogram unary
multiplication with scalar is mapped onto TH1.Scale.
- Significant changes to equality and non-equality operators should make their
behavior more consistent across the board, and in particular globally overloaded
equality operators for STL iterators should work as expected (if a dictionary entry
is generated for them).
- Global arrays of builtin types are now supported.
- Added further mappings of operator converters for builtin types.
- Individual methods can release the GIL, by setting the "_threaded" parameter
of the method to True.
- Constructors need not be creators of new objects (controlled with their
"_creates" parameters).
- Added access to TSelector protected data members in TPySelector.
- Derivable Fitter base classes are added for use with ROOT::Fitter.
- Special cases for RooFit are added to resolve a few specific overloading
problems.
- A Python Warning is issued if a void* converter or executor is chosen out of
necessity (e.g. because dictionaries are missing).
- A Python Warning is issued if keyword arguments are given (unsupported).
Notable bug fixes include:
- Object returns as a member of a temporary will keep a life line to that
temporary, to prevent it from being destroyed in a long expression.
- Added "_" as a valid class name character.
- Speed of the destruction of memory-regulated objects has been improved
(made linear, rather than quadratic).