> You can get the same effect by not naming the value being thrown away
This is absolutely true, although I don't think that's a particularly strong
argument against it. The same can be said of `std::move` in C++. The purpose
of this suggestion is primarily to allow introducing names without it coming at
the cost of unwanted reference counts. Consider the following expression, with
no intermediate names:
h = get_h_long_name(get_g_long_name(get_f_long_name(x))
With my proposal, this would become exactly equivalent to the following in
terms of reference counts
f = get_f_long_name(del x)
g = get_g_long_name(del f)
h = get_h_long_name(del g)
> Do you have an example of an application where this sort of
> micro-optimisation is significant enough to justify a fairly major language
> change?
As an example of these optimizations being valuable, see
https://github.com/numpy/numpy/pull/7997, which claims the optimization I
described at the beginning resulted in a 1.5x-2x speedup.
> but that didn't need a language change to implement...
The language change I'm proposing isn't about _implementing_ these
optimizations, it's about allowing users to exploit them without having to
sacrifice naming their variables.
Eric
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/ZR5LQTYVYQTC5C64WJDAETFFSVTL7D62/
Code of Conduct: http://python.org/psf/codeofconduct/