[Python-ideas] .pyu nicode syntax symbols (was Re: Empty set, Empty dict)
Steven D'Aprano
steve at pearwood.info
Tue Jul 1 19:33:07 CEST 2014
On Tue, Jul 01, 2014 at 06:38:37PM +1000, Chris Angelico wrote:
[...]
> 1) Do I really think anyone *should* do this? Your subsequent comments
> support this question, and the answer is resoundingly NO. CPython is
"This" being trying to micro-optimize code by bytecode-hacking.
> not the sort of platform on which that kind of thing is ever worth
> doing. You'll get far more performance by using Cython for parts, or
> in some other way improving your code, than you will by hand-tweaking
> the Python bytecode.
I think that micro-optimization is probably the wrong reason to hack
bytecodes. What I'm more interested in is exploring potential new
features, or to add functionality, for example:
Adding the ability to trace individual expressions, not just lines:
http://nedbatchelder.com/blog/200804/wicked_hack_python_bytecode_tracing.html
Exploring dynamic scoping:
http://www.voidspace.org.uk/python/articles/code_blocks.shtml
A proposal from Python 2.3 days for a brand-new decorator syntax:
http://code.activestate.com/recipes/286147
A (serious!) defence of GOTO in Python:
http://www.dr-josiah.com/2012/04/python-bytecode-hacks-gotos-revisited.html
(although even Josiah doesn't suggest using COMEFROM :-)
I don't know that such bytecode manipulations should be provided in the
standard library, and certainly not as a built-in "asm" command. But, I
think that we ought to acknowledge that bytecode hacking has a role to
play in the wider Python ecosystem.
I'm lead to understand that in the Java community, bytecode hacking is,
perhaps not common, but accepted as something that powerusers do when
all else fails:
https://weblogs.java.net/blog/simonis/archive/2009/02/we_need_a_dirty.html
[Aside: does Python do any sort of verification of the bytecode before
executing it, as Java does?]
--
Steven
More information about the Python-ideas
mailing list