[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