Patchwork util.h: kill no longer needed definitions for Python < 2.6

login
register
mail settings
Submitter Adrian Buehlmann
Date May 14, 2015, 7:10 a.m.
Message ID <407a0d664643a749071a.1431587430@kork>
Download mbox | patch
Permalink /patch/9068/
State Accepted
Commit 14bf7679fb68b66bb319241b2653e6e95d87e0c6
Headers show

Comments

Adrian Buehlmann - May 14, 2015, 7:10 a.m.
# HG changeset patch
# User Adrian Buehlmann <adrian@cadifra.com>
# Date 1431587088 -7200
# Node ID 407a0d664643a749071a9f720f79664d81fbcf52
# Parent  297ea0df75d0f7ab552fc8986d04c8196de8d9dd
util.h: kill no longer needed definitions for Python < 2.6

see e1fb276d4619
Pierre-Yves David - May 14, 2015, 6:34 p.m.
On 05/14/2015 12:10 AM, Adrian Buehlmann wrote:
> # HG changeset patch
> # User Adrian Buehlmann <adrian@cadifra.com>
> # Date 1431587088 -7200
> # Node ID 407a0d664643a749071a9f720f79664d81fbcf52
> # Parent  297ea0df75d0f7ab552fc8986d04c8196de8d9dd
> util.h: kill no longer needed definitions for Python < 2.6
>
> see e1fb276d4619
>
> diff --git a/mercurial/util.h b/mercurial/util.h
> --- a/mercurial/util.h
> +++ b/mercurial/util.h
> @@ -18,8 +18,7 @@
>    Mapping of some of the python < 2.x PyString* functions to py3k's PyUnicode.
>
>    The commented names below represent those that are present in the PyBytes
> - definitions for python < 2.6 (below in this file) that don't have a direct
> - implementation.
> + definitions for python < 2.x that don't have a direct implementation.
>   */

This comment change puzzle me. Do we have remaining extra definition? 
what does tnio 2.x mean? should it be 2.7 ?
Adrian Buehlmann - May 14, 2015, 7:32 p.m.
On 2015-05-14 20:34, Pierre-Yves David wrote:
> 
> 
> On 05/14/2015 12:10 AM, Adrian Buehlmann wrote:
>> # HG changeset patch
>> # User Adrian Buehlmann <adrian@cadifra.com>
>> # Date 1431587088 -7200
>> # Node ID 407a0d664643a749071a9f720f79664d81fbcf52
>> # Parent  297ea0df75d0f7ab552fc8986d04c8196de8d9dd
>> util.h: kill no longer needed definitions for Python < 2.6
>>
>> see e1fb276d4619
>>
>> diff --git a/mercurial/util.h b/mercurial/util.h
>> --- a/mercurial/util.h
>> +++ b/mercurial/util.h
>> @@ -18,8 +18,7 @@
>>    Mapping of some of the python < 2.x PyString* functions to py3k's PyUnicode.
>>
>>    The commented names below represent those that are present in the PyBytes
>> - definitions for python < 2.6 (below in this file) that don't have a direct
>> - implementation.
>> + definitions for python < 2.x that don't have a direct implementation.
>>   */
> 
> This comment change puzzle me. Do we have remaining extra definition? 
> what does tnio 2.x mean? should it be 2.7 ?

Yeah, I was confused myself about that comment.

What I can say, the comment references the code block that I killed
("PyBytes definitions for python < 2.6 (below in this file)").

"The commented names below represent .." are still there (after my removal).

I'm not sure we need to mention a specific Python version at all for these.

What I know for sure is, that the part

#if PY_VERSION_HEX < 0x02060000

should be removed, so that it will cause a nice compile time error if
someone tries to compile with Python 2.5 (or older). It also has become
unused after e1fb276d4619.
Pierre-Yves David - May 14, 2015, 8:59 p.m.
On 05/14/2015 12:32 PM, Adrian Buehlmann wrote:
> On 2015-05-14 20:34, Pierre-Yves David wrote:
>>
>>
>> On 05/14/2015 12:10 AM, Adrian Buehlmann wrote:
>>> # HG changeset patch
>>> # User Adrian Buehlmann <adrian@cadifra.com>
>>> # Date 1431587088 -7200
>>> # Node ID 407a0d664643a749071a9f720f79664d81fbcf52
>>> # Parent  297ea0df75d0f7ab552fc8986d04c8196de8d9dd
>>> util.h: kill no longer needed definitions for Python < 2.6
>>>
>>> see e1fb276d4619
>>>
>>> diff --git a/mercurial/util.h b/mercurial/util.h
>>> --- a/mercurial/util.h
>>> +++ b/mercurial/util.h
>>> @@ -18,8 +18,7 @@
>>>     Mapping of some of the python < 2.x PyString* functions to py3k's PyUnicode.
>>>
>>>     The commented names below represent those that are present in the PyBytes
>>> - definitions for python < 2.6 (below in this file) that don't have a direct
>>> - implementation.
>>> + definitions for python < 2.x that don't have a direct implementation.
>>>    */
>>
>> This comment change puzzle me. Do we have remaining extra definition?
>> what does tnio 2.x mean? should it be 2.7 ?
>
> Yeah, I was confused myself about that comment.
>
> What I can say, the comment references the code block that I killed
> ("PyBytes definitions for python < 2.6 (below in this file)").
>
> "The commented names below represent .." are still there (after my removal).
>
> I'm not sure we need to mention a specific Python version at all for these.
>
> What I know for sure is, that the part
>
> #if PY_VERSION_HEX < 0x02060000
>
> should be removed, so that it will cause a nice compile time error if
> someone tries to compile with Python 2.5 (or older). It also has become
> unused after e1fb276d4619.

Okay, I'm now confused by this message too. But is seems unrelated. Can 
we drop the first hunk and just keep the second one in this patch?
Matt Mackall - May 14, 2015, 9:35 p.m.
On Thu, 2015-05-14 at 09:10 +0200, Adrian Buehlmann wrote:
> # HG changeset patch
> # User Adrian Buehlmann <adrian@cadifra.com>
> # Date 1431587088 -7200
> # Node ID 407a0d664643a749071a9f720f79664d81fbcf52
> # Parent  297ea0df75d0f7ab552fc8986d04c8196de8d9dd
> util.h: kill no longer needed definitions for Python < 2.6

Queued for default without the first hunk, thanks.
Adrian Buehlmann - May 14, 2015, 9:47 p.m.
On 2015-05-14 22:59, Pierre-Yves David wrote:
> 
> 
> On 05/14/2015 12:32 PM, Adrian Buehlmann wrote:
>> On 2015-05-14 20:34, Pierre-Yves David wrote:
>>>
>>>
>>> On 05/14/2015 12:10 AM, Adrian Buehlmann wrote:
>>>> # HG changeset patch
>>>> # User Adrian Buehlmann <adrian@cadifra.com>
>>>> # Date 1431587088 -7200
>>>> # Node ID 407a0d664643a749071a9f720f79664d81fbcf52
>>>> # Parent  297ea0df75d0f7ab552fc8986d04c8196de8d9dd
>>>> util.h: kill no longer needed definitions for Python < 2.6
>>>>
>>>> see e1fb276d4619
>>>>
>>>> diff --git a/mercurial/util.h b/mercurial/util.h
>>>> --- a/mercurial/util.h
>>>> +++ b/mercurial/util.h
>>>> @@ -18,8 +18,7 @@
>>>>     Mapping of some of the python < 2.x PyString* functions to py3k's PyUnicode.
>>>>
>>>>     The commented names below represent those that are present in the PyBytes
>>>> - definitions for python < 2.6 (below in this file) that don't have a direct
>>>> - implementation.
>>>> + definitions for python < 2.x that don't have a direct implementation.
>>>>    */
>>>
>>> This comment change puzzle me. Do we have remaining extra definition?
>>> what does tnio 2.x mean? should it be 2.7 ?
>>
>> Yeah, I was confused myself about that comment.
>>
>> What I can say, the comment references the code block that I killed
>> ("PyBytes definitions for python < 2.6 (below in this file)").
>>
>> "The commented names below represent .." are still there (after my removal).
>>
>> I'm not sure we need to mention a specific Python version at all for these.
>>
>> What I know for sure is, that the part
>>
>> #if PY_VERSION_HEX < 0x02060000
>>
>> should be removed, so that it will cause a nice compile time error if
>> someone tries to compile with Python 2.5 (or older). It also has become
>> unused after e1fb276d4619.
> 
> Okay, I'm now confused by this message too. But is seems unrelated. Can 
> we drop the first hunk and just keep the second one in this patch?

Sure. Feel free to drop it in-flight.

Patch

diff --git a/mercurial/util.h b/mercurial/util.h
--- a/mercurial/util.h
+++ b/mercurial/util.h
@@ -18,8 +18,7 @@ 
  Mapping of some of the python < 2.x PyString* functions to py3k's PyUnicode.
 
  The commented names below represent those that are present in the PyBytes
- definitions for python < 2.6 (below in this file) that don't have a direct
- implementation.
+ definitions for python < 2.x that don't have a direct implementation.
 */
 
 #define PyStringObject PyUnicodeObject
@@ -57,50 +56,6 @@ 
 
 #endif /* PY_MAJOR_VERSION */
 
-/* Backports from 2.6 */
-#if PY_VERSION_HEX < 0x02060000
-
-#define Py_TYPE(ob) (ob)->ob_type
-#define Py_SIZE(ob) (ob)->ob_size
-#define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size,
-
-/* Shamelessly stolen from bytesobject.h */
-#define PyBytesObject PyStringObject
-#define PyBytes_Type PyString_Type
-
-#define PyBytes_Check PyString_Check
-#define PyBytes_CheckExact PyString_CheckExact
-#define PyBytes_CHECK_INTERNED PyString_CHECK_INTERNED
-#define PyBytes_AS_STRING PyString_AS_STRING
-#define PyBytes_GET_SIZE PyString_GET_SIZE
-#define Py_TPFLAGS_BYTES_SUBCLASS Py_TPFLAGS_STRING_SUBCLASS
-
-#define PyBytes_FromStringAndSize PyString_FromStringAndSize
-#define PyBytes_FromString PyString_FromString
-#define PyBytes_FromFormatV PyString_FromFormatV
-#define PyBytes_FromFormat PyString_FromFormat
-#define PyBytes_Size PyString_Size
-#define PyBytes_AsString PyString_AsString
-#define PyBytes_Repr PyString_Repr
-#define PyBytes_Concat PyString_Concat
-#define PyBytes_ConcatAndDel PyString_ConcatAndDel
-#define _PyBytes_Resize _PyString_Resize
-#define _PyBytes_Eq _PyString_Eq
-#define PyBytes_Format PyString_Format
-#define _PyBytes_FormatLong _PyString_FormatLong
-#define PyBytes_DecodeEscape PyString_DecodeEscape
-#define _PyBytes_Join _PyString_Join
-#define PyBytes_Decode PyString_Decode
-#define PyBytes_Encode PyString_Encode
-#define PyBytes_AsEncodedObject PyString_AsEncodedObject
-#define PyBytes_AsEncodedString PyString_AsEncodedString
-#define PyBytes_AsDecodedObject PyString_AsDecodedObject
-#define PyBytes_AsDecodedString PyString_AsDecodedString
-#define PyBytes_AsStringAndSize PyString_AsStringAndSize
-#define _PyBytes_InsertThousandsGrouping _PyString_InsertThousandsGrouping
-
-#endif /* PY_VERSION_HEX */
-
 #ifdef _WIN32
 #ifdef _MSC_VER
 /* msvc 6.0 has problems */