New submission from Andy Lester :
_Py_HashPointer in Python/pyhash.c takes a pointer argument that can be made
const. This will let compiler and static analyzers know that the pointer's
target is not modified. You can also change calls to _Py_HashPointer that are
down-casting poi
Change by Andy Lester :
--
keywords: +patch
pull_requests: +17145
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/17690
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
PyToken_OneChar in Parser/token.c is autogenerated. I suspect it may be faster
and smaller if it were a lookup into a static table of ops rather than a switch
statement. Check to see if it is.
--
components: Interpreter Core
messages: 358975
nosy
Andy Lester added the comment:
Thank you. I appreciate the pointer.
--
___
Python tracker
<https://bugs.python.org/issue39150>
___
___
Python-bugs-list mailin
Change by Andy Lester :
--
components: +Regular Expressions -Library (Lib)
nosy: +ezio.melotti, mrabarnett
___
Python tracker
<https://bugs.python.org/issue39
Andy Lester added the comment:
I tried out some experimenting with the lookup table vs. the switch
statement.
The relevant diff (not including the patches to the code generator) is:
--- Parser/token.c
+++ Parser/token.c
@@ -77,31 +77,36 @@
int
PyToken_OneChar(int c1)
{
-switch (c1
Andy Lester added the comment:
Yes, I ran it multiple times on my 2013 Macbook Pro and got ~10% speedup. I
also ran it on my Linux VM (that I only use for development) and got a speedup
but less so.
The code I used to run the tests is at:
https://github.com/petdance/cpython/blob
Andy Lester added the comment:
Re: branch prediction.
The branch
if (c1>=37 && c1<=126)
could just as easily be
if (c1>=0 && c1<=126)
with no other changes to the code. It could be just
if (c1<=126)
if c1 wasn't signed.
As far as
New submission from Andy Lester :
Four functions in Objects/unicodectype.c copy values out of lookup tables with
a for loop
int i;
for (i = 0; i < n; i++)
res[i] = _PyUnicode_ExtendedCase[index + i];
instead of a memcpy
memcpy(
Andy Lester added the comment:
I'm closing this as it seems there's not much interest in this.
--
stage: -> resolved
status: open -> closed
___
Python tracker
<https://bugs.py
Andy Lester added the comment:
Thanks for replying. I figured that might be the case, which is why I made a
ticket before bothering with a pull request.
I've also seen this kind of thing around:
i = ctx->pattern[0];
Py_ssize_t groupref = i+i;
in
New submission from Andy Lester :
The functions tb_displayline and tb_printinternal can take const pointers on
some of their arguments.
tb_displayline(PyObject *f, PyObject *filename, int lineno, const PyObject
*name)
tb_printinternal(const PyTracebackObject *tb, PyObject *f, long limit
Change by Andy Lester :
--
pull_requests: +17793
pull_request: https://github.com/python/cpython/pull/18420
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
keywords: +patch
pull_requests: +17794
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18420
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
pull_requests: +17797
pull_request: https://github.com/python/cpython/pull/18422
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: -17794
___
Python tracker
<https://bugs.python.org/issue39591>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Andy Lester :
--
pull_requests: +17798
pull_request: https://github.com/python/cpython/pull/18422
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +17799
pull_request: https://github.com/python/cpython/pull/18422
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: -17798
___
Python tracker
<https://bugs.python.org/issue39591>
___
___
Python-bugs-list mailing list
Unsubscribe:
Andy Lester added the comment:
I'm sorry, I think my comment was misleading.
The changes I had proposed were not making the object itself const, but some of
the arguments in the static worker functions. For example:
-tb_displayline(PyObject *f, PyObject *filename, int lineno, PyO
Andy Lester added the comment:
> Yes, Py_INCREF and Py_DECREF change the type, and therefore constness.
Understood. The changes that I have proposed are not to objects that get sent
through Py_INCREF/Py_DECREF. If they did, -Wcast-qual would have caught it.
-Wcast-qual catches if you c
New submission from Andy Lester :
gcc -Wcast-qual turns up a number of instances of casting away constness of
pointers. Some of these can be safely modified, by either:
* Adding the const to the type cast, as in:
-return _PyUnicode_FromUCS1((unsigned char*)s, size);
+return
Change by Andy Lester :
--
keywords: +patch
pull_requests: +17827
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18453
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
PyObject_GetAttrString(PyObject *v, const char *name)
typedef PyObject *(*getattrfunc)(PyObject *, char *)
The outer PyObject_GetAttrString takes a const char *name, but then casts away
the const when calling the underlying tp_getattr. This means that an
Andy Lester added the comment:
Do you know why it was reverted? (Granted, it was 15 years ago...)
It looks like the original changeset is trying to address at least two
different problems with non-const string literals. My ticket here is focusing
only on getattrfunc and setattrfunc. The
New submission from Andy Lester :
The function md5_compress does not modify its buffer argument.
static void md5_compress(struct md5_state *md5, unsigned char *buf)
buf should be const.
--
components: Extension Modules
messages: 361932
nosy: petdance
priority: normal
severity: normal
Change by Andy Lester :
--
keywords: +patch
pull_requests: +17871
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18497
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
Here are some fixes of char * pointers to literals that should be const char *
in these four files.
+++ Objects/frameobject.c
+++ Objects/genobject.c
+++ Python/codecs.c
+++ Python/errors.c
--
components: Interpreter Core
messages: 361982
nosy
Change by Andy Lester :
--
keywords: +patch
pull_requests: +17886
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18510
___
Python tracker
<https://bugs.python.org/issu
Andy Lester added the comment:
@vstinner would it be helpful if I went on a sweep looking for places we can
use the new Py_IS_TYPE macro?
Getting away from Py_TYPE(op) would also mean a move to making the internals
const-correct.
--
nosy: +petdance
Andy Lester added the comment:
I'm hoping that a goal here is to make
static inline int _Py_IS_TYPE(PyObject *ob, PyTypeObject *type)
actually be
static inline int _Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type)
--
___
Python tr
Andy Lester added the comment:
> Would you mind to explain how it's an issue to modify PyObject* temporarily
> during a function call?
It's not a problem to modify the PyObject* during a function call. However,
many functions don't need to modify the object, but are s
Andy Lester added the comment:
All I'm saying is that I think Py_IS_TYPE is a great idea, and that Py_IS_TYPE
should take const arguments, since its arguments are not modified. If you
think that should go in a different ticket, then I can make that h
New submission from Andy Lester :
These two code if/thens can be combined
if (ready) {
kind = PyUnicode_KIND(self);
data = PyUnicode_DATA(self);
}
else {
wstr = _PyUnicode_WSTR(self);
}
Py_UCS4 ch;
if (ready) {
ch = PyUnicode_READ(kind
Change by Andy Lester :
--
keywords: +patch
pull_requests: +17937
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18557
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
nosy: +petdance
___
Python tracker
<https://bugs.python.org/issue38691>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Andy Lester :
--
pull_requests: +17947
pull_request: https://github.com/python/cpython/pull/18565
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: -17937
___
Python tracker
<https://bugs.python.org/issue39684>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Andy Lester :
The function PyTokenizer_FromUTF8 from Parser/tokenizer.c had a comment:
/* XXX: constify members. */
This patch addresses that.
In the tok_state struct:
* end and start were non-const but could be made const
* str and input were const but should
Change by Andy Lester :
--
keywords: +patch
pull_requests: +17967
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18600
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
pull_requests: +17968
pull_request: https://github.com/python/cpython/pull/18601
___
Python tracker
<https://bugs.python.org/issue39
Andy Lester added the comment:
Just added a new PR to finish off the remaining places to use Py_IS_TYPE()
https://github.com/python/cpython/pull/18601
--
___
Python tracker
<https://bugs.python.org/issue39
New submission from Andy Lester :
In Modules/_datetimemodule.c, the char *timespec and char *specs[] can be made
const. Their contents are never modified.
In ndarray_get_format in Modules/_testbuffer.c, char *fmt can be made const.
--
components: Interpreter Core
messages: 362565
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18003
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18637
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
The array_modexec function in Modules/arraymodule.c has a loop that calculates
the number of elements in the descriptors array. This size was used at one
point, but is no longer. The loop can be removed.
--
components: Interpreter Core
messages
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18031
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18673
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
pull_requests: +18032
pull_request: https://github.com/python/cpython/pull/18674
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +18033
pull_request: https://github.com/python/cpython/pull/18675
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: -18032
___
Python tracker
<https://bugs.python.org/issue39770>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Andy Lester :
--
pull_requests: -18031
___
Python tracker
<https://bugs.python.org/issue39770>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Andy Lester :
--
pull_requests: +18035
pull_request: https://github.com/python/cpython/pull/18673
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +18034
pull_request: https://github.com/python/cpython/pull/18674
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: -18034
___
Python tracker
<https://bugs.python.org/issue39770>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Andy Lester :
--
pull_requests: -18035
___
Python tracker
<https://bugs.python.org/issue39770>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Andy Lester :
_PyLong_FormatAdvancedWriter has a PyObject *str that is never used. Remove it.
--
components: Interpreter Core
messages: 363006
nosy: petdance
priority: normal
severity: normal
status: open
title: _PyLong_FormatAdvancedWriter has an unnecessary str
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18066
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18707
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
pull_requests: -18066
___
Python tracker
<https://bugs.python.org/issue39803>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Andy Lester :
--
pull_requests: +18067
pull_request: https://github.com/python/cpython/pull/18708
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: -18067
___
Python tracker
<https://bugs.python.org/issue39803>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Andy Lester :
--
pull_requests: +18068
pull_request: https://github.com/python/cpython/pull/18709
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +18146
pull_request: https://github.com/python/cpython/pull/18789
___
Python tracker
<https://bugs.python.org/issue39
New submission from Andy Lester :
set_herror builds a string by calling hstrerror but downcasts its return value
to char *. It should be const char *.
--
components: Interpreter Core
messages: 363418
nosy: petdance
priority: normal
severity: normal
status: open
title: set_herror
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18147
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18790
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
sys_displayhook_unencodable in Python/sysmodule.c doesn't need its first
argument. Remove it.
--
messages: 363475
nosy: petdance
priority: normal
severity: normal
status: open
title: sys_displayhook_unencodable takes an unnecessary PyThread
Change by Andy Lester :
--
components: +Interpreter Core
___
Python tracker
<https://bugs.python.org/issue39870>
___
___
Python-bugs-list mailing list
Unsub
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18152
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18796
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
pull_requests: +18154
pull_request: https://github.com/python/cpython/pull/18798
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +18155
pull_request: https://github.com/python/cpython/pull/18799
___
Python tracker
<https://bugs.python.org/issue39
New submission from Andy Lester :
These four functions have unused arguments that can be removed:
symtable_exit_block -> void *ast
symtable_visit_annotations -> stmt_ty s
symtable_exit_block -> void *ast
symtable_visit_annotations -> stmt_ty s
PR is forthcoming.
-
Andy Lester added the comment:
Two functions. It's only two functions.
--
title: Remove unused args from four functions in Python/symtable.c -> Remove
unused args from two functions in Python/symtable.c
___
Python tracker
<https://bugs
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18156
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18800
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
pull_requests: +18167
pull_request: https://github.com/python/cpython/pull/18809
___
Python tracker
<https://bugs.python.org/issue39
New submission from Andy Lester :
The following functions have unused args:
calc_number_widths -> PyObject *number
fill_number -> Py_ssize_t d_end
--
components: Interpreter Core
messages: 363525
nosy: petdance
priority: normal
severity: normal
status: open
title: Remove unuse
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18168
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18810
___
Python tracker
<https://bugs.python.org/issu
Andy Lester added the comment:
Is there more to do here or can it be closed?
--
___
Python tracker
<https://bugs.python.org/issue39127>
___
___
Python-bug
Change by Andy Lester :
--
pull_requests: +18181
pull_request: https://github.com/python/cpython/pull/18822
___
Python tracker
<https://bugs.python.org/issue39
New submission from Andy Lester :
config_get_stdio_errors(const PyConfig *config) does not use its arg. Delete
it.
--
components: Interpreter Core
messages: 363582
nosy: petdance
priority: normal
severity: normal
status: open
title: Remove unused arg in config_get_stdio_errors in
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18182
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18823
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
Remove unused args from:
* binop
* compiler_next_instr
* inplace_binop
Const arguments for:
* assemble_jump_offsets
* blocksize
* check_caller
* check_compare
* check_index
* check_is_arg
* check_subscripter
* compiler_error
* compiler_new_block
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18194
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18837
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
append_formattedvalue() has an unused bool is_format_spec.
--
components: Interpreter Core
messages: 363634
nosy: petdance
priority: normal
severity: normal
status: open
title: Remove unused arg from append_formattedvalue in Python/ast_unparse.c
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18197
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18840
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
init_set_builtins_open(PyThreadState *tstate) -> unused arg
_Py_FatalError_PrintExc(int fd) -> unused arg
--
components: Interpreter Core
messages: 363690
nosy: petdance
priority: normal
severity: normal
status: open
title: Remove unused arg
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18225
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18867
___
Python tracker
<https://bugs.python.org/issu
New submission from Andy Lester :
These functions have unnecessary args that can be removed:
* binop
* compiler_add_o
* compiler_next_instr
* inplace_binop
--
components: Interpreter Core
messages: 363799
nosy: petdance
priority: normal
severity: normal
status: open
title: Remove
Andy Lester added the comment:
Replaced by https://bugs.python.org/issue39922
--
resolution: -> rejected
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18250
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18893
___
Python tracker
<https://bugs.python.org/issu
Andy Lester added the comment:
Sorry about the noise. I will do that. Yes, I have a bunch more to submit.
--
___
Python tracker
<https://bugs.python.org/issue39
New submission from Andy Lester :
This is a meta-ticket for a number of small PRs that clean up some internals.
Issues will include:
* Removing unnecessary casts
* consting pointers that can be made const
* Removing unused function arguments
* etc
--
components: Interpreter Core
Change by Andy Lester :
--
title: Meta: Clean up various issues -> Meta: Clean up various issues in C
internals
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
pull_requests: +18300
pull_request: https://github.com/python/cpython/pull/18949
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: -18300
___
Python tracker
<https://bugs.python.org/issue39922>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Andy Lester :
--
keywords: +patch
pull_requests: +18301
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/18950
___
Python tracker
<https://bugs.python.org/issu
Change by Andy Lester :
--
pull_requests: +18322
pull_request: https://github.com/python/cpython/pull/18973
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +18513
pull_request: https://github.com/python/cpython/pull/19152
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +18530
pull_request: https://github.com/python/cpython/pull/19170
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +18544
pull_request: https://github.com/python/cpython/pull/19185
___
Python tracker
<https://bugs.python.org/issue39
Change by Andy Lester :
--
pull_requests: +18545
pull_request: https://github.com/python/cpython/pull/19186
___
Python tracker
<https://bugs.python.org/issue39
Andy Lester added the comment:
It doesn't quiet any compiler warnings given the default compiler warnings that
./configure sets.
However, it does quiet the -Wcast-qual compiler warning that could be a helpful
addition some time in the future. I think it would be great, for example,
Change by Andy Lester :
--
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.org/issue39908>
___
___
Pyth
1 - 100 of 121 matches
Mail list logo