>>>>> "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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4