Re: [Python-Dev] Stabilizing the C API of 2.6 and 3.0

2008-05-29 Thread Christian Heimes
Stefan Behnel schrieb:
 Christian Heimes wrote:
  * add a new file stringobject.h which contains the aliases PyString_ -
 PyBytes_
 
 Just a quick note that that file is still missing from SVN, so it's kind of
 hard to compile existing code against the current branch state...

No, the file is in SVN. It's just not in the py3k branch because it's
not vital to the core.

I had plans to add a Python 2.x compatibility header to Python 3.0  But
I'm not going to spend any more time on the topic or any other
development until we have reached an agreement on the naming. I don't
want to waste more of my free time in vain.

Christian
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Stabilizing the C API of 2.6 and 3.0

2008-05-29 Thread Stefan Behnel
Christian Heimes wrote:
 Stefan Behnel schrieb:
 Christian Heimes wrote:
  * add a new file stringobject.h which contains the aliases PyString_ -
 PyBytes_
 Just a quick note that that file is still missing from SVN, so it's kind of
 hard to compile existing code against the current branch state...
 
 No, the file is in SVN. It's just not in the py3k branch because it's
 not vital to the core.

It might be vital to those who try to test their code with Py3, though... :)


 I had plans to add a Python 2.x compatibility header to Python 3.0  But
 I'm not going to spend any more time on the topic or any other
 development until we have reached an agreement on the naming. I don't
 want to waste more of my free time in vain.

Sounds to me like people should get back to real work rather than keeping
bike-shedding in this thread...

Stefan

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Stabilizing the C API of 2.6 and 3.0

2008-05-28 Thread M.-A. Lemburg

I'm beginning to wonder whether I'm the only one who cares about
the Python 2.x branch not getting cluttered up with artifacts caused
by a broken forward merge strategy.

How can it be that we allow major C API changes such as the renaming
of the PyString APIs to go into the trunk without discussion or
a PEP ?

We're having lengthy discussions about the addition of single method
to an object, but such major changes just go in like that and nobody
seems to really care.

Puzzled,
--
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, May 28 2008)
 Python/Zope Consulting and Support ...http://www.egenix.com/
 mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
 mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/

2008-07-07: EuroPython 2008, Vilnius, Lithuania39 days to go

 Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! 


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
   Registered at Amtsgericht Duesseldorf: HRB 46611


On 2008-05-27 12:10, M.-A. Lemburg wrote:

On 2008-05-26 23:34, Christian Heimes wrote:

M.-A. Lemburg schrieb:

Isn't that an awefuly confusing approach ?

Wouldn't it be better to keep PyString APIs and definitions in
stringobject.c|h

and only add a new bytesobject.h header file that #defines the
PyBytes APIs in terms of PyString APIs ? That maintains
backwards compatibility and allows Python internals to use the
new API names.

With your approach, you've basically backported the confusing
notion in Py3k that str() maps PyUnicode, only that in Py2
str() will now map to PyBytes.


The last time I brought up the topic, I had a lengthy discussion with
Guido. At first I wanted to rename the API in Python 3.0 only. Guido
argued that it's going to cause too much merge conflicts. He then
suggested the approach I implemented today.


That's the same argument that came up in the module renaming
discussion.

I have a feeling that we should be looking for better merge
tools, rather than implement code changes that cause more trouble
than do good, just because our existing tools aren't smart
enough.

Wouldn't it be possible to have a 2to3.py converter
take the 2.x code (including the C code), convert it and then
apply any changes to the 3.x branch ?

This wouldn't be merging in the classical sense, it would be
automated forward porting.


I find the approach less confusing than your suggestion and my initial
idea.


I disagree on that.

Renaming old APIs to use the new names by adding a header file with
#define oldname newname is standard practice.

Renaming the old APIs in the source code and undoing the renaming
with a header file is not.


The internal API names are consistent for Python 2.6 and 3.0. The
byte string C API is prefixed PyBytes and the unicode C API is prefixed
PyUnicode. A core developer has just to remember that 'str' is a byte
string in 2.x but an unicode object in 3.0.


So you've solved part of the problem for 3.x by moving the naming mixup
back to 2.x.


Extension developers don't have to worry at all. The ABI and external
API is mostly the same and still exposes the 'str' functions as PyString.


Well, yes, but only due to a preprocessor hack that turns the
names used in bytesobject.c back into names you'd normally look
for in stringobject.c.

And all this, just because Subversion can't handle merging of
symbol renaming.


You'd have to add an aliase bytes - str to the builtins to
at least reduce the confusion a bit.


Python 2.6 already has an alias bytes - str


Yes, but please let's first discuss this some more. I don't think
that the timing was right you started this thread just yesterday
and the patches are already checked in.


I'm sorry if I was too hasty for you. I got +1 from a couple of
developers and it's basically Guido's suggestion.


Please discuss any changes of the 2.x code base on python-dev.

Such major changes do need more discussion and possibly a PEP as well.

Thanks,


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Stabilizing the C API of 2.6 and 3.0

2008-05-25 Thread Christian Heimes
Stefan Behnel schrieb:
 will that be included by Python.h by default?

Only in Python 2.6

Christian
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com