On Mon, Jan 5, 2009 at 4:25 AM, Amaury Forgeot d'Arc <amauryfa at gmail.com> wrote: > On Mon, Jan 5, 2009 at 00:53, Benjamin Peterson wrote: >> On Sun, Jan 4, 2009 at 5:36 PM, <skip at pobox.com> wrote: >>> >>> >> Since print is now a builtin function why is there still a PRINT_EXPR >>> >> opcode? >>> >>> Benjamin> I believe it's used in the interactive interpreter to display >>> Benjamin> the repr of an expression. >>> >>> Wouldn't it make more sense for the interactive interpreter to call >>> >>> print(repr(expr)) >> >> I'm not sure about the reasoning for keeping PRINT_EXPR alive. When I >> look at the code of PyRun_InteractiveOne, it seems it should be >> possible to kill it off. > > How would you display multiple lines, like: > >>>> for x in range(3): > ... x, x * x > ... > (0, 0) > (1, 1) > (2, 4) >>>> if 1: > ... "some line" > ... "another line" > ... > 'some line' > 'another line' > > OTOH this seems an obscure feature. "for" and "if" are statements after all. That feature may be obscure but should not be killed. It'd be a bit tricky to remove the PRINT_EXPR call since it doesn't invoke the print() function -- it invokes something more basic that goes through sys.displayhook. I don't care about the opcode, but the semantics should remain unchanged. Keeping the opcode is probably easiest. -- --Guido van Rossum (home page: http://www.python.org/~guido/)
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