[IPython-dev] Kernel-client communication

Almar Klein almar.klein at gmail.com
Fri Sep 3 06:12:51 EDT 2010

Hi Hans,

On 3 September 2010 11:18, Hans Meine <hans_meine at gmx.net> wrote:

> Am Freitag 03 September 2010, 10:30:29 schrieb Almar Klein:
> > * You plan on keeping history in the kernel. In this case I think this is
> > the task of the client. Otherwise you'd get your own history mixed with
> > that of someone else using that kernel? History is, I think, a feature of
> > the client to help the programmer. I see no use for storing it at the
> > kernel.
> That's an interesting issue.  Some more random thoughts:
> - If you decide to connect to an existing session (from home or the bar via
> your smartphone) to check something and/or issue a command, it is very
> useful
> to reuse your existing history -> should be in the kernel

You're right, that makes sense too.

> - If you are using only one frontend/client, it does not matter anyhow,
> only..
> - If the kernel is busy, it could still be useful to browse through the
> history to compose the next command(s) -> should be in the client?

Well,  the kernel could be implemented in such a way that messages are
received in a separate thread, which may also handle the introspection
requests. Introspection (+history) will then still work if the process is
busy (unless it's running extension code).

- In the multiple GUI/observer scenario, I think it would not hurt to share
> the history with the observer either -> could be in the kernel

> Is there any other reason to have the history in the client, Almar?
> Otherwise, I's say of course it's a feature of the client, but obviously
> there
> are good reasons (in particular when detaching/attaching) to have the
> history
> be stored in the kernel.  Maybe it needs to be duplicated/synchronized to
> support situations where the kernel cannot respond, though.

It seemed intuitively more correct (it still does, to me), but in practice
it may be better to store it in the kernel. Thanks for enlightening me!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20100903/f8dcc635/attachment.html>

More information about the IPython-dev mailing list