On 13/04/2017 22:58, Ian Kelly wrote:
On Thu, Apr 13, 2017 at 3:27 PM, Dennis Lee Bieber
<wlfr...@ix.netcom.com> wrote:
On Thu, 13 Apr 2017 15:52:24 +0100, bartc <b...@freeuk.com> declaimed the
following:

'goto' would be one easy-to-execute byte-code; no variables, objects or
types to worry about. If implemented properly (with the byte-code
compiler using a dedicated name-space for labels) there would be no name
lookups.


        Only if GOTO is not allowed to break out of namespaces...

        NO GOTO from inside a function to some global catch-all handler...

(That doesn't happen. No sane language would allow it, not on the user-side anyway.)

        Once you permit uncontrolled/unlimited GOTO you have to be concerned
with stack-frames and object life-times.

Even within a function you would still have to be concerned about a
goto from inside a try or with block to outside of that block, as the
finally block or the context manager's __exit__ still need to be
executed on the way out.

So how does 'break' manage it? I assume break works from inside a try- or with-block.

Jumping /into/ such a block might be more tricky, but it is simple enough to not allow it.

--
Bartc
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to