Hey Larry, just to clarify on a single point you make: On Sun, 12 Jul 2020 at 10:48, Larry Hastings <la...@hastings.org> wrote:
> [ snip ] > To address 2), bind '_' when it's used as a name in a pattern. > > This adds an extra reference and an extra store. That by itself seems > harmless. > This is not always just a store. for patterns like `[a, *_, b]` vs `[a, *ignore_me, b]`, the current semantics mean that the matching process has to make 2 calls to `__getitem__` on the match subject. The second case (which would be equivalent to "remove special meaning on _") will have to actually create a new list and copy most of the original one which can be arbitrarily long, so this turns an O(1) operation into O(n). > The existing implementation has optimizations here. If that's important, > we could achieve the same result with a little dataflow analysis to > optimize away the dead store. We could even special-case optimizing away > dead stores *only* to '_' and *only* in match/case statements and all > would be forgiven. > This might work, although it's quite different to what python does in general (are you supposed to see the value of `_` in a debugger? or in `locals()`? ) Cheers, D.
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/ROHP3JPDJPFYIOL2ILUAZRL7JHW46NHW/ Code of Conduct: http://python.org/psf/codeofconduct/