Walter Bright wrote:
bearophile wrote:
Walter Bright:
The result of / depends on which version of Python you're using:
http://www.python.org/doc/2.2.3/whatsnew/node7.html

I have used Python 2.6, and the numbers I have shown you are correct for Python 3.1 too.
I don't like how the % behaves in C when there can be negative numbers.

According to the python pep, the integer / divide semantics changed from "C" style to match what the floating point / does. While this makes sense for a language that is typeless, it doesn't work for D because:

1. it would cause D code to silently produce different results than the corresponding C/C++ code. This is extremely important, as I guarantee that when someone new tries porting existing C code to D, and it doesn't work, their conclusion will not be "perhaps I should recode the / expression", it will be "D sux". Note that there is no way the compiler could issue a warning about this as it cannot determine a dependency on the rounding method.

But C gives the implementation leeway to define '/' as they find fit. This is useless because it makes it difficult to write portable code. We must improve on that.

2. it is slower than the current method.

We want something well-defined. I agree to adopt the semantics of IDIV but we must understand that those might be slower on other machines.


Andrei

Reply via email to