New submission from Stefan Behnel:

"longintrepr.h" is a non-public header file (not included by Python.h) that 
defines the inner struct layout of PyLong objects. Including it allows for very 
fast access to "small" integers through ob_digit[0] when -1 <= Py_SIZE(n) <= 1, 
which is a great feature.

However, the header file depends on PYLONG_BITS_IN_DIGIT being defined and 
matching exactly the value that was used when building CPython. In the case 
that --enable-big-digits=X was passed to configure, this value is available 
from pyconfig.h. Otherwise, it will be determined by pyport.h, where it depends 
on the current configuration of the C compiler and may in some cases come up 
with a different definition than it did when building CPython (which then leads 
to crashes).

I'd like to have the correct build-time value always available in one way or 
another, e.g. by always storing it in pyconfig.h even when it was not user 
configured, so that including and using longintrepr.h becomes a safe and simple 
thing.

----------
components: Build
messages: 226167
nosy: mark.dickinson, scoder
priority: normal
severity: normal
status: open
title: Make PYLONG_BITS_IN_DIGIT always available to non-core extensions
type: enhancement
versions: Python 3.5

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

Reply via email to