STINNER Victor added the comment:

issue28272_ver1.diff LGTM.

Mark Dickinson: "The extra check in maybe_small_long does have a value in (...) 
safety with respect to future maintenance,"

"assert(v != NULL);" has the same purpose. I think that it's ok to require that 
maybe_small_long() isn't call with NULL. The function is called 5 times and is 
never called with NULL. Note: long_normalize() cannot fail, it modifies the 
object in-place and returns the input object.


Mark Dickinson: "I'm a bit reluctant to make changes like this unless there's a 
measurable performance benefit."

I'm unable to see any impact on performance. Following microbenchmark is not 
significant:
---
haypo@smithers$ ./python -m perf timeit -s 'x=1' 
'x<<1>>1<<1>>1<<1>>1<<1>>1<<1>>1<<1>>1<<1>>1<<1>>1' --duplicate=100 
--compare-to ../master-ref/python --python-names=ref:patch
ref: ..................... 531 ns +- 10 ns
patch: ..................... 531 ns +- 2 ns

Median +- std dev: [ref] 531 ns +- 10 ns -> [patch] 531 ns +- 2 ns: 1.00x 
faster (-0%)
---

Note: python.exe -m perf timeit "122 >> 2" doesn't test long_rshirt() since 
"122 >> 2" is computed by the Python compiler, not at runtime ;-)

----------
nosy: +haypo

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28272>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to