[Python-Dev] Making None a keyword (original) (raw)
Jeremy Hylton jeremy@ZOPE.COM
Fri, 26 Apr 2002 10:10:12 -0400
- Previous message: [Python-Dev] Making None a keyword
- Next message: [Python-Dev] Making None a keyword
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"FLD" == Fred L Drake, <fdrake@acm.org> writes:
FLD> Jeremy Hylton writes:
Does the parser prevent assignment to None? Or does the compiler need to check for the use of None in an assignment?
FLD> Inside functions, you don't even need that. You just need to FLD> use LOAD_CONST (or whatever its called now), since None is FLD> entry 0 in the constants table, used by the implied "return FLD> None" when control drops off the end. Doing this in function FLD> buys most of the performance.
I don't understand what you mean, but I'll try to reply anyway :-).
I assume LOAD_NONE will eliminate the need for LOAD_CONST 0 (None). Instead of this:
case LOAD_CONST:
x = GETCONST(oparg);
Py_INCREF(x);
PUSH(x);
goto fast_next_opcode;
we'd have this:
case LOAD_NONE:
Py_INCREF(Py_None);
PUSH(Py_None);
goto fast_next_opcode;
It's probably a wee bit faster and it makes the bytecode smaller, because you don't need None in co_consts and you don't need an argument to the bytecode.
Based on my cycle counter measurements before the conference, I suspect the performance impact is, well, negligible.
Jeremy
- Previous message: [Python-Dev] Making None a keyword
- Next message: [Python-Dev] Making None a keyword
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]