On Thu, May 31, 2012 at 11:12 AM, holger krekel <hol...@merlinux.eu> wrote:
> Hi Martijn,
>
> On Wed, May 30, 2012 at 19:24 +0200, Martijn Faassen wrote:
>> Hi there,
>>
>> Just throwing in my little bit: any change that is made that would
>> make it easier to run Python 2 and Python 3 interpretors in the same
>> process would interesting, as I'm still vaguely dreaming (nothing
>> more) of a combined interpreter that can run both Python 2 and Python
>> 3 code.
>
> Is there a strong reason you want this in the same process?
>
> If not you might look into using execnet [1] for connecting python2 and
> python3 interpreters which then run in two separate processes.  One can
> build something higher level on top of the base execnet communication
> along the lines of your "python3_import" suggestion.  It seems you anyway
> need largely disconnected interpreter states.

That's an interesting idea. I don't think it would accomplish exactly
the same goals though.

I can see two reasons not to do so:

* developer simplicity: you just start up your Python 3 as usual, you
can now use Python 2 modules in your project. No need to come up with
a networked system.

* efficiency: if you do a lot of calls using a Python 2 library in a
Python 3 project, you'd like this to work pretty quickly. I think
using in-process proxies can be made to be quite inexpensive.

I think a networked approach is useful if you want communicating
applications, but I'm talking more about a single application that
uses libraries that might be written in another language. That is why
I like the FFI analogy; when you interface with a C library from
Python you generally also wouldn't want to use a networked approach.
You *would* do this to interface with a networked application written
in C. To use libxml2 in Python I'd use lxml. If there's already a
C-based web service that uses libxml2 I'd use that service, but that's
a different situation. I wouldn't want to have to *have* to do this
just to be able to use libxml2.

I think execnet blurs the line between library and application
integration somewhat, as it allows very intimately communicating
applications, but isn't the line still there?

Regards,

Martijn
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to