[IPython-dev] the state if IPython development...

Glenn H Tarbox, PhD glenn at tarbox.org
Tue Mar 18 17:05:06 EDT 2008

On Tue, 2008-03-18 at 22:15 +0200, Ville M. Vainio wrote:
> On Tue, Mar 18, 2008 at 8:35 PM, Glenn H Tarbox, PhD
<glenn at tarbox.org> wrote:

> That tarball only has svn, which has been pretty much discontinued (we
> will just dump a bzr snapshot there, for curiosity's sake, but you
> shouldn't count on the svn anymore).

we should probably indicate this somewhere.  There is very little
information being disseminated WRT where one should go for the bleeding
edge (which is the only place I feel comfortable :-)

> >  More concerning is the state of Qt4.  There is a "critical" bug
> >  in trac: http://projects.scipy.org/ipython/ipython/ticket/208
> >
> >  Clearly, a QCoreApplication (or QApplication) instance is
> >  auto-constructed due to the -q4thread switch... and since
> >  constructs one also, QT dumps core  (why QT decides to core-dump as
> >  error reporting strategy is beyond me... but thats whats going on).
> >
> >  Qt4 support is indeed broken... but unnecessarily so. I have Qt4
> >  with twisted in a naked ipython shell.  I simply construct my
> >  and use embedded Qt4 code.  Can't pull in pylab because it renames
> >  packages which collide with PyQt4 (in particular, wrapping QObject
in a
> >  different module... don't get that yet).  and this is beyond the
> >  associated with QSocketNotifier being invoked from a non-qt thread.
> >  sure this is straightforward but, again, I can't determine whether
> >  spent here is worthwhile.  Seems to me that IPython1's architecture
> >  make most of these problems "just go away" as its a far more
> >  comprehensive architecture.
> IPython1 does not have a magical solution for any of this, it's pretty
> universal stuff. The problem is still the same - gui mainloop has to
> be in one thread - but we have that already. Whatever you do in
> ipython0 regarding Qt4 will be applicable on IPython1 as well, and
> IPython0 isn't going away anytime soon.

Actually, this is fairly straightforward with Qt and, I believe, the
other gui mainloops.  Since you're embracing twisted, I recommend adding
stdin and stdout to the event notification hooks and you're mostly done.
This is what I'm (kinda) doing... where things fall down a bit is when
IPython grabs the loop during scrolling (for example when reading the
docs which spew with a '??'.)  Other than that, it just kinda works.

Of course, I believe this is part of the new / better / different
IPython1 design.  

Since IPython0 is gonna hang around we need to decide whether to work
deep inside to address this issue.  I previously posted a workaround to
nail twisted to IPython0 which exploited the multithreaded IShell code.

So, on this issue, we need a strategy.  I certainly appreciate continued
support for IPython0, but given the limited resources I wonder how much
effort should be put toward fixing the various GUI loops.  

As it stands, Qt4 is currently broken with IPython0 running pylab.  The
decision to expend effort needs to be based on the development plan /
schedule.  This is something I have no insight into as there is no
chatter I have access to.

and I'll say again, you're in the soup with wx.  It might work for a
while, but its broken and needs work.  I looked at it with the twisted
team but decided to just bag it and go Qt.  In that effort, it became
clear how to fix wx which is when I became aware of wx's previous issues
which may or may not still exist.  The use of threads to get around wx
blocking is, IMHO, a bad idea...  much better to fix wx... and if that
can't be done, it should be bagged or someone needs to take on that
project, certainly beyond my time availability.

> Have you considered putting up a bzr branch on launchpad for this
> stuff? Darren has been most active regarding Qt4, and we could  use
> more hands on this.

Love to... but this further emphasizes my point.  I have no idea whats
going on WRT development of the various flavors of IPython.  I have a
feeling I'm not the only one without the necessary visibility.

Glenn H. Tarbox, PhD
glenn at tarbox.org

More information about the IPython-dev mailing list