[Paul F Dubois]
... BTW, the Fortran standard does not specify a representation for logical,
It does have to consume "one numeric storage unit", though (at least in F77 -- maybe F90 dropped that?), making it close to impossible to arrange for logical array storage as bit vectors.
and there was even a period where mixing libraries compiled with different compilers on the the Crays could get errors because the representations differed. One compiler had chosen to use a hardware feature that made it quick to test a sign bit.
The original CFT used .TRUE. same-as -1 for this reason. People playing games with EQUIVALENCE statements kept whining about that, when they came from a platform where .TRUE. same-as 1 was the norm. Last I paid attention, SGI still refused to guarantee what the represenation of .TRUE. was, but did guarantee that-- if you played EQUIVALENCE games mixing types --only a 0 value would be treated as .FALSE. when viewed again as a logical. Later, interoperabilibty with C also suffered. Minor pressure came from people coming from array languages (like APL and MATLAB), where true same-as 1 is the norm. If Python did change to "true booleans", would you change numarray to return them for arrays of comparison results? (array1 < array2, greater(array1, array2), etc)? If so, do you predict existing numarray users wouldn't notice?
This points out another fallacy with making bool a subclass of int -- it binds the implementation too much to one view.
"Peak speed" is a Fortran goal, not a Python goal. Refusing to commit to a specific representation doesn't do anything for Python except open it to the porting and interoperability headaches Fortran programmers enjoy. It could very well be that checking the sign bit is a little cheaper on some boxes, but Python doesn't (and shouldn't) care about that; Fortran should (and does).
True + True is neither True nor False. Hmmmmmm....
bool_1 + bool_2 + ... + bool_n counts the number of true terms. If you have a matrix of boolean results, doing a sum reduction across all dimensions yeilds the number of true entries. Etc. Stuff like that is darned useful, IMO.