From a87e6ef59e177409e25b09a3d1f25acc6bf0c14f Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 8 Aug 2001 05:00:18 +0000 Subject: Implement PEP 238 in its (almost) full glory. This introduces: - A new operator // that means floor division (the kind of division where 1/2 is 0). - The "future division" statement ("from __future__ import division) which changes the meaning of the / operator to implement "true division" (where 1/2 is 0.5). - New overloadable operators __truediv__ and __floordiv__. - New slots in the PyNumberMethods struct for true and floor division, new abstract APIs for them, new opcodes, and so on. I emphasize that without the future division statement, the semantics of / will remain unchanged until Python 3.0. Not yet implemented are warnings (default off) when / is used with int or long arguments. This has been on display since 7/31 as SF patch #443474. Flames to /dev/null. --- Python/future.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Python/future.c') diff --git a/Python/future.c b/Python/future.c index fc0d7482c9..db62b5b251 100644 --- a/Python/future.c +++ b/Python/future.c @@ -33,6 +33,8 @@ future_check_features(PyFutureFeatures *ff, node *n, char *filename) ff->ff_nested_scopes = 1; } else if (strcmp(feature, FUTURE_GENERATORS) == 0) { ff->ff_generators = 1; + } else if (strcmp(feature, FUTURE_DIVISION) == 0) { + ff->ff_division = 1; } else if (strcmp(feature, "braces") == 0) { PyErr_SetString(PyExc_SyntaxError, "not a chance"); @@ -234,6 +236,7 @@ PyNode_Future(node *n, char *filename) ff->ff_last_lineno = -1; ff->ff_nested_scopes = 0; ff->ff_generators = 0; + ff->ff_division = 0; if (future_parse(ff, n, filename) < 0) { PyMem_Free((void *)ff); -- cgit v1.2.1