03.10.17 17:21, Barry Warsaw пише:
What if the compiler could recognize constant arguments to re.compile() and do
the regex compilation at that point? You’d need a way to represent the
precompiled regex in the bytecode, and it would technically be a semantic
change since regex problems would be discovered at compilation time instead of
runtime - but that might be a good thing. You could also make that an
optimization flag for opt-in, or a flag to allow opt out.
The representation of the compiled regex is an implementation detail. It
is even not exposed since the regex is compiled. And it is changed
faster than bytecode and marshal format. It can be changed even in a
bugfix release.
For implementing this idea we need:
1. Invent a universal portable regex bytecode. It shouldn't contain
flaws and limitations and should support all features of Unicode regexps
and possible extensions. It should also predict future Unicode changes
and be able to code them.
2. Add support of regex objects in marshal format.
3. Implement an advanced AST optimizer.
4. Rewrite the regex compiler in C or make the AST optimizer able to
execute Python code.
I think we are far away from this. Any of the above problems is much
larger and can give larger benefit than changing several microseconds at
startup.
Forget about this. Let's first get rid of GIL!
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com