On 28/07/2020 15:33, Guido van Rossum wrote:
Rest assured this is not a problem. In any case it’s the compiler, not
the parser, that generates the bytecode, from the AST. The compiler
always has the full AST available before it is asked to generate any
bytecode. The new parser just allows more flexible syntactic
constructs, esp. “soft keywords”.
*If* you want tou propose clearer syntax for this, please extend the
loop syntax, not the ‘if’ syntax. So, ‘case ... zero’ makes more sense
than ‘if [not] break’.
—Guido
On Tue, Jul 28, 2020 at 03:26 Jonathan Fine <jfine2...@gmail.com
<mailto:jfine2...@gmail.com>> wrote:
Hi Rob
You wrote:
So: You're asking that the bytecode generated for the for-loop
depends
on something that happens (or not) after the end of the
for-loop body
(which could be arbitrarily long).
I speak from ignorance, but I suspect that even with the new
parser,
which I am reliably informed can make the tea and implement
world peace,
that would be asking a lot.
I'm also speaking from ignorance. However, here I'm the optimist.
Ignorance is bliss. You're the pessimist. The devil is in the details.
Until we have knowledge and wisdom on this, I think we need both
points of view. So I'm grateful for your
https://en.wikipedia.org/wiki/Grain_of_salt (American English,
pinch of salt in British English). I hope it makes my dish taste
better!
--
Jonathan
I stand corrected; my objection to detecting "zero iterations" has no
foundation.
It's good to know the facts.
On labelled breaks:
My God, you want to bring back the GOTO statement!:-) Seriously,
though, I can see that labelled breaks might be useful. Especially
where the same label is used more than once, helping DRY.
One thought though:
A possible, unrelated, future language extension is to allow breaking
out of more than one loop at a time. (I know there have been times
where I would have found this useful, though I can't recall them now.)
So the syntax to break out of 3 loops at a time might be "break break
break" or "break 3" or "break 3 times" or <you-name-it>.
A syntax to break out of *all* enclosing loops (although not great
programming style, because it would be broken by adding a new outer
loop) might be "break all" or "break *".
(BTW I have a job lot of bikesheds, in case you want any cheap ones.)
So maybe you could give half an eye to not clashing with some such
possible future scheme?
Rob
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
<mailto:python-ideas@python.org>
To unsubscribe send an email to python-ideas-le...@python.org
<mailto:python-ideas-le...@python.org>
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message/AHONH5PRIXOK7KY5HSP2ATGVFXAOG5JS/
Code of Conduct: http://python.org/psf/codeofconduct/
--
--Guido (mobile)
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message/LHFXMIGA6WVKPCXHPYRRH72WXUMANFA6/
Code of Conduct: http://python.org/psf/codeofconduct/