RE: [PHP-DEV] Labeled Break (nothing at all whatsoever to do withGOTO)
| From: | Dmitry Stogov | Date: | Thu, 01 Dec 2005 16:45:40 +0000 |
| Subject: | RE: [PHP-DEV] Labeled Break (nothing at all whatsoever to do withGOTO) | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-20963@lists.php.net to get a copy of this message | ||
Good catch. Thanks. I'll fix this and send a new patch.
Dmitry.
> -----Original Message-----
> From: Sara Golemon [mailto:pollita@php.net]
> Sent: Thursday, December 01, 2005 7:03 PM
> To: Dmitry Stogov; internals@lists.php.net
> Cc: Zeev Suraski; Stanislav Malyshev
> Subject: Re: [PHP-DEV] Labeled Break (nothing at all
> whatsoever to do withGOTO)
>
>
> We're definately on the same page as far as implementation
> goals, but I
> can't help but notice one problem:
>
> * labels aren't scoped to functions. The break container
> checks prevent
> casual jumping, but:
>
> FOO: do { } while (0);
> function bar() {
> do { break FOO; } while (0);
> }
>
> Actually compiles legally. Of course the actual break stays
> within its
> local container, but if/when Jump is introduced to the
> mix....well... all
> bets are off...
>
> -Sara
>
> ----- Original Message -----
> From: "Dmitry Stogov" <dmitry@zend.com>
> To: "'Sara Golemon'" <pollita@php.net>;
> <internals@lists.php.net>
> Cc: "Zeev Suraski" <zeev@zend.com>; "Stanislav Malyshev"
> <stas@zend.com>
> Sent: Thursday, December 01, 2005 2:45 AM
> Subject: RE: [PHP-DEV] Labeled Break (nothing at all whatsoever to do
> withGOTO)
>
>
> > Hi Sara,
> >
> > I made another patch that is based on your ideas.
> >
> > 1) It uses "right" syntax:
> >
> > LABEL: while(1) {
> > break LABEL;
> > }
> >
> > 2) It doesn't allow usage of same label for different loops
> >
> > L1: while(1) {...}
> > L1: while(1) {...}
> >
> > 3) It doesn't use executor data structures
> >
> > 4) It allows reuse of same labels for jump/goto (as was
> done in your
> > first patch). It already declares "jump LABEL;" operator but emits
> > error for now.
> >
> > I think this patch can be committed and then we can discuss
> jump/goto.
> >
> > Thanks. Dmitry.
> >
>
>