v4.16.2 3rd July 2014
- Deprecated the %ConsolidatedModule directive as it won't be supported in
SIP v5.
- Bug fixes.
v4.16.1 9th June 2014
- Bug fixes.
v4.16 26th May 2014
- Added the /NoSetter/ variable annotation.
- Added the -B option to sip.
- Changed the handling of timelines (introducing a potential incompatibility)
so that later versions of wrapped libraries can be wrapped so long as they
are compatible with known versions.
- Added support for the 'no_receiver_check' argument to connect() in PyQt
v4.11.
- Added the --configuration option to configure.py.
- Added the --sysroot option to configure.py.
- Added the --target-py-version option to configure.py.
- Added the --no-tools option to configure.py.
- Added the --use-qmake option to configure.py.
- Bug fixes.
v4.15.5 14th March 2014
- The use_arch argument of sipconfig.create_wrapper() can now specify a space
separated set of architectures.
- Bug fixes.
v4.15.4 8th January 2014
- Added SIP_SSIZE_T_FORMAT to the C API.
- Bug fixes (specifically for PyQt5).
v4.15.3 16th October 2013
- Bug fixes (specifically for PyQtChart).
v4.15.2 14th September 2013
- sipConvertToArray() will now optionally take ownership of the array memory.
- Added support for char, unsigned char, short, int, float and double as
array types.
- Bug fixes.
v4.15.1 23rd August 2013
- Fixes a regression in the handling of hidden virtual methods.
v4.15 21st August 2013
- Added the call_super_init argument to the %Module directive to specify that
classes should support cooperative multi-inheritance.
- Added the %FinalisationCode directive.
- Added the /Mixin/ class annotation.
- Added the /NoScope/ enum annotation.
- Added sipConvertFromNewPyType() to the C API.
- Added sipConvertToArray() and sipConvertToTypedArray() to the C API.
- Added sipRegisterProxyResolver() to the C API.
- Bug fixes.
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
This fixes a regression in v4.15 related to the handling of hidden
virtual methods.
(hopefully fixes the build problem with py-qt3 reported by Greg Oster)
v4.14.7 16th June 2013
- The internal API version is increased to 10.0 requiring the regeneration of
all modules.
- Added the /Sequence/ function annotation.
- %ConvertFromTypeCode can now be specified for classes.
- Added sipEnableAutoconversion() to the C API.
- Added sipSetDestroyOnExit() to the C API.
- Bug fixes.
Bump coming (for first point).
* /KeepReference/ can now be applied to global functions and static methods.
* %TypeCode can now be specified in a %MappedType directive.
* Mapped types for templates no longer require the template arguments to be
fully defined.
* Build system changes required by PyQt v4.8 and Qt v4.7.
changes:
added the %UnitPostIncludeCode directive
/KeepReference/ will now accept a key to track when the same object
is passed to more than one method
operator() and __call__() can now accept keyword arguments
added support for Python v3.2
pkgsrc note: runtime API changed, client pkgs need to be rebuilt
v4.10.5 16th July 2010
- A bug fix release for Python v3 and Python v2.7.
v4.10.4 15th July 2010
- Use capsules when being built for Python v2.7 to work around an apparent
bug in the support for PyCObject.
changes: added some methods and options
pkgsrc note: this changes the API revision compiled into
the runtime library, so updates of py-qt* must be enforced
will not be compatible anymore
(noticed by Dennis den Brok, see mail to tech-pkg)
bump the API requirement
being here, update to 4.9.3 which brings another little bugfix
v4.9.1 23rd October 2009
- A bug fix release.
v4.9 26th September 2009
- Added support for __iter__ and __next__. (__next__ is used for Python v2
as well as v3.)
- Added the %API directive.
- Added the /API/ annotation.
- Added sipIsAPIEnabled() to the C API.
- Added sip.getapi() and sip.setapi() to the Python API.
- Added sip.ispyowned() to the Python API.
- Mapped types can now act as a namespace for enums and static methods.
- The /Array/ annotation can now be applied to classes and mapped types.
- The /NoArgParser/ annotation can now be applied to methods as well as
functions.
- Added the --arch flag to configure.py to specify which MacOS/X
architectures are built.
- SIP is now also licensed under the GPL v2 and v3.
* Fixed the reference count handling of a module in the error paths when
initialising it.
* Added support for (vaguely) defining private assignment operators to
suppress the generation of PyQt4 assignment helpers.
* Fixed a regression in the creation of new exceptions.
* Various changes (including bumping the major version number of the C API)
to accomodate the design of the API selection support. The implementation
should not need any further data structure changes.
* Fixed a code generation bug when an /ArraySize/ argument was typedef'ed.
* Fixed sipResolveTypedef().
SIP v4.8 has been released. The highlights of this release include
support for Python v3, the ability to supply alternate super-types
and meta-types for wrapped objects, and documentation built using
Sphinx.
The major new features are:
* support for Python v3
* the %BIGetBufferCode and %BIReleaseBufferCode to
support the buffer interface of Python v3
* the %DefaultMetatype directive and the
/Metatype/ class annotation to allow the
meta-type of a wrapped type to be changed
* the %DefaultSupertype directive and the
/Supertype/ class annotation to allow the
super-type of a wrapped type to be changed
* the sip.simplewrapper type to be used as a
super-type for wrapped types that don't take
part in parent/child relationships
* the %InitialisationCode directive
* the /KeepReference/ argument annotation
* the /Encoding/ argument, function, typedef and
variable annotation
* super() now works as expected with wrapped types
* support for __floordiv__, __ifloordiv__,
__truediv__, __itruediv__ and __index__
* __bool__ is a synonym for __nonzero__
* Sphinx is now used for the documentation
* many additions and deprecations in the API to
eliminate the differences between classes and
mapped types. (See the documentation for the
details.)
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
SIP v4.7.9 has been released.
This is a bug fix release needed to build PyKDE v3.16.2.
SIP v4.7.8 has been released.
* Added the /Deprecated/ class and function annotation (based on
a patch from Lorenzo Berni).
* Templates now support instance variables and enums.
* A Python int object can now be used whenever an enum is expected
without needing to explicitly cast it using the enum's constructor.
The /Constrained/ argument annotation can be used to suppress this
behaviour.
* typedef type names are now used in string representations of
types (e.g. in the names of mapped types) to reflect what the
programmer sees rather than what the compiler sees. The /NoTypeName/
typedef annotation can be used to suppress this behaviour.
Renamed because there is no dependency on any qt version in it.
Changes since py-qt3-sip (4.3.2):
v4.7.7 8th Aug 2008
- C++ structs are now properly handled as a class with a default public
section.
- sip.dump() now includes the object's first child wrapper.
v4.7.6 20th May 2008
- Added the -s flag to configure.py to specify the SDK directory to use when
building universal binaries on MacOS/X.
- Added support for MSVC 2008 to the build system.
- Added support for v10.x of the Intel compiler and removed support for
earlier versions.
- MSVC 2008 is the default platform when using Python v2.6.
v4.7.5 13th May 2008
- The sip.voidptr type has an optional size associated with it and supports
const void *. If a size is associated then it also supports Python's
buffer protocol.
- Added sipConvertToVoidPtr() to the SIP API.
- Added sipConvertFromConstVoidPtr(), sipConvertFromConstVoidPtrAndSize(),
sipConvertFromVoidPtr() and sipConvertFromVoidPtrAndSize() to the SIP API.
- Added the /ResultSize/ argument annotation to specify the size of a block
of memory returned as a void * or const void *.
- Added the /NoArgParser/ function annotation to give %MethodCode complete
responsibility for argument parsing.
- Added the /NoRelease/ mapped type annotation to specify that the
sipReleaseMappedType() function is not supported.
- The /ArraySize/ annotation now supports arrays with more than 2^31
elements.
- %GetCode and %SetCode for class attributes now have access to the
referencing type object.
- Any object that supports the Python buffer protocol can now be passed as a
char or char * argument.
v4.7.4 12th February 2008
- The build system handles the directory structure used by Leopard's Python
installation.
- Added support for /Transfer/ as a constructor annotation.
v4.7.3 6th December 2007
- Added support for automatically generating missing complementary
comparision operators. Note that this introduces a potential compatibility
problem - see the documentation for details.
v4.7.2 5th December 2007
- Added the /SingleShot/ argument annotation.
- Added the /TransferThis/ function annotation.
v4.7.1 28th September 2007
- A bug fix release.
v4.7 30th July 2007
- Added %PickleCode to allow handwritten code to pickle a wrapped C++
instance or C structure.
- Added %CompositeModule to create modules that are composites of ordinary
modules.
- Added %ConsolidatedModule (and the -p command line option) to create
modules that contain all the wrapper code on behalf of ordinary modules.
- Added the dump() function to the sip module.
- Added sipTransferBreak() to the SIP API.
- Added support for /Transfer/ as a function annotation.
v4.6 10th April 2007
- Added support for wchar_t.
- The -g command line option releases the GIL whenever a call is made to the
wrapped library.
- Added the /HoldGIL/ annotation to explicitly retain the GIL when calling a
particular function in the wrapped library.
- Added sipFindClass() and sipFindNamedEnum() to the public API.
- /TransferThis/ may be specified more than once.
- Added support for __truediv__ and __itruediv__.
- The SIP code generator and module may be built as universal binaries under
MacOS/X using the -n command line option to configure.py.
v4.5.2 9th December 2006
- A bug fix release.
v4.5.1 9th December 2006
- Added the SIP_SSIZE_T type to help write PEP 353 compliant handwritten
code.
v4.5 4th November 2006
- Added support for Python v2.5.
- Added sip_config_args to sipconfig.py.
- sip.voidptr now implements __hex__().
- Added sip.delete() to call a C++ instance's destructor, or return a C
structure to the heap.
- Added sip.isdeleted() to check if a C++ instance or C structure has been
destroyed or returned to the heap.
- Added sip.setdeleted() to mark that a C++ instance or C structure has been
destroyed or returned to the heap.
- Added support for pure virtual destructors.
- Added the __dtor__() method to allow Python code to be called from a C++
destructor.
- Added the /NoDefaultCtors/ class annotation.
- The generated API files are now more complete and use Python types rather
than C/C++ types.
- Added support for embedding manifests for MSVC 2005.
v4.4.5 10th June 2006
- A bug fix release.
v4.4.4 8th June 2006
- Added %ExportedHeaderCode and %UnitCode.
- Added sipExportSymbol() and sipImportSymbol() to the public API.
v4.4.3 27th April 2006
- A bug fix release.
v4.4.2 23rd April 2006
- A bug fix release.
v4.4.1 3rd April 2006
- A bug fix release.
v4.4 24th March 2006
- The major number of the internal API has changed so it will be necessary
to regenerate all modules.
- This release introduces small incompatibilities that may affect handwritten
code. See the documentation for the details.
- Module names specified with %Module and %CModule can now include periods to
denote a Python package structure.
- Namespaces can be split across multiple Python modules.
- Class templates are now supported and instantiated using "typedef".
- Mapped type templates are now supported and instantiated automatically.
- Global operators are now supported.
- Operator casts in classes are now supported.
- C/C++ signed char type is now treated as a separate type to char.
- C/C++ long and unsigned long types are now wrapped as Python long objects
rather than Python integer objects.
- C/C++ long long and unsigned long long types are now supported.
- unsigned short and unsigned int are now implemented as long objects instead
of integer objects.
- Classes can now be declared using the /External/ annotation and be defined
in another, unspecified, module.
- /TransferThis/ can now be used in non-factory methods to change the
ownership to a different C++ instance or to change it to Python.
- /Constrained/ can now be used with booleans.
- Added support for Python's buffer interface, %BIGetCharBufferCode,
%BIGetReadBufferCode, %BIGetSegCountCode and %BIGetWriteBufferCode.
- The "user" member has been added to the sipWrapper structure and can be
used for any purpose by handwritten code.
- Function argument names are now parsed, but otherwise ignored.
- The "explicit" keyword is now parsed, but otherwise ignored.
- Added the /DelayDtor/ class annotation which given more control over the
order in which instances are deleted when an application terminates.
- Added support for the SIP_PYTYPE pseudo-type that represents a Python
type object.
- Added support for ellipsis (ie. "...") in function arguments. Any
remaining arguments will be gathered as a Python tuple.
- Add support for the /NoDerived/ annotation for Python class constructors
that have no C/C++ equivalent.
- The sipSelfWasArg boolean is now available to the %MethodCode of
non-abstract, virtual methods to indicate whether the class implementation
of the method rather than the virtual implementation should be called.
%MethodCode for non-abstract, virtual, protected methods must now call the
sipProtectVirt wrapper (rather than sipProtect).
- sipCanConvertToInstance(), sipConvertToInstance(),
sipForceConvertToInstance(), sipReleaseInstance(),
sipConvertFromInstance(), sipConvertFromNewInstance(),
sipCanConvertToMappedType(), sipConvertToMappedType(),
sipForceConvertToMappedType(), sipReleaseMappedType(),
sipConvertFromMappedType() and sipFindMappedType() have been added to the
SIP API.
- sipLong_AsUnsignedLong() has been added, primarily as a workaround for a
bug in Python v2.3.x and earlier.
- Added the 't', 'u', 'C' and 'D' format characters to sipParseResult().
- Added the 't', 'u', 'B', 'C' and 'D' format characters to sipBuildResult().
- Responsibility for interpreting and implementing the /Transfer/ and
/TransferBack/ annotations has been pushed down to %ConvertToTypeCode and
%ConvertFromTypeCode. The generated type convertors sipForceConvertTo_*()
and sipConvertFrom_*() have been deprecated.
- Added the %SIPNoEmitters directive for PyQt4.
- Added support for the __hash__ Python special method.
- The __getitem__ Python special method no longer requires %MethodCode.
- All of the calls to Qt have been moved out of the sip module and into PyQt.
The generated sipconfig.py file no longer contains any Qt specific
information. These changes mean that SIP can support PyQt v3 and v4 at the
same time.
- Static methods can now be defined as Qt slots.
- Removed SIP_BUILD from sip.h.
- The -c, -l, -q and -x flags to configure.py have been removed.
- Added the PythonModuleMakefile class to the build system for installing
pure Python modules.
- Added the create_wrapper() function to the build system for creating
platform dependent executable wrappers for Python scripts.
- Added Configuration.platform to the build system.