[PyQt] SIP v5 Roadmap
phil at riverbankcomputing.com
Sun Dec 12 10:29:56 GMT 2010
On Sat, 27 Nov 2010 16:09:57 +0100, "Hans-Peter Jansen" <hpj at urpla.net>
> On Monday 22 November 2010, 17:06:01 Phil Thompson wrote:
>> I've added a roadmap for SIP v5 at...
> From the latest experience with PyQwt (with the still unexplained issues
> related to switching off a feature: see thread "[PyQt] sip snapshot
> problem with PyQwt"), one problem was a single dangling %End directive.
> While better error messages are greatly appreciated, I expect locating
> such problems will still going to be tough in a big library, because of
> the inherent ambiguity. Wouldn't unambiguous %End directives allow for
> much easier formal consistency verification
> (e.g. %EndIf, %EndTypeHeaderCode, %EndMethodCode, etc..).
Yes, but I think it looks horrible. I've never had the problem myself and
nobody has raised it as an issue before. However if I now get floods of
emails saying "if there is one thing I hate about SIP it's..." then I'll
> How could class templates be supported in an easier way? As far as I
> understand it, one has to specify all different types one by one. How
> about a %TemplateTypes directive?
You only need to specify explicit code when the template arguments are
non-class types (eg. int, char *). This is because the Python C API calls
you have to use are different for each of those types. It might be possible
to implement a template based sub-library that allows you to write just one
piece of code that implements (for example) QList<int>, QList<double>.
However that can be added later without affecting the migration of SIP v4
> Some thoughts for (Meta-)SIP v6:
I haven't said this but I intend to provide a reimplemented MetaSIP
sometime after SIP v5 is done.
> - transformation tool for gccxml output to sip
This is what the current (internal to Riverbank) MetaSIP does. A new
version will allow other front ends in addition to gccxml.
> - automated timeline/version management, based on gccxml output of
> different project versions
The current MetaSIP does this.
> - template based mix-in controller for injecting various directives,
> annotations, code segments targetting automated sip generation
That's a lot of handwaving :) There will certainly be the ability to
define and apply heuristics. The current MetaSIP does this for the names of
function arguments for example.
More information about the PyQt