[issue14381] Intern certain integral floats for memory savings and performance
Kristján Valur Jónsson
report at bugs.python.org
Fri Apr 20 11:12:42 CEST 2012
Kristján Valur Jónsson <kristjan at ccpgames.com> added the comment:
Interesting.
I declare that this rule does not apply here since the code is a deliberate hack: We are pretending that a certain address points to integers and checking those integers.
If you insist on following the standard, you could do
double cmp = 0;
return mcmcmp(&cmp, fval, sizeof(fval)) == 0;
but on all real machines this is the same as:
PY_LONG_LONG cmp = 0;
return mcmcmp(&cmp, fval, sizeof(fval)) == 0;
Which again is the same as
return *(PY_LONG_LONG*)&fval == 0;
technically speaking, even if the standard doesn't agree. You could implement this with in-line assembly and so cheerfully sidestep the standard.
When you're hacking, your're hacking and the standard isn't your friend :)
Anyway, this proposal has been rejected due to lack of interest or some misguided idea of performance, so the point is moot.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14381>
_______________________________________
More information about the Python-bugs-list
mailing list