classification
Title: Update pybench for python 3.0
Type: behavior Stage:
Components: Demos and Tools Versions: Python 3.0, Python 3.1, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: lemburg, mark.dickinson, pitrou
Priority: release blocker Keywords: patch

Created on 2008-12-20 10:53 by mark.dickinson, last changed 2009-02-07 17:29 by pitrou. This issue is now closed.

Files
File name Uploaded Description Edit
pybench3.0.patch mark.dickinson, 2008-12-20 10:53
pybench3.0-2.patch pitrou, 2009-01-31 23:39
pybench3.0-3.patch pitrou, 2009-02-06 17:19
Messages (14)
msg78090 - (view) Author: Mark Dickinson (mark.dickinson) * (Python committer) Date: 2008-12-20 10:53
pybench needs to be updated for Python 3.0, in particular to remove use of 
cmp.  Here's a patch, against the py3k branch.

Questions (mainly for Marc-André Lemburg):  

1. Should the version number be bumped for *all* tests, or just for those 
that have changed?  Assuming all tests.

2. Presumably these changes should appear in 3.0.1, and should be 
backported to 2.x. Backport this to 2.6.2?  Or just 2.7?

3. Should I update the sample output in the README file?  I was going to 
just change the PYBENCH 2.0 line to PYBENCH 3.0, but that seems a little 
bit bogus without updating the rest.
msg78094 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2008-12-20 12:32
On 2008-12-20 11:54, Mark Dickinson wrote:
> New submission from Mark Dickinson <dickinsm@gmail.com>:
> 
> pybench needs to be updated for Python 3.0, in particular to remove use of 
> cmp.  Here's a patch, against the py3k branch.
> 
> Questions (mainly for Marc-André Lemburg):  
> 
> 1. Should the version number be bumped for *all* tests, or just for those 
> that have changed?  Assuming all tests.

Just the tests that have been updated.

Since there have been a number of small changes, I think it's
time to also change the pybench version itself to 2.1 (not 3.0;
that's reserved for more major changes).

> 2. Presumably these changes should appear in 3.0.1, and should be 
> backported to 2.x. Backport this to 2.6.2?  Or just 2.7?

I don't think they should go into 3.0.1 - they are a new feature
and not a bug fix.

I'll leave that decision to the release manager.

Please backport to 2.7 only.

> 3. Should I update the sample output in the README file?  I was going to 
> just change the PYBENCH 2.0 line to PYBENCH 3.0, but that seems a little 
> bit bogus without updating the rest.

Please run the suite and add the complete new output.

Thanks,
-- 
Marc-Andre Lemburg
eGenix.com

________________________________________________________________________
2008-12-02: Released mxODBC.Connect 1.0.0      http://python.egenix.com/

::: Try our new mxODBC.Connect Python Database Interface 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
               http://www.egenix.com/company/contact/
msg78183 - (view) Author: Mark Dickinson (mark.dickinson) * (Python committer) Date: 2008-12-22 14:07
Thanks for the responses!

> I don't think should go into 3.0.1 - they are a new feature
> and not a bug fix.

But if these changes don't go into 3.0.1, and the removal of cmp does, 
that means that pybench won't run on 3.0.1.  It seems to me that we could 
make a strong case for this being a bugfix...
msg78184 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2008-12-22 14:18
On 2008-12-22 15:07, Mark Dickinson wrote:
> Mark Dickinson <dickinsm@gmail.com> added the comment:
> 
> Thanks for the responses!
> 
>> I don't think should go into 3.0.1 - they are a new feature
>> and not a bug fix.
> 
> But if these changes don't go into 3.0.1, and the removal of cmp does, 
> that means that pybench won't run on 3.0.1.  It seems to me that we could 
> make a strong case for this being a bugfix...

... or a good case for not removing cmp() from 3.0.1 :-)

I have a feeling that people are mixing up the reasons for removal
of the __cmp__ slot and the utility of the cmp() builtin. Those
two should be treated as separate issues, IMHO.

Anyway, like I said: the release manager should decide.
msg80844 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-01-31 00:44
Since cmp is slated for removal, this should also be done for 3.0.1.
msg80891 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-01-31 23:39
The patch changes results a lot compared to the previous version
(BuiltinFunctionCalls is 3x slower). I propose the following patch,
which gives roughly the same runtimes as before (I use divmod() and
max() rather than complex() and pow()).
msg80962 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2009-02-02 17:12
On 2009-02-01 00:39, Antoine Pitrou wrote:
> Antoine Pitrou <pitrou@free.fr> added the comment:
> 
> The patch changes results a lot compared to the previous version
> (BuiltinFunctionCalls is 3x slower). I propose the following patch,
> which gives roughly the same runtimes as before (I use divmod() and
> max() rather than complex() and pow()).

Even better.

However, please see my comments on the ticket:

 * the version numbers of unaffected tests do not need to be
   changed

 * the major pybench version number also doesn't need to be
   bumped to 3.0, a minor revision (2.1) is good enough

Thanks,
-- 
Marc-Andre Lemburg
eGenix.com

________________________________________________________________________

::: Try our new mxODBC.Connect Python Database Interface 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
               http://www.egenix.com/company/contact/
msg81284 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-06 17:19
Updated patch.
msg81286 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2009-02-06 17:35
Perfect ! Thanks, Antoine. Please check it in.

On 2009-02-06 18:19, Antoine Pitrou wrote:
> Antoine Pitrou <pitrou@free.fr> added the comment:
> 
> Updated patch.
> 
> Added file: http://bugs.python.org/file12956/pybench3.0-3.patch
> 
> _______________________________________
> Python tracker <report@bugs.python.org>
> <http://bugs.python.org/issue4704>
> _______________________________________
> _______________________________________________
> Python-bugs-list mailing list
> Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/mal%40egenix.com
msg81287 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2009-02-06 17:39
On 2009-02-06 18:35, Marc-Andre Lemburg wrote:
> Marc-Andre Lemburg <mal@egenix.com> added the comment:
> 
> Perfect ! Thanks, Antoine. Please check it in.

Well, except for this part that sneaked in:

@@ -4,8 +4,6 @@

 """
 #
-# Note: Please keep this module compatible to Python 1.5.2.
-#
 # Tests may include features in later Python versions, but these
 # should then be embedded in try-except clauses in the configuration
 # module Setup.py.

It's ok to bump this to Python 2.3, though :-)
msg81311 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-06 22:25
> It's ok to bump this to Python 2.3, though :-)

The current version only works with 3.x, due to the use of the print
function with the "end" keyword argument.
Should it be fixed?

Regards

Antoine.
msg81314 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2009-02-06 22:48
On 2009-02-06 23:25, Antoine Pitrou wrote:
> Antoine Pitrou <pitrou@free.fr> added the comment:
> 
>> It's ok to bump this to Python 2.3, though :-)
> 
> The current version only works with 3.x, due to the use of the print
> function with the "end" keyword argument.
> Should it be fixed?

If possible, pybench should work unchanged in both Python 2.x and 3.x.

If the only change needed for this is a new print function, then
it's better to replace all print function calls with a new
helper function:

def print3(*args, end='\r'):
    sys.stdout.write(' '.join(*args))
    sys.stdout.write(end)
    sys.stdout.flush()

(untested, but the idea should be clear)
msg81339 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-07 16:58
> If possible, pybench should work unchanged in both Python 2.x and 3.x.

Ok, the best I can do is to make it 2.6-compatible. For versions before
2.6, stuff like "except Exception as e" does not make compatibility
reasonably achievable.
msg81340 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-07 17:29
Committed in r69411, r69412.
History
Date User Action Args
2009-02-07 17:29:54pitrousetstatus: open -> closed
resolution: fixed
messages: + msg81340
2009-02-07 16:58:53pitrousetmessages: + msg81339
2009-02-06 22:48:06lemburgsetmessages: + msg81314
2009-02-06 22:25:25pitrousetmessages: + msg81311
2009-02-06 17:39:08lemburgsetmessages: + msg81287
2009-02-06 17:35:51lemburgsetmessages: + msg81286
2009-02-06 17:19:37pitrousetfiles: + pybench3.0-3.patch
messages: + msg81284
2009-02-02 17:12:29lemburgsetmessages: + msg80962
2009-01-31 23:39:22pitrousetfiles: + pybench3.0-2.patch
messages: + msg80891
2009-01-31 00:44:57pitrousetpriority: release blocker
nosy: + pitrou
messages: + msg80844
2008-12-22 14:18:06lemburgsetmessages: + msg78184
2008-12-22 14:07:19mark.dickinsonsetmessages: + msg78183
2008-12-20 12:32:11lemburgsetmessages: + msg78094
2008-12-20 11:00:32mark.dickinsonlinkissue1717 dependencies
2008-12-20 10:53:56mark.dickinsoncreate