[PyQt] Notes on Building PyQt for Qt v4.4rc1

2008-04-07 Thread Phil Thompson
In theory (if Qt maintains backwards compatibility) then the current version 
of PyQt should build against Qt v4.4rc1. However there is an incompatibility 
when using gcc.

The workaround is to comment out the line QMAKE_LFLAGS += -Wl,--no-undefined 
in mkspecs/common/g++.conf.

Phil
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


Re: [PyQt] SIP newcomer questions/complaints

2008-04-07 Thread Hans Meine
Hi Kevin!

Am Montag, 07. April 2008 02:11:24 schrieb Kevin Watters:
 But when I change one of the sub SIP files, SIP doesn't recognize that its
 corresponding files need to be regenerated. So the only way I've found to
 recompile is to touch the root SIP file, which causes SIP to regen ALL of
 my generated cpp files, and subsequent GCC to recompile ALL of them. Is
 there an easy solution to this?

That would be cool indeed.  Seems to be a missing feature.  BTW: I am normally 
using boost::python (which IIRC has been used to wrap Qt4 one, too), which is 
very comfortable (and may be used to wrap large libraries automatically using 
pyplusplus, incl. partial recompilations), but most probably more bloated 
than SIP.

However, on the C++-SIG list, Gustavo Carneiro announced his pybindgen, 
which is supposed to be very lightweight (but maybe not advanced enough to 
wrap wx or Qt).
 https://launchpad.net/pybindgen/

 6) The docs show show no comparisons with similar tools. I'm trying SIP to
 see if the memory usage of a large wxPython app can be reduced--I have seen
 comparisons claiming that SIP would be slower than hand generated code, but
 faster than SWIG. This seems to be a fair assumption, since SWIG generates
 lots of Python shadow classes, and SIP does not. But some data, or even
 anecdotal advice about what you're going to get out of SIP compared to SWIG
 might be useful in the documentation.

You can be sure that you are not the only one who would be very much 
interested in such statistics.

-- 
Ciao, /  /
 /--/
/  / ANS
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


Re: [PyQt] SIP newcomer questions/complaints

2008-04-07 Thread Giovanni Bajo

On 4/7/2008 2:11 AM, Kevin Watters wrote:


3) I ended up using the distutils support--which worked great out of the box.
But now my scripts are generating enough time to make the compile-link time
cycle significant. My SIP files use one root file that %Includes all of the
other SIP files so that everything goes into one module.

But when I change one of the sub SIP files, SIP doesn't recognize that its
corresponding files need to be regenerated. So the only way I've found to
recompile is to touch the root SIP file, which causes SIP to regen ALL of my
generated cpp files, and subsequent GCC to recompile ALL of them. Is there an
easy solution to this?


If you look at PyQt3Support (http://www.develer.com/oss/PyQt3Support), 
in the patch:

http://www.develer.com/~naufraghi/PyQt3Support/PyQt3Support_PyQt4.3.3_GPL_r2.patch

you will find a cache implementation for PyQt4's configure.py (search 
for manage_cache).


Basically, configure.py is changed so that the output of SIP goes to a 
temporary directory; then, only the files that changed since last time 
are actually copied over the compilation directory, so that gcc will 
compile only those ones.


You might grab that code and integrate it within your setup.py.


6) The docs show show no comparisons with similar tools. I'm trying SIP to see
if the memory usage of a large wxPython app can be reduced--I have seen
comparisons claiming that SIP would be slower than hand generated code, but
faster than SWIG. This seems to be a fair assumption, since SWIG generates lots
of Python shadow classes, and SIP does not. But some data, or even anecdotal
advice about what you're going to get out of SIP compared to SWIG might be
useful in the documentation.


Such statistics are hard to find because usually developers do not write 
bindings twice :)


There are good reasons for using SIP over SWIG, IMO:

1) Bindings for classes and methods are generated *lazily* on first 
usage. This means that the initial import is very fast and does not 
consume much memory; and when the program starts, only the (small) 
subset of the wxWidget functions actually used by the program contribute 
to memory occupation.


2) SIP is very Python centric, and has many useful features and 
shortcuts for binding C++ code into Python. All the /Transfer/ and 
friends stuff, for instance, is very powerful and elegant (once you get 
to understand it fully :).


Since I switched to SIP from SWIG, I haven't looked back.

BTW, I don't know wxWidgets, but if it uses much STL stuff, let me know 
because I have an unreleased SIP STL meta-binding, which is basically 
a program which is able to *generate* SIP code for the exact STL subset 
(= template specializations) used by the library you're writing bindings 
for; SIP's support for C++ templates is quite weak, so wrapping 
something like of STL requires abuse of copy  paste, which is automated 
by this tool.

--
Giovanni Bajo
Develer S.r.l.
http://www.develer.com
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


[PyQt] PyKDE extra/kde4xx suggestion

2008-04-07 Thread Adeodato Simó
Hey Jim.

Do you think it'd be possible to have the extra/kde4xx directories match
only against the major (4.x) version, instead of the minor as well (4.x.y)?

Speaking as a (Debian) packager, having the PyKDE packages become
unbuildable each time a new minor version of KDE is uploaded is, uhm,
inconvenient.

Is there a reason why the extra/ subdirs could not be shared among minor
releases?

Thanks in advance,

-- 
Adeodato Simó dato at net.com.org.es
Debian Developer  adeodato at debian.org
 
A conference is a gathering of important people who singly can do nothing
but together can decide that nothing can be done.
-- Fred Allen

___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


[PyQt] Re: Re: SIP newcomer questions/complaints

2008-04-07 Thread Jim Crowell

 6) The docs show show no comparisons with similar tools. I'm trying SIP to see
 if the memory usage of a large wxPython app can be reduced--I have seen
 comparisons claiming that SIP would be slower than hand generated code, but
 faster than SWIG. This seems to be a fair assumption, since SWIG generates 
 lots
 of Python shadow classes, and SIP does not. But some data, or even anecdotal
 advice about what you're going to get out of SIP compared to SWIG might be
 useful in the documentation.

I'm finding that to be so in re-writing the bindings for Syzygy
http://www.isl.uiuc.edu/syzygy.htm; I don't have numbers, but I'm
getting noticeably higher framerates. The generated code is also more
readable, easier to debug and maintain, and generates many fewer
compiler warnings. But as you've noticed, there's definitely more
initial banging of the head against the wall with SIP.

Unfortunately after getting 80% done I got pulled away to more
mission-critical work, so haven't got anything posted yet.

-Jim C.
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


Re: [PyQt] PyKDE extra/kde4xx suggestion

2008-04-07 Thread Jim Bublitz
On Monday 07 April 2008 07:25, Adeodato Simó wrote:
 Hey Jim.

 Do you think it'd be possible to have the extra/kde4xx directories match
 only against the major (4.x) version, instead of the minor as well (4.x.y)?

 Speaking as a (Debian) packager, having the PyKDE packages become
 unbuildable each time a new minor version of KDE is uploaded is, uhm,
 inconvenient.

If a new version makes it unbuildable, that would be an error, since 
configure.py should emulate the highest version it knows about. For 
example, if PyKDE was released for KDE 4.0.2 and you build against 4.0.3, 
configure.py should treat it as 4.0.2 still.  I'd have to look at 
configure.py to see if that's still handled correctly.

In that case, extra/kde402 should already exist, and the h files from that 
subdirectory would be used, so there shouldn't be a problem (if the new KDE 
version maintains binary compatibility with the old)..

The most likely problem is that I forget to modify the manifest that's used to 
assemble the tarball and the latest extra/kde* gets omitted.

 Is there a reason why the extra/ subdirs could not be shared among minor
 releases?

Because there's no guarantee they're the same h files in each version, or a 
new version won't introduce some problem that requires an h file be shipped 
with PyKDE instead of accessed from KDE's includes.

The problems are either required h files that KDE doesn't install (and that 
can be errors by minor version), or in one case (the only one, I think), a 
file that needs to be modified to work with PyKDE..

Jim


___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


Re: [PyQt] PyKDE extra/kde4xx suggestion

2008-04-07 Thread Adeodato Simó
* Adeodato Simó [Mon, 07 Apr 2008 18:28:21 +0200]:

 However, I saw this failure [1] in Ubuntu, where your 4.0.2-1 (¹) gets
 built agains KDE 4.0.3, and it fails because it can't find ksycocafactory.h.
 Hence I assumed it was expecting extra/kde403.

Additionally, after copying extra/kde402 to extra/kde403, the 'rindex'
is not a member of 'X' error popped, I guess due to sip/kdeui/kdeui-kde403.diff
not being present.

Cheers,

-- 
Adeodato Simó dato at net.com.org.es
Debian Developer  adeodato at debian.org
 
The pure and simple truth is rarely pure and never simple.
-- Oscar Wilde

___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


Re: [PyQt] ANN: new eric4 4.2 snapshot available

2008-04-07 Thread Gustavo A. Díaz
Hi,

Yeah sorry... When I pressed send I've forgot to specify this info.
This is using Kubuntu Hardy Beta amd with PyQt:

PyQt 4.3.3
qscintilla2 (2.1+snapshot20070923)
SIP 4.7.3
Qt 4.3.4

(these packages installed using the repository..., maybe those are the
problem)

In Kubuntu Gutsy, does not happen so far.

Cheers.


2008/4/7, Detlev Offenbach [EMAIL PROTECTED]:

 On Sonntag, 6. April 2008, Gustavo A. Díaz wrote:
  Hi
 
  I've downloaded and installed this snapshot, when i try to access to
  Preferences i got: Cancelled (core dumped)


 Works for me. You should give more details about what could cause this
 (e.g.
 are you using PyKDE4?)


 
  Cheers.
 
  2008/4/6, Detlev Offenbach [EMAIL PROTECTED]:
   Hi,
  
   this is to inform you about the immediate availability of a new eric
 4.2
   snapshot. Next to fixing bugs it includes these changes.
  
   - added double click support for attributes and globals
   - reorganized the configuration dialog some more
   - added various startup configuration options (application page)
   - added functionality to mark all occurrances of a searched text
 (s.a. configuration dialog editor-searching page)
   - added hook support for plugins providing autocompletion
 (get latest rope plugin snapshot for an alternative autocompletion
   provider)
   - added action and menu entries to show calltips
   - a few changes to the PyKDE4 support code to work around a PyKDE4
   problem with the Oxygen style (this workaround allows eric4 to use the
   Oxygen style,
 when KDE4 dialogs are disabled)
   - enhanced unicode support (added utf-16 and utf-32)
  
   As usual it is available via
   http://www.die-offenbachs.de/eric/snapshots4
  
   In parallel I uploaded a new snapshot of the rope refactoring plugin,
   which
   implements an alternative autocompletion provider for Python.
  
   Regards,
   Detlev
  
   --
   Detlev Offenbach
   [EMAIL PROTECTED]
   ___
   PyQt mailing listPyQt@riverbankcomputing.com
   http://www.riverbankcomputing.com/mailman/listinfo/pyqt



 --
 Detlev Offenbach
 [EMAIL PROTECTED]




-- 
Gustavo A. Díaz
GDNet Projects
www.gdnet.com.ar
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt