1. voting on GOTO

Ok, so here is the official voting thread for the proposal on goto and label.   
My proposal was basically a goto that was restricted to using only labels in    
the current scope, but otherwise unrestricted.

Please vote yes or no, or abstain. Comments appreciated.

The full details of the proposal as currently slated, are:

goto and labels are only valid in the current scope. You can use the keyword
goto to
jump around in the same file at top level scope (but not across files,          
only within the same file) and you can use goto to jump around inside           
routines. But you can't jump across scope. Goto can't see labels that           
are outside of the current local scope, and there is no support for a           
'global' scope. The current local scope will either be the top-level
scope of the file code is currently executing from, or the private scope        
of the routine that goto is executing inside of.                              
Labels are defined with the label keyword, and are strings.  You can define and
use labels in the top-level scope of a file, but this is discouraged.
                                                                                
Scoping isn't affected by loops. This includes for loops. Any other type        
of loop, jumping in and out works as you expect it would.                       
You can just backwards and forwards. Labels do not have to come before goto
statements or vice versa.
                                                                                
For for loops, jumping out doesn't appear to cause any problems. Jumping        
into a for loop leaves the loop variable uninitialized, which can cause         
problems if you allow execution to reach the end of the for loop. (If           
you dont read the loop var and you jump back out of the for loop, then          
it works fine. If you only jump around theinside of a for loop but allow        
the for loop to start iteration normally, then it also works fine.              
Likewise if you jump to a label that is right before the start of a for         
loop.)                                                                          

It is possible to check if a variable is uninitialized. The recommended way to
deal with for loops is, if you must jump into a for loop, check if the variable
is uninitialized and jump to a label that is right before the the beginning of
the for loop statement to continue iteration.
Jumping into for loops is discouraged, however.

new topic     » topic index » view message » categorize

2. Re: voting on GOTO

Jim Brown wrote:
> 
> Ok, so here is the official voting thread for the proposal on goto and label.
>   
> My proposal was basically a goto that was restricted to using only labels in
>    
> the current scope, but otherwise unrestricted.
> 
> Please vote yes or no, or abstain. Comments appreciated.
> 
> The full details of the proposal as currently slated, are:
> 
> goto and labels are only valid in the current scope. You can use the keyword
> goto to        
> jump around in the same file at top level scope (but not across files,     
>     
> only within the same file) and you can use goto to jump around inside      
>     
> routines. But you can't jump across scope. Goto can't see labels that      
>     
> are outside of the current local scope, and there is no support for a      
>     
> 'global' scope. The current local scope will either be the top-level       
>      
> scope of the file code is currently executing from, or the private scope   
>     
> of the routine that goto is executing inside of.                           
>   
> Labels are defined with the label keyword, and are strings.  You can define
> and use labels in the top-level scope of a file, but this is discouraged.
>                                                                            
>     
> Scoping isn't affected by loops. This includes for loops. Any other type   
>     
> of loop, jumping in and out works as you expect it would.                  
>     
> You can just backwards and forwards. Labels do not have to come before goto
> statements or vice versa.
>                                                                            
>     
> For for loops, jumping out doesn't appear to cause any problems. Jumping   
>     
> into a for loop leaves the loop variable uninitialized, which can cause    
>     
> problems if you allow execution to reach the end of the for loop. (If      
>     
> you dont read the loop var and you jump back out of the for loop, then     
>     
> it works fine. If you only jump around theinside of a for loop but allow   
>     
> the for loop to start iteration normally, then it also works fine.         
>     
> Likewise if you jump to a label that is right before the start of a for    
>     
> loop.)                                                                     
>     
> 
> It is possible to check if a variable is uninitialized. The recommended way
> to deal with for loops is, if you must jump into a for loop, check if the
> variable
> is uninitialized and jump to a label that is right before the the beginning
> of the for loop statement to continue iteration.
> Jumping into for loops is discouraged, however.

I vote No; would rather see forward reference instead of goto.

Bernie

My files in archive:
WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

3. Re: voting on GOTO

Bernie Ryan wrote:
> I vote No; would rather see forward reference instead of goto.
> 
> Bernie
> 

I just wanted to point out that the two aren't mutually exclusive. goto does not
help at all in simulating forward references, so if we need it we'd need the real
version.

new topic     » goto parent     » topic index » view message » categorize

4. Re: voting on GOTO

I vote NO on goto.
The potential for abuse outweighs the rare benefits.

Larry Miller

new topic     » goto parent     » topic index » view message » categorize

5. Re: voting on GOTO

Larry Miller wrote:
> 
> I vote NO on goto.
> The potential for abuse outweighs the rare benefits.

And if he engages in **A N Y** forms of "abuse", cut off his hands!

Kat

new topic     » goto parent     » topic index » view message » categorize

6. Re: voting on GOTO

What could you do with a goto that could not be done otherwise? Optimization is
not a good enough reason, since I doubt there would be very much performance gain
if any. It may even hinder the language performance in general.

Consider if goto even belongs in Eu's repertoire, regardless if it's useful or
not, as long as we can still achieve the same thing through different means. Does
it actually lend itself to Eu's characteristics? How will it affect the language
internally?

What kind of priority would you give this feature request?
I can think of a dozen things off-hand that I would rather see implemented
first.

I'd say nay if we are voting on it and these goto discussions will end, but
that's like hoping time will stop ;)

Rather than a vote, I'd suggest compiling and summarizing all the previous
discussions on goto and put in an official feature request on sourceforge.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

7. Re: voting on GOTO

Jim Brown wrote:
> 
> Ok, so here is the official voting thread for the proposal on goto and label.
>   
> My proposal was basically a goto that was restricted to using only labels in
>    
> the current scope, but otherwise unrestricted.
> 
> Please vote yes or no, or abstain. Comments appreciated.
> 
> The full details of the proposal as currently slated, are:
> 
> goto and labels are only valid in the current scope. You can use the keyword
> goto to        
> jump around in the same file at top level scope (but not across files,     
>     
> only within the same file) and you can use goto to jump around inside      
>     
> routines. But you can't jump across scope. Goto can't see labels that      
>     
> are outside of the current local scope, and there is no support for a      
>     
> 'global' scope. The current local scope will either be the top-level       
>      
> scope of the file code is currently executing from, or the private scope   
>     
> of the routine that goto is executing inside of.                           
>   
> Labels are defined with the label keyword, and are strings.  You can define
> and use labels in the top-level scope of a file, but this is discouraged.
>                                                                            
>     
> Scoping isn't affected by loops. This includes for loops. Any other type   
>     
> of loop, jumping in and out works as you expect it would.                  
>     
> You can just backwards and forwards. Labels do not have to come before goto
> statements or vice versa.
>                                                                            
>     
> For for loops, jumping out doesn't appear to cause any problems. Jumping   
>     
> into a for loop leaves the loop variable uninitialized, which can cause    
>     
> problems if you allow execution to reach the end of the for loop. (If      
>     
> you dont read the loop var and you jump back out of the for loop, then     
>     
> it works fine. If you only jump around theinside of a for loop but allow   
>     
> the for loop to start iteration normally, then it also works fine.         
>     
> Likewise if you jump to a label that is right before the start of a for    
>     
> loop.)                                                                     
>     
> 
> It is possible to check if a variable is uninitialized. The recommended way
> to deal with for loops is, if you must jump into a for loop, check if the
> variable
> is uninitialized and jump to a label that is right before the the beginning
> of the for loop statement to continue iteration.
> Jumping into for loops is discouraged, however.

I think i'd have just said "no jumping into uninitialised loops". I don't know
why you'd do that anyhow offpaw, unless you are using goto and a while loop to
simulate a repeat-until loop (which Eu does not have). Otherwise you are prolly
just trying to save a couple bytes of memory and reuse existing code, which isn't
so necessary nowadays. You don't need to goto into a structure simulating the
case/switch statement that Eu doesn't have, but which you can make with goto.

I vote YES on having goto.

Kat

new topic     » goto parent     » topic index » view message » categorize

8. Re: voting on GOTO

Kat wrote:
> 
> Larry Miller wrote:
> > 
> > I vote NO on goto.
> > The potential for abuse outweighs the rare benefits.
> 
> And if he engages in **A N Y** forms of "abuse", cut off his hands!

Can we assume this is a "yes" vote? :P

Matt

new topic     » goto parent     » topic index » view message » categorize

9. Re: voting on GOTO

Chris Bensler wrote:
> 
> What could you do with a goto that could not be done otherwise? Optimization
> is not a good enough reason, since I doubt there would be very much
> performance
> gain if any. It may even hinder the language performance in general.

In my opinion, ANY performance gain is worthwhile, as I plan to use BBCMF
far and wide on web hosting, and the faster it is, the more users I can
accommodate.

Also, I have been assured that adding GOTO to the interpreter in no way
negatively affects its speed/performance.

I voted 'yes' on the dev list (and most devs voted yes) for two reasons:

1. I don't care if other people want to use it.
2. It doesn't negatively impact performance of the interpreter.

> Consider if goto even belongs in Eu's repertoire, regardless if it's useful
> or not, as long as we can still achieve the same thing through different
> means.
> Does it actually lend itself to Eu's characteristics? How will it affect the
> language internally?

Good questions, because where do we draw the line between usability and
performance? Right now, on the performance end of the spectrum, assembly
is the language of choice. For usability... I'd have to put Euphoria there
just because I know it and am ignorant of other competing languages. We
have to ask, at times, do we want to sacrifice usability (by which I mean
ease-of-development, ease-of-maintenance, etc.) for performance?

Because Euphoria performs so well as is, my votes will tend to be toward
usability (w/o sacrificing performance), and not toward performance (while
sacrificing usability).

> Rather than a vote, I'd suggest compiling and summarizing all the previous
> discussions
> on goto and put in an official feature request on sourceforge.

Even as a feature request, it has to be discussed and ultimately voted on. I
think you're right that this needs more discussion.

new topic     » goto parent     » topic index » view message » categorize

10. Re: voting on GOTO

Chris Bensler wrote:
> 
> What could you do with a goto that could not be done otherwise? Optimization
> is not a good enough reason, since I doubt there would be very much
> performance
> gain if any. It may even hinder the language performance in general.
> 
> Consider if goto even belongs in Eu's repertoire, regardless if it's useful
> or not, as long as we can still achieve the same thing through different
> means.
> Does it actually lend itself to Eu's characteristics? How will it affect the
> language internally?
> 
> What kind of priority would you give this feature request?
> I can think of a dozen things off-hand that I would rather see implemented
> first.
> 
> I'd say nay if we are voting on it and these goto discussions will end, but
> that's like hoping time will stop ;)
> 
> Rather than a vote, I'd suggest compiling and summarizing all the previous
> discussions
> on goto and put in an official feature request on sourceforge.

Too late for that, i suspect v4 is days from release. The fact is, goto was
proven to work with Eu v2, Eu v2.5 and Eu v4. Code has been written, in some
cases, for over 6 years already! So you can consider this an already fulfilled
feature request, and deleted off the request list. Other things on your request
list are also done, i just don't know all your list, or all that's done, or i'd
let you know about them. But like your requests, or anyone's requests, no one is
forced to use any of them. The vote is more like "will you finally let the
keyword be left in the official version and be used?".

Kat

new topic     » goto parent     » topic index » view message » categorize

11. Re: voting on GOTO

As long term users of this forum will be well aware, Robert Craig was opposed to
the introduction of goto into Euphoria. If this should ever happen I can imagine
what his initial reaction might be:

"WHAT HAVE THEY DONE TO MY BABY?"

Larry Miller

new topic     » goto parent     » topic index » view message » categorize

12. Re: voting on GOTO

As on the developer's list, I abstain from voting.

--
A complex system that works is invariably found to have evolved from a simple
system that works.
--John Gall's 15th law of Systemantics.

"Premature optimization is the root of all evil in programming."
--C.A.R. Hoare

j.

new topic     » goto parent     » topic index » view message » categorize

13. Re: voting on GOTO

This proposal has already been vetted by the dev list, and passed there, 7 to 1.

A lot of thought and discussion went into goto. What survived is the proposal
presented here.

new topic     » goto parent     » topic index » view message » categorize

14. Re: voting on GOTO

Larry Miller wrote:
> 
> As long term users of this forum will be well aware, Robert Craig was opposed
> to the introduction of goto into Euphoria. If this should ever happen I can
> imagine what his initial reaction might be:
> 
> "WHAT HAVE THEY DONE TO MY BABY?"

He also said he would not oppose goto being added.

Kat

new topic     » goto parent     » topic index » view message » categorize

15. Re: voting on GOTO

Larry Miller wrote:
> 
> As long term users of this forum will be well aware, Robert Craig was opposed
> to the introduction of goto into Euphoria. If this should ever happen I can
> imagine what his initial reaction might be:
> 
> "WHAT HAVE THEY DONE TO MY BABY?"
> 
> Larry Miller

I've got married and got my own life now DAAAAD - duhhh

Chris

new topic     » goto parent     » topic index » view message » categorize

16. Re: voting on GOTO

Hi

I thought Derek said it was already in.

I vote yes - if poeple want to use it, and it doesn't affect speed, then its
abs fine by me. I may or may never use it, that's my choice.

Chris

new topic     » goto parent     » topic index » view message » categorize

17. Re: voting on GOTO

c.k.lester wrote:
> 
> Chris Bensler wrote:
> > 
> > What could you do with a goto that could not be done otherwise? Optimization
> > is not a good enough reason, since I doubt there would be very much
> > performance
> > gain if any. It may even hinder the language performance in general.
> 
> In my opinion, ANY performance gain is worthwhile, as I plan to use BBCMF
> far and wide on web hosting, and the faster it is, the more users I can
> accommodate.
> 
> Also, I have been assured that adding GOTO to the interpreter in no way
> negatively affects its speed/performance.
> 
> I voted 'yes' on the dev list (and most devs voted yes) for two reasons:
> 
> 1. I don't care if other people want to use it.
> 2. It doesn't negatively impact performance of the interpreter.
> 
> > Consider if goto even belongs in Eu's repertoire, regardless if it's useful
> > or not, as long as we can still achieve the same thing through different
> > means.
> > Does it actually lend itself to Eu's characteristics? How will it affect the
> > language internally?
> 
> Good questions, because where do we draw the line between usability and
> performance? Right now, on the performance end of the spectrum, assembly
> is the language of choice. For usability... I'd have to put Euphoria there
> just because I know it and am ignorant of other competing languages. We
> have to ask, at times, do we want to sacrifice usability (by which I mean
> ease-of-development, ease-of-maintenance, etc.) for performance?
> 
> Because Euphoria performs so well as is, my votes will tend to be toward
> usability (w/o sacrificing performance), and not toward performance (while
> sacrificing usability).
> 
> > Rather than a vote, I'd suggest compiling and summarizing all the previous
> > discussions
> > on goto and put in an official feature request on sourceforge.
> 
> Even as a feature request, it has to be discussed and ultimately voted on. I
> think you're right that this needs more discussion.

So we had the discussion, this is how it went:

[15:46] <euphoric> i don't know why i never got into C much. ever since Euphoria
came along, i haven't needed to.
[15:46] <euphoric> i mean, think about it. program with Euphoria then translate.
[15:47] <euphoric> BAM!
[15:47] <katsmeow-afk> yeasm BAM, C code with gotos!
[15:47] <euphoric> Nuh-uh!
[15:48] <euphoric> Translated code does NOT use GOTOs.
[15:48] <euphoric> Does it?
[15:48] <euphoric> :)
[15:48] <katsmeow-afk> if you say so
[15:48] <iamlost> it uses them all over the place
[15:48] <iamlost> every single loop type is implemtend, not with C loops, but
with gotos
[15:48] <katsmeow-afk> lol
[15:48] <[Tiggr]> hehehehehe ;o)
[15:48] <iamlost> and the backend uses goto like crazy
[15:48] <katsmeow-afk> that has GOT to be posted on euphorum
[15:49] <katsmeow-afk> mind if i quote?
[15:49] <katsmeow-afk> or do you wanna do it?
[15:49] <iamlost> katsmeow-afk: please, go ahead :)


Kat

new topic     » goto parent     » topic index » view message » categorize

18. Re: voting on GOTO

Kat wrote:
> 
> c.k.lester wrote:
> > 
> > Chris Bensler wrote:
> > > 
> > > What could you do with a goto that could not be done otherwise?
> > > Optimization
> > > is not a good enough reason, since I doubt there would be very much
> > > performance
> > > gain if any. It may even hinder the language performance in general.
> > 
> > In my opinion, ANY performance gain is worthwhile, as I plan to use BBCMF
> > far and wide on web hosting, and the faster it is, the more users I can
> > accommodate.
> > 
> > Also, I have been assured that adding GOTO to the interpreter in no way
> > negatively affects its speed/performance.
> > 
> > I voted 'yes' on the dev list (and most devs voted yes) for two reasons:
> > 
> > 1. I don't care if other people want to use it.
> > 2. It doesn't negatively impact performance of the interpreter.
> > 
> > > Consider if goto even belongs in Eu's repertoire, regardless if it's
> > > useful
> > > or not, as long as we can still achieve the same thing through different
> > > means.
> > > Does it actually lend itself to Eu's characteristics? How will it affect
> > > the
> > > language internally?
> > 
> > Good questions, because where do we draw the line between usability and
> > performance? Right now, on the performance end of the spectrum, assembly
> > is the language of choice. For usability... I'd have to put Euphoria there
> > just because I know it and am ignorant of other competing languages. We
> > have to ask, at times, do we want to sacrifice usability (by which I mean
> > ease-of-development, ease-of-maintenance, etc.) for performance?
> > 
> > Because Euphoria performs so well as is, my votes will tend to be toward
> > usability (w/o sacrificing performance), and not toward performance (while
> > sacrificing usability).
> > 
> > > Rather than a vote, I'd suggest compiling and summarizing all the previous
> discussions</font></i>
> > > on goto and put in an official feature request on sourceforge.
> > 
> > Even as a feature request, it has to be discussed and ultimately voted on. I
> > think you're right that this needs more discussion.
> 
> So we had the discussion, this is how it went:
> 
> }}}
<eucode>
> [15:46] <euphoric> i don't know why i never got into C much. ever since
> Euphoria came along, i haven't needed to.
> [15:46] <euphoric> i mean, think about it. program with Euphoria then
> translate.
> [15:47] <euphoric> BAM!
> [15:47] <katsmeow-afk> yeasm BAM, C code with gotos!
> [15:47] <euphoric> Nuh-uh!
> [15:48] <euphoric> Translated code does NOT use GOTOs.
> [15:48] <euphoric> Does it?
> [15:48] <euphoric> :)
> [15:48] <katsmeow-afk> if you say so
> [15:48] <iamlost> it uses them all over the place
> [15:48] <iamlost> every single loop type is implemtend, not with C loops, but
> with gotos
> [15:48] <katsmeow-afk> lol
> [15:48] <[Tiggr]> hehehehehe ;o)
> [15:48] <iamlost> and the backend uses goto like crazy
> [15:48] <katsmeow-afk> that has GOT to be posted on euphorum
> [15:49] <katsmeow-afk> mind if i quote?
> [15:49] <katsmeow-afk> or do you wanna do it?
> [15:49] <iamlost> katsmeow-afk: please, go ahead :)
> </eucode>
{{{

> 
> Kat

Because C is a lower level language.

--
A complex system that works is invariably found to have evolved from a simple
system that works.
--John Gall's 15th law of Systemantics.

"Premature optimization is the root of all evil in programming."
--C.A.R. Hoare

j.

new topic     » goto parent     » topic index » view message » categorize

19. Re: voting on GOTO

ChrisBurch3 wrote:
> 
> I vote yes - if poeple want to use it, and it doesn't affect speed, then its
> abs fine by me. I may or may never use it, that's my choice.
> 

Seconded.

Phil

new topic     » goto parent     » topic index » view message » categorize

20. Re: voting on GOTO

Jim Brown wrote:
> 
> This proposal has already been vetted by the dev list, and passed there, 7 to
> 1.
> 
> A lot of thought and discussion went into goto. What survived is the proposal
> presented here.

OK, I've just read back further in the forum. And I see that it is already
implemented and slated for v4.

I personally do not have much of an opinion on the implementation of goto.
Either way, I won't use it. My main concern is having to be aware the potential
for others to have used goto in any code I may procure from the archives and
attempt to fix or otherwise modify. Perhaps a warning that can be toggled to
indicate if goto has been used would be handy. Then I could avoid any code with
goto whatsoever, or at least know they are there and where.

My other concern is more general and that is the integrity of the language.
I'd love to welcome all new features to the language but I think of other
languages such as PHP and Java and C which have bells and whistles on the bells
and whistles, and that is why I chose to use euphoria and not those languages.
Bloat sucks. Just because it may be useful in select circumstances and it's not
too hard to implement, doesn't always mean it should be.

Language design should not be based purely on desire, there was alot of thought
put into making Euphoria simplistic yet powerful and flexible. Those traits
should be paramount.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

21. Re: voting on GOTO

Jason Gade wrote:
> Kat wrote:
> > [15:48] <iamlost> every single loop type is implemtend, not with C loops,
> > but with gotos
> > [15:48] <iamlost> and the backend uses goto like crazy
> 
> Because C is a lower level language.

That's what I tried to argue. They wouldn't hear me. :)

new topic     » goto parent     » topic index » view message » categorize

22. Re: voting on GOTO

Kat wrote:
<SNIP> 
> So we had the discussion, this is how it went:
> 
> }}}
<eucode>
> [15:46] <euphoric> i don't know why i never got into C much. ever since
> Euphoria came along, i haven't needed to.
> [15:46] <euphoric> i mean, think about it. program with Euphoria then
> translate.
> [15:47] <euphoric> BAM!
> [15:47] <katsmeow-afk> yeasm BAM, C code with gotos!
> [15:47] <euphoric> Nuh-uh!
> [15:48] <euphoric> Translated code does NOT use GOTOs.
> [15:48] <euphoric> Does it?
> [15:48] <euphoric> :)
> [15:48] <katsmeow-afk> if you say so
> [15:48] <iamlost> it uses them all over the place
> [15:48] <iamlost> every single loop type is implemtend, not with C loops, but
> with gotos
> [15:48] <katsmeow-afk> lol
> [15:48] <[Tiggr]> hehehehehe ;o)
> [15:48] <iamlost> and the backend uses goto like crazy
> [15:48] <katsmeow-afk> that has GOT to be posted on euphorum
> [15:49] <katsmeow-afk> mind if i quote?
> [15:49] <katsmeow-afk> or do you wanna do it?
> [15:49] <iamlost> katsmeow-afk: please, go ahead :)
> </eucode>
{{{

> 
> Kat

How many pointer references are there in the C backend? Is that justification
for pointers in EU? Because I think that would be much more useful that goto. ;)

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

23. Re: voting on GOTO

Chris Bensler wrote:
> 
> Perhaps a warning that can be toggled to indicate if goto has been used
> would be handy. 

grep goto *.e*

Matt

new topic     » goto parent     » topic index » view message » categorize

24. Re: voting on GOTO

Matt Lewis wrote:
> 
> Chris Bensler wrote:
> > 
> > Perhaps a warning that can be toggled to indicate if goto has been used
> > would be handy. 
> 
> grep goto *.e*
> 
> Matt

I don't have the latest versions of Eu yet. Obviously, I'm out of the know. I'll
be quiet now :P

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

25. Re: voting on GOTO

Jason Gade wrote:
> 
> Kat wrote:
> > 
> > c.k.lester wrote:
> > > 
> > > Chris Bensler wrote:
> > > > 
> > > > What could you do with a goto that could not be done otherwise?
> > > > Optimization
> > > > is not a good enough reason, since I doubt there would be very much
> > > > performance
> > > > gain if any. It may even hinder the language performance in general.
> > > 
> > > In my opinion, ANY performance gain is worthwhile, as I plan to use BBCMF
> > > far and wide on web hosting, and the faster it is, the more users I can
> > > accommodate.
> > > 
> > > Also, I have been assured that adding GOTO to the interpreter in no way
> > > negatively affects its speed/performance.
> > > 
> > > I voted 'yes' on the dev list (and most devs voted yes) for two reasons:
> > > 
> > > 1. I don't care if other people want to use it.
> > > 2. It doesn't negatively impact performance of the interpreter.
> > > 
> > > > Consider if goto even belongs in Eu's repertoire, regardless if it's
> > > > useful
> > > > or not, as long as we can still achieve the same thing through different
> > > > means.
> > > > Does it actually lend itself to Eu's characteristics? How will it affect
> > > > the
> > > > language internally?
> > > 
> > > Good questions, because where do we draw the line between usability and
> > > performance? Right now, on the performance end of the spectrum, assembly
> > > is the language of choice. For usability... I'd have to put Euphoria there
> > > just because I know it and am ignorant of other competing languages. We
> > > have to ask, at times, do we want to sacrifice usability (by which I mean
> > > ease-of-development, ease-of-maintenance, etc.) for performance?
> > > 
> > > Because Euphoria performs so well as is, my votes will tend to be toward
> > > usability (w/o sacrificing performance), and not toward performance (while
> > > sacrificing usability).
> > > 
> > > > Rather than a vote, I'd suggest compiling and summarizing all the
> > > > previous
> > discussions</font></i>
> > > > on goto and put in an official feature request on sourceforge.
> > > 
> > > Even as a feature request, it has to be discussed and ultimately voted on.
> > > I
> > > think you're right that this needs more discussion.
> > 
> > So we had the discussion, this is how it went:
> > 
> > }}}
<eucode>
> > [15:46] <euphoric> i don't know why i never got into C much. ever since
> > Euphoria came along, i haven't needed to.
> > [15:46] <euphoric> i mean, think about it. program with Euphoria then
> > translate.
> > [15:47] <euphoric> BAM!
> > [15:47] <katsmeow-afk> yeasm BAM, C code with gotos!
> > [15:47] <euphoric> Nuh-uh!
> > [15:48] <euphoric> Translated code does NOT use GOTOs.
> > [15:48] <euphoric> Does it?
> > [15:48] <euphoric> :)
> > [15:48] <katsmeow-afk> if you say so
> > [15:48] <iamlost> it uses them all over the place
> > [15:48] <iamlost> every single loop type is implemtend, not with C loops,
> > but with gotos
> > [15:48] <katsmeow-afk> lol
> > [15:48] <[Tiggr]> hehehehehe ;o)
> > [15:48] <iamlost> and the backend uses goto like crazy
> > [15:48] <katsmeow-afk> that has GOT to be posted on euphorum
> > [15:49] <katsmeow-afk> mind if i quote?
> > [15:49] <katsmeow-afk> or do you wanna do it?
> > [15:49] <iamlost> katsmeow-afk: please, go ahead :)
> > </eucode>
{{{

> > 
> > Kat
> 
> Because C is a lower level language.

Yet even C has loops which Eu doesn't have, and won't have in v4, and might not
ever have. And still the loops are made with goto! ( NO, i am not advocating
making loops with goto in Eu.)

Kat

new topic     » goto parent     » topic index » view message » categorize

26. Re: voting on GOTO

Chris Bensler wrote:
> 
> I personally do not have much of an opinion on the implementation of goto.
> Either
> way, I won't use it. My main concern is having to be aware the potential for
> others to have used goto in any code I may procure from the archives and
> attempt
> to fix or otherwise modify. Perhaps a warning that can be toggled to indicate
> if goto has been used would be handy. Then I could avoid any code with goto
> whatsoever, or at least know they are there and where.
> 

Not to pick on any one person because I have heard this many times. I personally
am for goto because in some situations it can be very helpful. In those
situations where there is a better way of doing things, I will use the better
way.

Anyway, the above statement... goto can make code very clear and easy to
maintain if used properly. goto can make code very dirty and a mess to maintain
if used incorrectly. while, for, if, nested loops, too many functions, too little
functions can all make code easy/hard to understand as well.

The thing here is if the library author knows what they are doing, their use of
goto will be invaluable. If the library author does not know what they are doing,
I don't want to use their code if it has goto or not!

A library programmed correctly is a good library regardless of it's use of goto.
A library programmed incorrectly is a mess regardless of it's use of goto.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

27. Re: voting on GOTO

Yes to goto.

I don't see much myself using it, but if it helps others, they shouldn't beleft
out. And no one gave a single pointer to real world  spaghetti code.

CChris

new topic     » goto parent     » topic index » view message » categorize

28. Re: voting on GOTO

Chris Bensler wrote:
> 
> Jim Brown wrote:
> > 
> > This proposal has already been vetted by the dev list, and passed there, 7
> > to
> > 1.
> > 
> > A lot of thought and discussion went into goto. What survived is the
> > proposal
> > presented here.
> 
> OK, I've just read back further in the forum. And I see that it is already
> implemented
> and slated for v4.
> 
> I personally do not have much of an opinion on the implementation of goto.
> Either
> way, I won't use it. My main concern is having to be aware the potential for
> others to have used goto in any code I may procure from the archives and
> attempt
> to fix or otherwise modify. Perhaps a warning that can be toggled to indicate
> if goto has been used would be handy. Then I could avoid any code with goto
> whatsoever, or at least know they are there and where.

So what about dlls or such that's written in other languages, like the Eu
interfaces to Tsunami or dbSQL? The Eu code may be goto-less, but it's likely,
since Powerbasic has goto, there's one in those dlls somewhere with no warning!

Kat

new topic     » goto parent     » topic index » view message » categorize

29. Re: voting on GOTO

CChris wrote:
> 
> And no one gave a single pointer to real world  spaghetti code.

Well, duh... Euphoria doesn't have pointers.

new topic     » goto parent     » topic index » view message » categorize

30. Re: voting on GOTO

Chris Bensler wrote:
> 
> Kat wrote:
> <SNIP> 
> > So we had the discussion, this is how it went:
> > 
> > }}}
<eucode>
> > [15:46] <euphoric> i don't know why i never got into C much. ever since
> > Euphoria came along, i haven't needed to.
> > [15:46] <euphoric> i mean, think about it. program with Euphoria then
> > translate.
> > [15:47] <euphoric> BAM!
> > [15:47] <katsmeow-afk> yeasm BAM, C code with gotos!
> > [15:47] <euphoric> Nuh-uh!
> > [15:48] <euphoric> Translated code does NOT use GOTOs.
> > [15:48] <euphoric> Does it?
> > [15:48] <euphoric> :)
> > [15:48] <katsmeow-afk> if you say so
> > [15:48] <iamlost> it uses them all over the place
> > [15:48] <iamlost> every single loop type is implemtend, not with C loops,
> > but with gotos
> > [15:48] <katsmeow-afk> lol
> > [15:48] <[Tiggr]> hehehehehe ;o)
> > [15:48] <iamlost> and the backend uses goto like crazy
> > [15:48] <katsmeow-afk> that has GOT to be posted on euphorum
> > [15:49] <katsmeow-afk> mind if i quote?
> > [15:49] <katsmeow-afk> or do you wanna do it?
> > [15:49] <iamlost> katsmeow-afk: please, go ahead :)
> > </eucode>
{{{

> > 
> > Kat
> 
> How many pointer references are there in the C backend? Is that justification
> for pointers in EU? Because I think that would be much more useful that goto.
> ;)

And you know, i asked for pointers many many years ago! Remember that whole
typecasting discussion fiasco?

Kat

new topic     » goto parent     » topic index » view message » categorize

31. Re: voting on GOTO

c.k.lester wrote:
> 
> Jason Gade wrote:
> > Kat wrote:
> > > [15:48] <iamlost> every single loop type is implemtend, not with C loops,
> but with gotos</font></i>
> > > [15:48] <iamlost> and the backend uses goto like crazy
> > 
> > Because C is a lower level language.
> 
> That's what I tried to argue. They wouldn't hear me. :)

Because it's invalid. C has while loops, C has for loops, C has if statements,
the same as Euphoria. So, why does C then have goto's? Because in some cases it's
very valuable.

I've written hundreds of thousands of lines of production code in C. I've used
goto a few times, only when it has made the application more clear and easier to
maintain. To me we should have that ability in Euphoria.

What if, I wanted to *translate* my own domain language used for specific
business rules into Euphoria code? Are you saying I should not be allowed to use
goto's that would make the resulting code much cleaner, faster and easier to
maintain as does the Euphoria to C translator?

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

32. Re: voting on GOTO

Chris Bensler wrote:
> 
> What could you do with a goto that could not be done otherwise? 

Why does that matter?

If I recited e.e.cummings at the top of my voice, would it be a problem? While
having a shower - probably not. While in the train going to work - probably yes.

GOTO in personal use only code is not an issue for me.
GOTO in public domain code will probably have more bugs and cost too much to
maintain and so will probably die out.


> Rather than a vote, I'd suggest compiling and summarizing all
> the previous discussions on goto and put in an official feature
> request on sourceforge.

Be my guest.

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

33. Re: voting on GOTO

Larry Miller wrote:
> 
> As long term users of this forum will be well aware, Robert Craig was opposed
> to the introduction of goto into Euphoria. If this should ever happen I can
> imagine what his initial reaction might be:
> 
> "WHAT HAVE THEY DONE TO MY BABY?"

Almost ... here is his response ...

----------------------
I vote No.
 
I don't want to now have to spend a couple of seconds
scanning the source code for each routine (and top-level),
checking for possible GOTO's or labels, every time I pick up
someone else's Euphoria code. I like being absolutely safe
in the knowledge that there can't be any.
 
e.g. to understand the control flow of any large block of code
containing:
 
     .... dozens of lines of code, running more than one screen
     .... but are there any GOTO's or labels in here?
     .... I guess I now have to scan it all to be certain I understand
     .... the flow of control
 
e.g.
      while x do
           Hmmm. I *used to* understand the possible
           ways that control flow
           could exit out of a while loop, but ...
           (... any GOTO's or labels in here?)
          < big chunk of messy code >
      end while
 
      for i ... do
          <big chunk of code>
          any GOTO's ?
          any labels?
          can I even be sure the loop var has been initialized? No.
      end for
 
      if x then -- used to look straightforward, but now ...?
          <big chunk of code>
          any GOTO's?
          any labels?
      else
          <big chunk of code>
          any GOTO's?
          any labels?
      end if
 
The arrangement was, that the developers
would not release any major feature without the
regular EUforum participants hearing exactly
what the proposed change is, and having their chance to
vote yes/no. Many contented users pay little attention to
discussions on EUforum, until they hear that a
significant change, requiring their vote, is possibly coming.
 
Note: I am just casting one vote against.
If the majority of EUforum + developers
wants GOTO, then that's fine with me.
 
Other than Kat, it didn't sound like anyone
had any urgent personal desire to use GOTO,
they just philosophically believed in letting
the other guy use it if he wished.
 
The implementation of GOTO should not be too hard,
but you might want to check for any assumptions
that I may have made regarding optimizing basic blocks,
especially in the Translator.
 
There are lots of language "features" that could
be easily added. That does not mean they should be added.
The test, especially for core statements in the language,
should not be: Would this provide some convenience
to some user in some situation?
 
I realize that I will not be forced to ever personally use GOTO,
but I will be forced to be aware that other people's code,
that I am trying to understand, *might* contain a GOTO.
 
Once you add a new core language statement, and it starts being used,
it will be virtually impossible to ever remove it.
Someone will have to maintain it forever,
even if it complicates other, possibly better
features and internal optimizations that might come along.
 
Regards,
    Rob Craig
    Rapid Deployment Software
    http://www.RapidEuphoria.com
-------------------

new topic     » goto parent     » topic index » view message » categorize

34. Re: voting on GOTO

Matt Lewis wrote:
> 
> Chris Bensler wrote:
> > 
> > Perhaps a warning that can be toggled to indicate if goto has been used
> > would be handy. 
> 
> grep goto *.e*
> 

Exactly! 

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

35. Re: voting on GOTO

ChrisBurch3 wrote:
> 
> Hi
> 
> I thought Derek said it was already in.

I have been mis-quoted. I said it was being worked on. I never said it WAS in. I
was trying to get across the idea that it WILL BE in (unless  voted out).

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

36. Re: voting on GOTO

Chris Bensler wrote:

> 
> Language design should not be based purely on desire, there was alot of
> thought
> put into making Euphoria simplistic yet powerful and flexible. Those traits
> should be paramount.

Join the developers list and be a participant then. You don't have to code
anything but it will be easier to hear what's going on.

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

37. Re: voting on GOTO

> Chris Bensler wrote:
> > 
> > Language design should not be based purely on desire, there was alot of
> > thought
> > put into making Euphoria simplistic yet powerful and flexible. Those traits
> > should be paramount.
>

Indeed, join the dev list and you will see that the list was created May 17th
and for the month of may was 841 messages discussing language design, then
already for the month of June we are at 130 messages discussing language design.
These discussions are based on long term EUforum and sf.net requests. We are not
dreaming things up as we go on, but trying to solve existing problems that have
already been identified.

The devs on the list, and others who have helped contribute thoughts and ideas
on solutions *have* been working hard.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

38. Re: voting on GOTO

Abstain.  I'm fine with letting the super-delegates choose.  Whatever
Euphoria becomes, I can continue to use 2.5 or 3.

Is there a vision for Euphoria?  I believe Rob had one and developed it well.
It has also inspired and enhanced my own vision, for which I am thankful.

It is a joy to write algorithms using sequences.  Losing Rob's vision of a
simple powerful language is, although expected, disappointing.

As you all probably understand, my vision does not include GOTOs or other 
kitchen sink features.  I would only add benefits the language doesn't 
already have.  GOTO is not one of those, IMHO.

On the pro side, I will note that you can't really write the very best 
spaghetti using GOTO until you can forward reference a label.  Developers 
should have the liberty to protect their intellectual property by writing 
code that nobody in his right mind would touch.


"Science is the belief in the ignorance of experts." - Richard Feynman

new topic     » goto parent     » topic index » view message » categorize

39. Re: voting on GOTO

Jeremy Cowgar wrote:
> Indeed, join the dev list and you will see that the list was created May 17th
> and for the month of may was 841 messages discussing language design, then
> already
> for the month of June we are at 130 messages discussing language design. These
> discussions are based on long term EUforum and sf.net requests. We are not
> dreaming
> things up as we go on, but trying to solve existing problems that have already
> been identified.
> 
> The devs on the list, and others who have helped contribute thoughts and ideas
> on solutions *have* been working hard.

Jeremy:

Then where is a purpose list of features and a list of list of features

currently implemented ?

Most user's don't want to monitor 841 messages discussing language design;

they just want a summary of what is being added.

What happen to euwikwi updates.
 
Bernie

My files in archive:
WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

40. Re: voting on GOTO

Derek Parnell wrote:
> 
> ChrisBurch3 wrote:
> > 
> > Hi
> > 
> > I thought Derek said it was already in.
> 
> I have been mis-quoted. I said it was being worked on. I never said it WAS in.
> I was trying to get across the idea that it WILL BE in (unless  voted out).

That would have been me that said here that it was in, because i was told by the
guy who added it that it was in and working fine and passed tests. Do you want to
be the person who has him tear out all his code, wasting the time it took to
write it PLUS the time to tear it out, and delete it??

Kat

new topic     » goto parent     » topic index » view message » categorize

41. Re: voting on GOTO

Derek Parnell wrote:
> 
> if i recited e.e.cummings at 
>     the top of my 
>   voice would it be a problem? while
> having 
>     a shower - probably not. while 
> in the train going to work - probably
> yes.

FTFY.

Matt

new topic     » goto parent     » topic index » view message » categorize

42. Re: voting on GOTO

Bernie Ryan wrote:
>  
> Jeremy:
> 
> Then where is a purpose list of features and a list of list of features
> currently implemented ?
>

On the SF.net requests tracker, bug tracker as well as the current EUwiki (not
the new, as we have not switched to it yet).
 
> Most user's don't want to monitor 841 messages discussing language design;
> they just want a summary of what is being added.
> 

Exactly, that's why it was a dev list. I was just stating the fact that we *are*
discussing language design.

> What happen to euwikwi updates.

We have too much work and not enough workers.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

43. Re: voting on GOTO

ken mortenson wrote:
> 
> Abstain.  I'm fine with letting the super-delegates choose.  Whatever
> Euphoria becomes, I can continue to use 2.5 or 3.
> 
> Is there a vision for Euphoria?  I believe Rob had one and developed it well.
> It has also inspired and enhanced my own vision, for which I am thankful.
> 
> It is a joy to write algorithms using sequences.  Losing Rob's vision of a
> simple powerful language is, although expected, disappointing.

How much simpler can you get than "goto"? Is there a shorter word in another
language (like Spanish "va") that would be simple enough? You CAN still write
exactly the same code you have been writing. I can tell you that i have not yet
used one goto when coding in Euphoria, and you don't haveto in Eu v4 either.

Kat

new topic     » goto parent     » topic index » view message » categorize

44. Re: voting on GOTO

Matt Lewis wrote:
> 
> Derek Parnell wrote:
> > 
> > if i recited e.e.cummings at 
> >     the top of my 
> >   voice would it be a problem? while
> > having 
> >     a shower - probably not. while 
> > in the train going to work - probably
> > yes.
> 
> FTFY.

You removed Derek's shower from the trains?!?

Kar

new topic     » goto parent     » topic index » view message » categorize

45. Re: voting on GOTO

Derek Parnell wrote:
> 
> 
> Join the developers list and be a participant then. You don't have to code
> anything
> but it will be easier to hear what's going on.
> 

Thanks Derek, I may. I haven't had much time to participate in Eu.
You might regret the suggestion though. HA! :)


Jeremy Cowgar wrote:
> 
> Indeed, join the dev list and you will see that the list was created May 17th
> and for the month of may was 841 messages discussing language design, then
> already
> for the month of June we are at 130 messages discussing language design. These
> discussions are based on long term EUforum and sf.net requests. We are not
> dreaming
> things up as we go on, but trying to solve existing problems that have already
> been identified.
> 
> The devs on the list, and others who have helped contribute thoughts and ideas
> on solutions *have* been working hard.
> 
> --
> Jeremy Cowgar
> <a href="http://jeremy.cowgar.com">http://jeremy.cowgar.com</a>

Sorry Jeremy, I didn't mean to undermine your efforts. I'm sure you guys aren't
just drawing straws to determine what to twiddle next and I know you are all very
capable. I was just expressing a point of view for the general audience, my
reason to vote no eventhough I haven't any real opinion about the usefulness of a
goto statement, not a mandate or accusation.

To paraphrase some wise words from Ray Smith that I finally accepted, no tool is
meant for every job.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

46. Re: voting on GOTO

Kat wrote:
> 
> ken mortenson wrote:
> > It is a joy to write algorithms using sequences.  Losing Rob's vision of a
> > simple powerful language is, although expected, disappointing.
> 
> How much simpler can you get than "goto"? Is there a shorter word in another
> language (like Spanish "va") that would be simple enough? You CAN still write
> exactly the same code you have been writing. I can tell you that i have not
> yet used one goto when coding in Euphoria, and you don't haveto in Eu v4
> either.

Not having something might be simpler than having it (you can't get any
shorter than zero letters, although that is not the criteria I'm using.)

As Derek has repeatedly said, paraphrased... what you do in the privacy 
of your own code is your business.

Think of art.  Working with constraints and exercising discipline often 
leads to beauty.  Throwing globs of paint at a canvas is less compelling 
to me.  You may or may not get the analogy, but for those that do it is
profound.  At least, I find it so.


"Science is the belief in the ignorance of experts." - Richard Feynman

new topic     » goto parent     » topic index » view message » categorize

47. Re: voting on GOTO

Derek Parnell wrote:
> 
> Chris Bensler wrote:
> > 
> > What could you do with a goto that could not be done otherwise? 
> 
> Why does that matter?
> 
> If I recited e.e.cummings at the top of my voice, would it be a problem? While
> having a shower - probably not. While in the train going to work - probably
> yes.
> 
> GOTO in personal use only code is not an issue for me.
> GOTO in public domain code will probably have more bugs and cost too much to
> maintain and so will probably die out.
> 
> 
> > Rather than a vote, I'd suggest compiling and summarizing all
> > the previous discussions on goto and put in an official feature
> > request on sourceforge.
> 
> Be my guest.
> 
> -- 
> Derek Parnell
> Melbourne, Australia
> Skype name: derek.j.parnell

It matters for justification. Would you buy a car if you know you are only going
to use it one day in a year and you could just take the bus or a taxi, or even
rent a car and it would still be more economical? What if you don't even know
what you might need a car for but someone just says you have to have a car in
case you might need it someday?

.. if you were singing badly and I was your neighbour it might be a problem :D

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

48. Re: voting on GOTO

Chris Bensler wrote:
>  
> It matters for justification. Would you buy a car if you know you are only
> going
> to use it one day in a year and you could just take the bus or a taxi, or even
> rent a car and it would still be more economical? What if you don't even know
> what you might need a car for but someone just says you have to have a car in
> case you might need it someday?
> 
> .. if you were singing badly and I was your neighbour it might be a problem
> :D
> 

Chris,

One could say:

Would you accept a free Lamborgini, all expenses paid, insurance and all as well
as a place to store it and a whistle that when you blow it, the car will come to
you in an instant when you need it? Even though you have a car already that you
can still use or even take the bus if you wish?

Such is goto. It comes for free, no expenses what-so-ever. It will be out of
your way, but one day if you want to use it, it's there in an instant.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

49. Re: voting on GOTO

I abstain

new topic     » goto parent     » topic index » view message » categorize

50. Re: voting on GOTO

Jim Brown wrote:
> 
> It is possible to check if a variable is uninitialized. The recommended way
> to deal with for loops is, if you must jump into a for loop, check if the
> variable
> is uninitialized and jump to a label that is right before the the beginning
> of the for loop statement to continue iteration.
> Jumping into for loops is discouraged, however.

That sounds scary.  But I vote yes, I'll just probably never use a goto. It may
have unforseen benefits and the problems are well known (and therefore
avoidable).

Gary

new topic     » goto parent     » topic index » view message » categorize

51. Re: voting on GOTO

Kat wrote:
 
> That would have been me that said here that it was in, because i was
> told by the guy who added it that it was in and working fine and
> passed tests. 

That's okay. There is probably a misunderstanding about what "in" means. I was
referring to the concept of "in" being that the code is merged into the main
respository and is now accepted as part of the language. That 'guy' probably
meant that in his personal copy of the code base, it works but he hasn't merged
that into the main trunk yet on any permentant basis.

> Do you want to be the person who has him tear out all his code,
> wasting the time it took to write it PLUS the time to tear it out,
> and delete it??

Ahhhh... the joys of source code control systems. Actually, reverting back is
very easy to do.

All of the people that are updating Euphoria accept that some of their efforts
will not see the light of day, for a variety of reasons. That's part of the deal.
For example, I spent a day and half replacing a perfectly good hash table
implementation with what I thought was some pretty slick enhancements. It turned
out though that my version ran five times slower than the original. Ouch! I spent
another day tweaking my code but still couldn't match the original. So I 'tore
out' my code (reverted back to the original). Shit happens - oh well.

The point is that we will write some code for review and experimentation,
knowing full well that it might be a dead end. So just because it's in does
always mean that it's "in".

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

52. Re: voting on GOTO

Jeremy Cowgar wrote:
> 
> Chris Bensler wrote:
> >  
> > It matters for justification. Would you buy a car if you know you are only
> > going
> > to use it one day in a year and you could just take the bus or a taxi, or
> > even
> > rent a car and it would still be more economical? What if you don't even
> > know
> > what you might need a car for but someone just says you have to have a car
> > in
> > case you might need it someday?
> > 
> > .. if you were singing badly and I was your neighbour it might be a problem
> > :D
> > 
> 
> Chris,
> 
> One could say:
> 
> Would you accept a free Lamborgini, all expenses paid, insurance and all as
> well as a place to store it and a whistle that when you blow it, the car will
> come to you in an instant when you need it? Even though you have a car already
> that you can still use or even take the bus if you wish?
> 
> Such is goto. It comes for free, no expenses what-so-ever. It will be out of
> your way, but one day if you want to use it, it's there in an instant.
> 
> --
> Jeremy Cowgar
> <a href="http://jeremy.cowgar.com">http://jeremy.cowgar.com</a>

See, this is a place where I get to prove my sitting on the fence
for the moment.

GOTO is not a car the comes for free.  Others, may and will, use goto
in their future code.  This means it takes up space.  Meaning it may
get in the way of some peoples progress.  Its existance may or may
not slow down the interpreter.  Much of that is determined based
upon placemnet and structure.  And of course placemnet and structure
is dictated by what previously existed and must be displaced to
allow fot the injection of GOTO into the language.

    Lucius L. Hilley III - Unkmar

new topic     » goto parent     » topic index » view message » categorize

53. Re: voting on GOTO

Lucius L. Hilley III wrote:
>  
> See, this is a place where I get to prove my sitting on the fence
> for the moment.
> 
> GOTO is not a car the comes for free.  Others, may and will, use goto
> in their future code.  This means it takes up space.  Meaning it may
> get in the way of some peoples progress.  Its existance may or may
> not slow down the interpreter.  Much of that is determined based
> upon placemnet and structure.  And of course placemnet and structure
> is dictated by what previously existed and must be displaced to
> allow fot the injection of GOTO into the language.
> 

Maybe some of this needs clearing...

#1 Goto has been developed and tested.
#2 Goto does not slow down any existing benchmark. Pre-goto and Post-goto code
runs *exactly* the same
#3 The added code for goto is tiny. Once all figured out, it is very little
code.

I am unsure of what you mean by getting in the way of some peoples progress.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

54. Re: voting on GOTO

Jeremy Cowgar wrote:

> Such is goto. It comes for free, no expenses what-so-ever. It will be out of
> your way, but one day if you want to use it, it's there in an instant.

There is a cost.  It comes when you share code.  If code never required 
maintenance (how often is that true?) perhaps you could make a case.

If your code is kept private, the cost is still there but you bare it alone 
and may not even notice it.

"Science is the belief in the ignorance of experts." - Richard Feynman

new topic     » goto parent     » topic index » view message » categorize

55. Re: voting on GOTO

ken mortenson wrote:
> 
> Jeremy Cowgar wrote:
> 
> > Such is goto. It comes for free, no expenses what-so-ever. It will be out of
> > your way, but one day if you want to use it, it's there in an instant.
> 
> There is a cost.  It comes when you share code.  If code never required 
> maintenance (how often is that true?) perhaps you could make a case.
> 
> If your code is kept private, the cost is still there but you bare it alone
> and may not even notice it.
> 

This is true *only* if you think every instance of goto is evil. I do not think
anyone would claim *every* use of goto is evil.

I maintain that you can write terrible code with while as well as goto. You can
write beautiful code with while as well as goto.

The choice is yours. I also maintain that in some instances, goto can be more
effective than and clearer than a while loop, thus making maintenance costs less.

Can you write terrible code with goto? Sure! Can you write terrible code with
while? Sure! Can you write terrible code with an if statement? Sure! What kind of
coder are you? A terrible code writer? You can bet I will not use your library. A
professional coder who cares about speed, beauty and maintenance costs? You can
bet I will use your library regardless of the language constructs you use.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

56. Re: voting on GOTO

Kat wrote:
> 
>.... [15:48] <katsmeow-afk> that has GOT to be posted on euphorum
> [15:49] <katsmeow-afk> mind if i quote?
> [15:49] <katsmeow-afk> or do you wanna do it?
> [15:49] <iamlost> katsmeow-afk: please, go ahead :)
> 
> Kat

That just proves you have some way of typing without a keyboard.

new topic     » goto parent     » topic index » view message » categorize

57. Re: voting on GOTO

Jeremy Cowgar wrote:
> 
> Lucius L. Hilley III wrote:
> >  
> > See, this is a place where I get to prove my sitting on the fence
> > for the moment.
> > 
> > GOTO is not a car the comes for free.  Others, may and will, use goto
> > in their future code.  This means it takes up space.  Meaning it may
> > get in the way of some peoples progress.  Its existance may or may
> > not slow down the interpreter.  Much of that is determined based
> > upon placemnet and structure.  And of course placemnet and structure
> > is dictated by what previously existed and must be displaced to
> > allow fot the injection of GOTO into the language.
> > 
> 
> Maybe some of this needs clearing...
> 
> #1 Goto has been developed and tested.
> #2 Goto does not slow down any existing benchmark. Pre-goto and Post-goto code
> runs *exactly* the same
> #3 The added code for goto is tiny. Once all figured out, it is very little
> code.
> 
> I am unsure of what you mean by getting in the way of some peoples progress.
> 
> --
> Jeremy Cowgar
> <a href="http://jeremy.cowgar.com">http://jeremy.cowgar.com</a>

Mister_xyz writes a magic_lib that uses goto.
Mister_xyz leaves the euphoria scene.
Later somebody discovers that magic_lib has bugs.
OR Somebody decides to add some super_magic to the lib.
Mister_xyz used goto's really badly.
Somebody has such a hard time adding to the magic_lib
that he:

1) Doesn't understand how it works and gives up.
2) Understands enough to simply reverse engineer and
   rewrite the code his own way.  Then add his
   super_magic.

    Lucius L. Hilley III - Unkmar

new topic     » goto parent     » topic index » view message » categorize

58. Re: voting on GOTO

gshingles wrote:
> 
> Jim Brown wrote:
> > 
> > It is possible to check if a variable is uninitialized. The recommended way
> > to deal with for loops is, if you must jump into a for loop, check if the
> > variable
> > is uninitialized and jump to a label that is right before the the beginning
> > of the for loop statement to continue iteration.
> > Jumping into for loops is discouraged, however.
> 
> That sounds scary.  But I vote yes, I'll just probably never use a goto. It
> may have unforseen benefits and the problems are well known (and therefore
> avoidable).

It's not really as scary as it sounds.  You could get a similar situation
in this case:
integer x
if foo then
    x = 1
end if
? x

In other words, you can't use uninitialized variables, and since a loop
variable is initialized at the for statement...

Matt

new topic     » goto parent     » topic index » view message » categorize

59. Re: voting on GOTO

Lucius L. Hilley III wrote:
> 
> Mister_xyz writes a magic_lib that uses goto.
> Mister_xyz leaves the euphoria scene.
> Later somebody discovers that magic_lib has bugs.
> OR Somebody decides to add some super_magic to the lib.
> Mister_xyz used goto's really badly.
> Somebody has such a hard time adding to the magic_lib
> that he:
> 
> 1) Doesn't understand how it works and gives up.
> 2) Understands enough to simply reverse engineer and
>    rewrite the code his own way.  Then add his
>    super_magic.
> 

In previous posts I think I have explained why this is nothing to be afraid of.
The reason is simple. You can write bad goto code. You can write bad while code.
If you write bad goto code then you're not the type of person who will write good
while code. Your while code will be bad too. Thus, regardless if goto exists or
not, if magic_lib is coded poorly, tough luck.

In fact, when I use a library, I may not read every line, but I scan the library
code. If it's poorly coded then I will not use it. That's pre-goto or post-goto.
A bad library is not at all required on the existence of goto. Right now there
are horrible libraries in the archive that I wouldn't touch w/a ten foot pole,
and none of those have goto. (clarification, the vast amount of libraries in the
archive are great).

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

60. Re: voting on GOTO

Jeremy Cowgar wrote:

> This is true *only* if you think every instance of goto is evil. I do not
> think
> anyone would claim *every* use of goto is evil.

The nature of good and evil and gotos places therein is beyond the scope of 
my expressed thoughts.  I am merely saying that there is a cost.  I think 
it's important for understanding the issue to recognize that cost.  I'm not 
saying the cost is too great a price to pay (that's a judgement.)  But if 
you don't recognize the cost it undermines any other argument you can make.

> I maintain that you can write terrible code with while as well as goto. You
> can write beautiful code with while as well as goto.

We agree completely on this point.

new topic     » goto parent     » topic index » view message » categorize

61. Re: voting on GOTO

Lucius L. Hilley III wrote:
> 
> Jeremy Cowgar wrote:
> > 
> > I am unsure of what you mean by getting in the way of some peoples progress.
> > 
> Mister_xyz writes a magic_lib that uses goto.
> Mister_xyz leaves the euphoria scene.
> Later somebody discovers that magic_lib has bugs.
> OR Somebody decides to add some super_magic to the lib.
> Mister_xyz used goto's really badly.
> Somebody has such a hard time adding to the magic_lib
> that he:
> 
> 1) Doesn't understand how it works and gives up.
> 2) Understands enough to simply reverse engineer and
>    rewrite the code his own way.  Then add his
>    super_magic.

This is true, but is independent of goto.  Even if well written, it can
be difficult to get in and grok your own code after a few months, let alone
someone else's.

Not that it's a paragon of great coding, but I can tell you that eusql (which
I'd say is probably the most complex bit of code I've released publicly)
would be a nightmare for someone else to step in and maintain.  Or consider
the front end for euphoria itself.  That's some difficult code to get into.

#2 also often happens because of NIH syndrome, which we as coders are all too 
susceptible to.  And which is also not necessarily unrelated to my previous
point.

Matt

new topic     » goto parent     » topic index » view message » categorize

62. Re: voting on GOTO

Matt Lewis wrote:
> 
> gshingles wrote:
> > 
> > Jim Brown wrote:
> > > 
> > > It is possible to check if a variable is uninitialized. The recommended
> > > way
> > > to deal with for loops is, if you must jump into a for loop, check if the
> > > variable
> > > is uninitialized and jump to a label that is right before the the
> > > beginning
> > > of the for loop statement to continue iteration.
> > > Jumping into for loops is discouraged, however.
> > 
> > That sounds scary.  But I vote yes, I'll just probably never use a goto. It
> > may have unforseen benefits and the problems are well known (and therefore
> > avoidable).
> 
> It's not really as scary as it sounds.  You could get a similar situation
> in this case:
> }}}
<eucode>
> integer x
> if foo then
>     x = 1
> end if
> ? x
> </eucode>
{{{

> In other words, you can't use uninitialized variables, and since a loop
> variable is initialized at the for statement...
> 
> Matt

yeah, I have run into that.

Forces you to choose.

integer x
if foo then
    x = 1
else     -- 2 more lines, Choose a direction.
   x = 0
end if
? x

--OR
integer x
x = 0 -- 1 line, Initial defaul value, May be overwritten very shortly.
if foo then
    x = 1
end if
? x


    Lucius L. Hilley III - Unkmar

new topic     » goto parent     » topic index » view message » categorize

63. Re: voting on GOTO

Jeremy Cowgar wrote:
> 
> Chris Bensler wrote:
> >  
> > It matters for justification. Would you buy a car if you know you are only
> > going
> > to use it one day in a year and you could just take the bus or a taxi, or
> > even
> > rent a car and it would still be more economical? What if you don't even
> > know
> > what you might need a car for but someone just says you have to have a car
> > in
> > case you might need it someday?
> > 
> > .. if you were singing badly and I was your neighbour it might be a problem
> > :D
> > 
> 
> Chris,
> 
> One could say:
> 
> Would you accept a free Lamborgini, all expenses paid, insurance and all as
> well as a place to store it and a whistle that when you blow it, the car will
> come to you in an instant when you need it? Even though you have a car already
> that you can still use or even take the bus if you wish?
> 
> Such is goto. It comes for free, no expenses what-so-ever. It will be out of
> your way, but one day if you want to use it, it's there in an instant.
> 

But it's not free, there is hidden fees. In the form of confusion, uncertainty
and maintenance overhead of the language. As Rob pointed out, it may end up
hindering future language developments which are far more beneficial to all of
us.

What if you've already given me several cars that I never use? Now everytime I
want to use the car that I actually drive, I have to move the others out of the
way first.

As I said, it doesn't really matter to me either way if there is goto, but since
it doesn't matter to me and I don't see any need for it, I'd rather vote no and
be safe instead of sorry.

I don't see goto as a 'need', I see it as a 'want' and only by a small minority
really.

Aside from some convenience and the rare occasion that goto is actually more
practical, the only real justification I've seen for implementing goto is for
porting code from other languages to Eu, and for low-level optimization. Eu is
not low-level however.

The goto discussions always remind me of a debate over whether or not a glass is
half full or half empty. On one hand there is the people who say 'why implement
it?' and on the other is the people who say 'why not?' and that is about the
extent of the validity of the debate.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

64. Re: voting on GOTO

Chris Bensler wrote:
> 
> But it's not free, there is hidden fees. In the form of confusion, uncertainty
> and maintenance overhead of the language.

I think I have already stated that form of confusion, uncertainty is not
dependent on goto. It can come in the form of while, for, too many functions, too
little functions, even the include statement can make for some really waco code
that no one under the sun would want to maintain.

About maintenance overhead of the language. That's just about nil. Rob himself
also said goto would be very easy to add. Code that has already been added hasn't
been touched for a long time.

The argument that goto costs is not valid, at least it's not any more valid that
while costs as well as for, if, else, function, procedure, include, etc...

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

65. Re: voting on GOTO

Jeremy Cowgar wrote:
> The argument that goto costs is not valid, at least it's not any more valid
> that while costs as well as for, if, else, function, procedure, include,
> etc...

So you are saying that the costs are equal.  Your support for this is that
good and bad code can be written regardless of what you use.

While your supporting argument is true it is not the whole story.  The costs
are not equal.  A point which has already been made by many on this forum.
  
Labels are not equivalent to the start of a structure.  While can only be
the first instruction or entered from a preceding instruction.  Labels add
cost because they can be ENTERED FROM ANYWHERE in the current scope.

ENTERED FROM ANYWHERE is an additional cost beyond the equivalent costs that
goto and while share.  The more complicated your code the more significant
this cost becomes.  Jeremy, as long as you ignore this cost, you can not
make a valid argument.  Your argument must include this cost to be valid.

> About maintenance overhead of the language. That's just about nil. Rob himself
> also said goto would be very easy to add. Code that has already been added
> hasn't
> been touched for a long time.

So maintenance cost is almost nil and Rob knows that.  So his reason for
not wanting it in the language should be given some serious weight.

"Science is the belief in the ignorance of experts." - Richard Feynman

new topic     » goto parent     » topic index » view message » categorize

66. Re: voting on GOTO

ken mortenson wrote:
>   
> Labels are not equivalent to the start of a structure.  While can only be
> the first instruction or entered from a preceding instruction.  Labels add
> cost because they can be ENTERED FROM ANYWHERE in the current scope.
> 

This totally depends on how you code. The few times I've used goto in C, the
number of entry points was exactly one. Sure, get sloppy and enter from a
thousand points, whoa! Look out, that's code that is probably easier to analyze
the problem from scratch and rewrite w/o even becoming corrupted with the twisted
mess that was originally created.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

67. Re: voting on GOTO

Jeremy Cowgar wrote:
> 
> ken mortenson wrote:
> >   
> > Labels are not equivalent to the start of a structure.  While can only be
> > the first instruction or entered from a preceding instruction.  Labels add
> > cost because they can be ENTERED FROM ANYWHERE in the current scope.
> > 
> 
> This totally depends on how you code. The few times I've used goto in C, the
> number of entry points was exactly one. Sure, get sloppy and enter from a
> thousand
> points, whoa! Look out, that's code that is probably easier to analyze the
> problem
> from scratch and rewrite w/o even becoming corrupted with the twisted mess
> that
> was originally created.

"This totally depends on how you code."

This sure sounds like a true statement.  Is it?  If I know Jeremy well I
know that he writes solid code and would never create uncertainty for me
as a maintenance programmer.  Now I find a label in Jeremy's code.

Is this label the beginning of a structure?  I don't know.  That's
uncertainty.  That's a potential cost.  Does the fact that I know Jeremy
to be a great programmer have any effect on my uncertainty.  Nope.

The best Jeremy can do, by writing the best code Jeremy knows how, is to
reduce my uncertainty, but never eliminate it.

Now, Ken is a really bad programmer.  He never uses while or for or any
of that unneeded crap because he can do it all with goto.  It's a good
thing this language gives me goto's or ken would never be able to share
his crappy code with anyone (and wouldn't that be a loss!)

Ken uses labels as subroutines.  He has switches everywhere to tell him
where he's been so he knows where to go next.  He writes impressively
complex code that only he is smart enough to maintain... for a while.

Klugnuts from the planet luvs_chaos writes bad structured code that Jeremy
has to maintain.  He comes to a while loop.  He knows exactly how he
got there with no uncertainty because this language doesn't have goto or
any of it's equivalents.  Jeremy fixes the code and gets his choice of
love slave from the planet luvs_chaos as a reward.

"Science is the belief in the ignorance of experts." - Richard Feynman

new topic     » goto parent     » topic index » view message » categorize

68. Re: voting on GOTO

Jeremy Cowgar wrote:
> 
> ken mortenson wrote:
> >   
> > Labels are not equivalent to the start of a structure.  While can only be
> > the first instruction or entered from a preceding instruction.  Labels add
> > cost because they can be ENTERED FROM ANYWHERE in the current scope.
> > 
> 
> This totally depends on how you code. The few times I've used goto in C, the
> number of entry points was exactly one. Sure, get sloppy and enter from a
> thousand
> points, whoa! Look out, that's code that is probably easier to analyze the
> problem
> from scratch and rewrite w/o even becoming corrupted with the twisted mess
> that
> was originally created.
> 
> --
> Jeremy Cowgar
> <a href="http://jeremy.cowgar.com">http://jeremy.cowgar.com</a>

Seriously, this sounds as though goto should be implemented *just in case*
someone might find a good use for it at some point in the future. What are the
cases where it would actually be practical to use goto in Euphoria? Is it
seriously worth increasing the language footprint for the sake of a blue moon?

I've been using Euphoria for just about 10 years now and have never even had the
desire for a goto statement, let alone a need for it. And I have experience with
it, none bad either.

I do not deny that it can be useful, but for the rare occasion when it is, is it
really that unsurmountable to get around it, even if it does mean messier code
and some lateral thinking?

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

69. Re: voting on GOTO

Bernie Ryan wrote:
> 
> Jim Brown wrote:
> > 
> > Ok, so here is the official voting thread for the proposal on goto and
> > label.
> >  > 
> I vote No; would rather see forward reference instead of goto.
> 
> Bernie
> 

My vote is 'no' for goto.

Salix

new topic     » goto parent     » topic index » view message » categorize

70. Re: voting on GOTO

My vote is yes.  And for the entire dicussion that chains back all the way to
several hundred posts about Sequences, Goto, Namespacing, Using . or :, or
anything else that has been discussed in recent weeks  (Yeah, I've been really
lurking).

I've finally gotta come out and make a big noise, that a lot of abrasive people
may get very "offended" by, as in the past with others.  To bad, get over it. 
Your one programmer among millions.  You claim to be abrasive, and very few
people understand that.  Heh, I know it all to well.  I don't take "no" for an
answer when I know something can be done.  Anyone who knows me from when I was
working with Jason Mirwald, on Shared Memory library, can confirm this.

When you add any feature to a language, it's a miss blessing.  It can be a
benifit that many people find useful, or very very few people find useful. 
There's always arguments over which will be best, and which won't.  There will be
arguments over how it is used.  And guess what, in the earlier days of Euphoria,
there were a lot of arguments over how certian stuff was being implemented, and
how things were being written.  Aside from the Win32 Development team, how many
people actually look at the Win32lib source files?  I know David Cuny started the
project, and Matthew Walker worked on it, and Derek Parnell worked on it to.

Don't know how many are working on it now, but if you actually sat there, and
looked at the library code, you'd think it's an entire mess.  Does that prevent
you from using it?  No.  There was a time, when Win32lib wouldn't return you the
actual HWND Generated by the creation of the control.  All you would get is the
id, and you had to be happy with that.  That's why there was so many people that
worked on other libraries, or did their own custom work on creating a new library
to do exactly what Win32lib did.  That's happened quite a bit with libraries in
Euphoria.  It's no different with GOTO.

And the abrasiveness to implementing OOP on the Interpreter level, is
unbelivable.  Honestly people.  OOP exists in Euphoria, on so many different
levels, it's not funny.  Searching for OOP in the archives alone, turns up 10
entries.  And let us not forget, that's just OOP Specific Libraries, and one
modified Euphoria Interpreter to handle OOP Specifically.  You may also over look
Graphical User Interfaces.  GUI's are the ultimate OOP Example, that is often
overlooked.  No matter how you look at it, you create a Window, which is a single
class, that has many functions that can be used on it, a PushButton has the same
functions that you can use on it, that you could use on a Window.

Oh, but it gets better, Sequences.  The ultimate in Object Oriented Programming.
 Sequences store data, but you have many functions in which to deal with them,
append, length, slice, delete, etc, etc, etc.  You can look at it any way you
want to, some form of Object Oriented Programming exists in Euphoria, there's
just the detail of making it more easy to use.  Instead of writting
length(my_complicated_sequence), you do my_complicated_sequence.length() or
whatever the "delimiter" is to determin that we're accessing a function or method
on the object.

One thing I've learned, as many people have said, there are many tools in which
to do many things.  Which is very true.  I still use Ruby to do a lot of things,
but I came back to Euphoria, cause I needed a easy to distribute, easy to setup
program, that didn't need a 15 meg overhead for the GUI Library.  So I use
Euphoria every now and then, and pay attention to the EuForum.  But the utter
nonsense that goes on here, with people complaining about features being added or
not being added.  If your going to use it, great, if it's not going to interfear
with your program.  Great.

Honestly, as Jeremy has stated time and time again in all of these discussions,
if it's going to be used, great, if it's not, it's not going to matter.  So a
library uses GOTO.  Honestly, if you was truely, without any doubt in your mind,
going to use that library to get your task done, you wouldn't worry so much about
the fact that there is GOTO in it, or how it's coded.  If you even had 1 single
reservation about using the library, then you wouldn't even bother messing with
it in the first place, and either code your own, or find another library that may
do what you want.

Guess what, that's programming.  You either use a library, a DLL, or an
Algorithim if you like it or not.  That's why there are so many user
contributions for so many different libraries, that do the same thing. 
Sequences, Strings, OOP, GUI's.  If your so abstained against a new feature that
could be benefitial, just because you don't want to use it, then don't use it. 
Don't use any libraries that use it.  Write your own library to handle what you
need, that doesn't incorperate Goto, or any other feature that may be added.  Go
back to Euphoria 2.0.  Cause progress will be made, some will be good ideas, some
will be bad ideas.  That's human nature, with whatever you do.

Grow up, and learn to deal with things as they come.

Mario Steele
http://enchantedblade.trilake.net
Attaining World Dominiation, one byte at a time...

new topic     » goto parent     » topic index » view message » categorize

71. Re: voting on GOTO

I vote 'yes'.

I haven't had use for GOTO since the days of basic 'coding' on the C64.
Personally, I hate GOTO; mainly for the same 'against' arguments stated earlier
in this 'poll'.

If the implementation of GOTO doesn't have any negative impact, why not? We have
to accept the fact that there are coders with different programming styles and
preferences, and if they choose to use that statement, let them.

Kenneth / ZNorQ

new topic     » goto parent     » topic index » view message » categorize

72. Re: voting on GOTO

ZNorQ wrote:
> ... any negative *PERFORMANCE* impact...

Kenneth / ZNorQ

new topic     » goto parent     » topic index » view message » categorize

73. Re: voting on GOTO

Chris Bensler wrote:
> 
> Jeremy Cowgar wrote:
> > 
> > ken mortenson wrote:
> > >   
> > > Labels are not equivalent to the start of a structure.  While can only be
> > > the first instruction or entered from a preceding instruction.  Labels add
> > > cost because they can be ENTERED FROM ANYWHERE in the current scope.
> > > 
> > 
> > This totally depends on how you code. The few times I've used goto in C, the
> > number of entry points was exactly one. Sure, get sloppy and enter from a
> > thousand
> > points, whoa! Look out, that's code that is probably easier to analyze the
> > problem
> > from scratch and rewrite w/o even becoming corrupted with the twisted mess
> > that
> > was originally created.
> > 
> > --
> > Jeremy Cowgar
> > <a href="http://jeremy.cowgar.com">http://jeremy.cowgar.com</a>
> 
> Seriously, this sounds as though goto should be implemented *just in case*
> someone
> might find a good use for it at some point in the future. What are the cases
> where it would actually be practical to use goto in Euphoria? Is it seriously
> worth increasing the language footprint for the sake of a blue moon?
> 
> I've been using Euphoria for just about 10 years now and have never even had
> the desire for a goto statement, let alone a need for it. And I have
> experience
> with it, none bad either.
> 
> I do not deny that it can be useful, but for the rare occasion when it is, is
> it really that unsurmountable to get around it, even if it does mean messier
> code and some lateral thinking?
> 
> Chris Bensler
> Code is Alchemy

Heh, Chris, I remember a time, when you believed Euphoria's Memory Management
libraries we no where near what it needed to be.  So you wrote your own memory
routines.  Were they absolutely nesscary?

allocate_string()  = allocate(length(string)+1) poke(mem,string,length(string))

You created the library, was it absolutely nesscary, just on the off chance that
someone else would find it useful?  That it, as you said, "might be implemented"
?

Mario Steele
http://enchantedblade.trilake.net
Attaining World Dominiation, one byte at a time...

new topic     » goto parent     » topic index » view message » categorize

74. Re: voting on GOTO

My vote is no.  GOTO would create spaghetti code.

new topic     » goto parent     » topic index » view message » categorize

75. Re: voting on GOTO

Lucius L. Hilley III wrote:
> 
> Jeremy Cowgar wrote:
> > 
> > Lucius L. Hilley III wrote:
> > >  
> > > See, this is a place where I get to prove my sitting on the fence
> > > for the moment.
> > > 
> > > GOTO is not a car the comes for free.  Others, may and will, use goto
> > > in their future code.  This means it takes up space.  Meaning it may
> > > get in the way of some peoples progress.  Its existance may or may
> > > not slow down the interpreter.  Much of that is determined based
> > > upon placemnet and structure.  And of course placemnet and structure
> > > is dictated by what previously existed and must be displaced to
> > > allow fot the injection of GOTO into the language.
> > > 
> > 
> > Maybe some of this needs clearing...
> > 
> > #1 Goto has been developed and tested.
> > #2 Goto does not slow down any existing benchmark. Pre-goto and Post-goto
> > code
> > runs *exactly* the same
> > #3 The added code for goto is tiny. Once all figured out, it is very little
> > code.
> > 
> > I am unsure of what you mean by getting in the way of some peoples progress.
> > 
> > --
> > Jeremy Cowgar
> > <a href="http://jeremy.cowgar.com">http://jeremy.cowgar.com</a>
> 
> Mister_xyz writes a magic_lib that uses goto.
> Mister_xyz leaves the euphoria scene.
> Later somebody discovers that magic_lib has bugs.
> OR Somebody decides to add some super_magic to the lib.
> Mister_xyz used goto's really badly.
> Somebody has such a hard time adding to the magic_lib
> that he:
> 

Fir starters, bugs were found in magic_lib, but adding to it is still being
considered. So the code must not be tht bad. I doubt it could if goto had been
used unwisely.

> 1) Doesn't understand how it works and gives up.

This could happen for a variety of reasons completely unrelated to goto. 

> 2) Understands enough to simply reverse engineer and
>    rewrite the code his own way.  Then add his
>    super_magic.

That's his call. If he catches mice, who cares about the color of that cat?

> 
>     Lucius L. Hilley III - Unkmar

For all the above, I think this scenario is very unrealistic.

CChris

new topic     » goto parent     » topic index » view message » categorize

76. Re: voting on GOTO

Heh, honestly you probably shouldn't have asked for comments smile (Or at least to
keep comments in a separate thread).

But how long is the voting going to remain open? One week? What's the tally so
far?

--
A complex system that works is invariably found to have evolved from a simple
system that works.
--John Gall's 15th law of Systemantics.

"Premature optimization is the root of all evil in programming."
--C.A.R. Hoare

j.

new topic     » goto parent     » topic index » view message » categorize

77. Re: voting on GOTO

Jason Gade wrote:
> 
> Heh, honestly you probably shouldn't have asked for comments smile
> (Or at least to keep comments in a separate thread).

Yes, well, I never said I was a smart guy. :)

> 
> But how long is the voting going to remain open? One week? What's the tally
> so far?

So far, 13 in favor of GOTO, 6 against, 3 formally abstaining.

Of that, from the dev list, 7 voted in favor, 1 against, 1 formally abstaining.

I think we should wait until at least 19:00 UTC. After that, we can consider the
poll closed.

> 
> --
> A complex system that works is invariably found to have evolved from a simple
> system that works.
> --John Gall's 15th law of Systemantics.
> 
> "Premature optimization is the root of all evil in programming."
> --C.A.R. Hoare
> 
> j.

new topic     » goto parent     » topic index » view message » categorize

78. Re: voting on GOTO

I vote NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. Explicitly NO, and
once moreover, NO! GOTO, in any form, breaks the inherently logical "flow" of
*all* programming (especially Euphoria, with its top-down methodology). I don't
care if it's been implemented and tested, taken around the block, and fed to the
dog. To quote my cat Sasha, "DO NOT WANT."

One may argue, "but Greg, you don't *have* to use goto, only those who need it
will use it!" WRONG! You. Don't. Need. GOTO. Not now, not ever. If you need GOTO,
then you're doing it wrong. Go back and re-think the layout of your code. If it
actually flows in a logical and coherent manner, then GOTO is irrelevant. I'm a
firm believer that GOTO was invented by sloppy programmers, for sloppy
programmers.

-Greg


P.S. See my other anti-GOTO posts here:
http://www.openeuphoria.org/cgi-bin/esearch.exu?fromMonth=1&fromYear=1&toMonth=6&toYear=D&postedBy=Greg+Haberek&keywords=GOTO

new topic     » goto parent     » topic index » view message » categorize

79. Re: voting on GOTO

Greg Haberek wrote:
> 
> 
> I vote NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. Explicitly NO, and
> once moreover, NO! GOTO, in any form, breaks the inherently logical "flow" of
> *all* programming (especially Euphoria, with its top-down methodology).
Sorry, I disagree.

> I don't
> care if it's been implemented and tested, taken around the block, and fed to
> the dog. To quote my cat Sasha, "DO NOT WANT."
> 
> One may argue, "but Greg, you don't *have* to use goto, only those who need
> it will use it!" WRONG! You. Don't. Need. GOTO. Not now, not ever. If you need
> GOTO, then you're doing it wrong. Go back and re-think the layout of your
> code.
Sorry, I disagree.

> If it actually flows in a logical and coherent manner, then GOTO is
> irrelevant.
> I'm a firm believer that GOTO was invented by sloppy programmers, for sloppy
> programmers.
Sorry, I disagree.

> 
> -Greg

As I already said, IMHO, in some situations, GOTO can be the best tool regarding
speed, elegance, simplicity and maintenance. I agree with Jeremy about this
subject.
- Fernando

new topic     » goto parent     » topic index » view message » categorize

80. Re: voting on GOTO

Fernando Bauer wrote:
> 
> Greg Haberek wrote:
> > 
> > 
> > I vote NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. Explicitly NO,
> > and
> > once moreover, NO! GOTO, in any form, breaks the inherently logical "flow"
> > of
> > *all* programming (especially Euphoria, with its top-down methodology).
> Sorry, I disagree.
> 
> > I don't
> > care if it's been implemented and tested, taken around the block, and fed to
> > the dog. To quote my cat Sasha, "DO NOT WANT."
> > 
> > One may argue, "but Greg, you don't *have* to use goto, only those who need
> > it will use it!" WRONG! You. Don't. Need. GOTO. Not now, not ever. If you
> > need
> > GOTO, then you're doing it wrong. Go back and re-think the layout of your
> > code.
> Sorry, I disagree.
> 
> > If it actually flows in a logical and coherent manner, then GOTO is
> > irrelevant.
> > I'm a firm believer that GOTO was invented by sloppy programmers, for sloppy
> > programmers.
> Sorry, I disagree.
> 
> > 
> > -Greg
> 
> As I already said, IMHO, in some situations, GOTO can be the best tool
> regarding
> speed, elegance, simplicity and maintenance. I agree with Jeremy about this
> subject.
> - Fernando

I'd be a little less enthusiastic.

Using goto in code is like using "thing" or "get" in a sentence. You can say
almost everything with these words, without having to care looking for the proper
word. The burden of decodng is on the reder/listener.

Yet, in some cases, these words are apt and should be used, because the more
specialised wors would be improper or awkward.

Now, conrary to written or spoken language, code goes through various stages
before being at production level. During the earlier stage, its logic is in a
flu, and using goto speeds development by removing many bugs related to code
structure changes.

However, as it tends to raise the maintainance cost, it is best removed from
production code at 97%, left only in cases where the specialised constructs
wouldn't perform better, whichver criterium is used to gauge performance.

This is why I still think it is better to have goto than not to have it. Just
advertise it as a last resort tool, when the speialised, preferred constructs hit
some limit.

CChris

new topic     » goto parent     » topic index » view message » categorize

81. Re: voting on GOTO

CChris wrote:
> 
> Fernando Bauer wrote:
> > 
> > Greg Haberek wrote:
> > > 
> > > 
> > > I vote NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. Explicitly NO,
> > > and
> > > once moreover, NO! GOTO, in any form, breaks the inherently logical "flow"
> > > of
> > > *all* programming (especially Euphoria, with its top-down methodology).
> > Sorry, I disagree.
> > 
> > > I don't
> > > care if it's been implemented and tested, taken around the block, and fed
> > > to
> > > the dog. To quote my cat Sasha, "DO NOT WANT."
> > > 
> > > One may argue, "but Greg, you don't *have* to use goto, only those who
> > > need
> > > it will use it!" WRONG! You. Don't. Need. GOTO. Not now, not ever. If you
> > > need
> > > GOTO, then you're doing it wrong. Go back and re-think the layout of your
> > > code.
> > Sorry, I disagree.
> > 
> > > If it actually flows in a logical and coherent manner, then GOTO is
> > > irrelevant.
> > > I'm a firm believer that GOTO was invented by sloppy programmers, for
> > > sloppy
> > > programmers.
> > Sorry, I disagree.
> > 
> > > 
> > > -Greg
> > 
> > As I already said, IMHO, in some situations, GOTO can be the best tool
> > regarding
> > speed, elegance, simplicity and maintenance. I agree with Jeremy about this
> > subject.
> > - Fernando
> 
> I'd be a little less enthusiastic.
> 
> Using goto in code is like using "thing" or "get" in a sentence. You can say
> almost everything with these words, without having to care looking for the
> proper
> word. The burden of decodng is on the reder/listener.
> 
> Yet, in some cases, these words are apt and should be used, because the more
> specialised wors would be improper or awkward.
> 
> Now, conrary to written or spoken language, code goes through various stages
> before being at production level. During the earlier stage, its logic is in
> a flu, and using goto speeds development by removing many bugs related to code
> structure changes.
> 
> However, as it tends to raise the maintainance cost, it is best removed from
> production code at 97%, left only in cases where the specialised constructs
> wouldn't perform better, whichver criterium is used to gauge performance.
> 
> This is why I still think it is better to have goto than not to have it. Just
> advertise it as a last resort tool, when the speialised, preferred constructs
> hit some limit.
> 
> CChris

Wow. That was really well said, Chris. I liked the analogy.

Kudos.

--
A complex system that works is invariably found to have evolved from a simple
system that works.
--John Gall's 15th law of Systemantics.

"Premature optimization is the root of all evil in programming."
--C.A.R. Hoare

j.

new topic     » goto parent     » topic index » view message » categorize

82. Re: voting on GOTO

Mario Steele wrote:
> 
> Heh, Chris, I remember a time, when you believed Euphoria's Memory Management
> libraries we no where near what it needed to be.  So you wrote your own memory
> routines.  Were they absolutely nesscary?
> 
> allocate_string()  = allocate(length(string)+1)
> poke(mem,string,length(string))
> 
> You created the library, was it absolutely nesscary, just on the off chance
> that someone else would find it useful?  That it, as you said, "might be
> implemented"
> ?
> 
> Mario Steele
> <a
> href="http://enchantedblade.trilake.net">http://enchantedblade.trilake.net</a>
> Attaining World Dominiation, one byte at a time...

Hi Mario :)

First, I never indicated that Eu's memory management wasn't adequate for the
language. The reason I developed heaps.e was to accomodate grouping allocations
together for the sake of the structs.e library, since a struct could contain
pointers to other structs which could contain pointers to other data, etc.

In the end, I found heaps.e was too cumbersome to be useful and resorted to a
more manual approach.

I can in fact totally turn your argument around. Yes I did try to create
something to enhance the programmers productivity, and I spent alot of effort to
try to make it work well, in the end I realized that it was not worthwhile even
if it did work well on the back-end, it was not very friendly for the programmer
front-end. Fortunately I had the luxury of it being a library that nobody was
using, so it was easy to scrap the idea.

Going back to the discussion of goto. As I said before, I'm not really for or
against it. I voted no because nobody has been able to show a legitimate need for
it and because it's always easier to add it later than to take it out when/if
it's regretted. I'm just not about to say yes, toss it in there, because some
people say 'why not!?'.

There is a plethora of things that could be added to presumably increase Eu's
flexibility. Should they all be added just because they can be?

Why is goto even being considered at this timeanyways, if there is no real need
for it? We should be trying to fill in gaps in the language, not put sprinkles on
the cake.

I would much rather see oop, named sequence elements and better C interfaces to
name a few things off the top of my head which I do miss DAILY.


Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

83. Re: voting on GOTO

Chris Bensler wrote:
> Why is goto even being considered at this timeanyways, if there is no real
> need
> for it? We should be trying to fill in gaps in the language, not put sprinkles
> on the cake.
> 
> I would much rather see oop, named sequence elements and better C interfaces
> to name a few things off the top of my head which I do miss DAILY.
> 
> 
> Chris Bensler
> Code is Alchemy

Why is goto being considered at this time?

Jeremy Cowagar (and others) are making a new and improved standard library for
Euphoria.

It was decided to incorporate this library in with Euphoria version 4.0.

Some features, many of which have been outstanding on sourceforge for a long
time, were included in a feature list for 4.0 and the new standard library will
rely upon them.

Goto is one such feature which, as usual, has been discussed to death.

We were discussing goto on the developer's list when Rob Craig made an
appearance stating his opposition to goto but that he would go along with it as
long as a vote was taken in Euforum -- and that the community at large should be
aware of the changes that are being discussed.

So, that's why it's being discussed. Goto has been implemented, should it be
included?

As for named sequence elements, enumerations have been added to 4.0. No oop, and
no better C interface.

Maybe you should post about what would make a better C interface for future
versions?

I think that 4.0 is approaching feature freeze though. Since Jeremy and Matt are
more the leads on this I'll let them say for sure.

--
A complex system that works is invariably found to have evolved from a simple
system that works.
--John Gall's 15th law of Systemantics.

"Premature optimization is the root of all evil in programming."
--C.A.R. Hoare

j.

new topic     » goto parent     » topic index » view message » categorize

84. Re: voting on GOTO

Chris Bensler wrote:
> 
> Going back to the discussion of goto. As I said before, I'm not really for or
> against it. I voted no because nobody has been able to show a legitimate need
> for it and because it's always easier to add it later than to take it out
> when/if
> it's regretted. I'm just not about to say yes, toss it in there, because some
> people say 'why not!?'.

goto is more or less a requirement to be able to port PCRE.

> 
> Why is goto even being considered at this timeanyways, if there is no real
> need
> for it? We should be trying to fill in gaps in the language, not put sprinkles
> on the cake
>  

The code exists and is ready to be added. The elease of 4.0 has been delayed
enough, some of these things may have to wait until 4.1.

> 
> Chris Bensler
> Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

85. Re: voting on GOTO

As I recall, the slogan on the Euphoria webpage says "Just say NO to complicated
programming languages!" Does GOTO not complicate things? I couldn't possibly
imagine it would make Euphoria any simpler. We need to maintain that simplicity.

On a more general note, I think we're moving way too fast on implementing new
"features" in Euphoria. Just because we can add a feature, doesn't mean we
should. I don't want to see Euphoria start Jumping the shark[1], and I feel it is
moving in that direction.

-Greg

1 http://en.wikipedia.org/wiki/Jumping_the_shark

new topic     » goto parent     » topic index » view message » categorize

86. Re: voting on GOTO

Greg Haberek wrote:
> 
> 
> As I recall, the slogan on the Euphoria webpage says "Just say NO to
> complicated
> programming languages!" Does GOTO not complicate things? I couldn't possibly
> imagine it would make Euphoria any simpler. We need to maintain that
> simplicity.
> 

Look at the code in PCRE, as mentioned already and then see how goto would
greatly simplify things.

> On a more general note, I think we're moving way too fast on implementing new
> "features" in Euphoria. Just because we can add a feature, doesn't mean we
> should.
> I don't want to see Euphoria start Jumping the shark[1], and I feel it is
> moving
> in that direction.

Actually, for the feature set we've added we've been moving pretty slowly.
Things have been discussed to great lengths on the dev list before we even think
about proposing things here. In less the last 20 days nearly 1,000 (literally)
messages have been exchanged on the dev list. Many ideas adopted, many canned,
many that were good but slated for the future.

Everything that has been implemented thus far have been requests many years old.
Is it bad that these requests many years old that have been discussed high and
low are being implemented finally or implemented in the 4.0 release?

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

87. Re: voting on GOTO

Greg Haberek wrote:
> 
> 
> As I recall, the slogan on the Euphoria webpage says "Just say NO to
> complicated
> programming languages!" Does GOTO not complicate things? I couldn't possibly
> imagine it would make Euphoria any simpler. We need to maintain that
> simplicity.
> 
> On a more general note, I think we're moving way too fast on implementing new
> "features" in Euphoria. Just because we can add a feature, doesn't mean we
> should.
> I don't want to see Euphoria start Jumping the shark[1], and I feel it is
> moving
> in that direction.
> 

Thank you Greg, I share these sentiments exactly.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

88. Re: voting on GOTO

Chris Bensler wrote:
> 
> I would much rather see oop, named sequence elements and better C interfaces
> to name a few things off the top of my head which I do miss DAILY.
> 

Many, many people would see OOP as more of a waste than goto and will create
disastrous code that goto would never be able to compare to. I've seen goto used
many times, always I was able to understand it w/o issue. I've seen hundreds of
classes that were so poorly written that someone should have been fired and if it
were open source should be banned from programming.

Now, let me say something else here. Euphoria does not have financial backing as
Ruby, Python and others have. No one on the dev team is a full time Euphoria
programmer. We are all giving above and beyond our normal daily jobs, our family
and our fun time. Some of the things you are proposing are very difficult and
time consuming. We are trying hard, but with the new features being added we are
looking first at long standing requests and the most bang for the buck.

Open source works but we need more man power. If OOP is important to you, maybe
you can join the dev team, draw up specifications, let it be discussed on the
mailing list, have 1/2 of it thrown out, then have to rewrite the other 1/2, then
work countless hours on it, benchmark it and find it slows everything down, then
go back and work on it's speed not affecting other areas of Euphoria, then
benchmark again and be rejected yet again, and continue this cycle until you have
something of value.

This is what it is like to add new features to Euphoria. It's hard, it takes a
lot of work, it takes a lot of time and in the end it's very rewarding.

I would encourage anyone who wishes for feature ABC or XYZ to be implemented
join the dev team. We can use the help.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

89. Re: voting on GOTO

> Look at the code in PCRE, as mentioned already and then see how goto would
> greatly
> simplify things.

There seem to be several chunks of PCRE-related code scattered around the SVN
trunk, some C, some Euphoria. Nothing I've looked at thus far has expressed a
need for GOTO. Perhaps you could point me in the right direction?


> Actually, for the feature set we've added we've been moving pretty slowly.
> Things
> have been discussed to great lengths on the dev list before we even think
> about
> proposing things here. In less the last 20 days nearly 1,000 (literally)
> messages
> have been exchanged on the dev list. Many ideas adopted, many canned, many
> that
> were good but slated for the future.

I completely was unaware of any developer mailing list. I thought EUforum was
the de facto discussion on the direction of Euphoria. In fact, I am not even a
developer on the project, but I would very much like to be. I may not do much,
but if I could be added, that would be great.


> Everything that has been implemented thus far have been requests many years
> old. Is it bad that these requests many years old that have been discussed
> high
> and low are being implemented finally or implemented in the 4.0 release?

A lot of "feature requests" popup on the EUforum over and over, mostly from
newbies who've recently joined the list and were unaware the potential "feature"
had already been discussed to death. A lot of these potential "features" are
often turned down immediately, like the forward-referencing routine_id() bug,
GOTO and labels, OOP, and threading (just a few for example). These all get
turned down each time they come up, as the general consensus was that they are
bad and/or Rob did not want to implement them. But now that "we" can add
features, people seem more adamant about just jumping and adding them.


-Greg

new topic     » goto parent     » topic index » view message » categorize

90. Re: voting on GOTO

Greg Haberek wrote:
> 
> > Look at the code in PCRE, as mentioned already and then see how goto would
> > greatly
> > simplify things.
> 
> There seem to be several chunks of PCRE-related code scattered around the SVN
> trunk, some C, some Euphoria. Nothing I've looked at thus far has expressed
> a need for GOTO. Perhaps you could point me in the right direction?
> 

cd source/pcre and do a grep for goto.

> 
> I completely was unaware of any developer mailing list. I thought EUforum was
> the de facto discussion on the direction of Euphoria. In fact, I am not even
> a developer on the project, but I would very much like to be. I may not do
> much,
> but if I could be added, that would be great.
>

It was posted on EUforum. This should get you there along with instructions for
joining the dev list.

http://www.openeuphoria.org/cgi-bin/esearch.exu?thread=1&fromMonth=4&fromYear=D&toMonth=6&toYear=D&keywords=%22Developers+mailing+list%22
 
> bad and/or Rob did not want to implement them. But now that "we" can add
> features,
> people seem more adamant about just jumping and adding them.

No feature just get's added because we can. Stating things like this makes
others that are not too interested in the development of the language and have
not kept up on the progress think EU is doomed. Any language that just get's
things added because we can is a failure.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

91. Re: voting on GOTO

Greg Haberek wrote:

> I think we're moving way too fast on implementing new "features"
> in Euphoria.

What is the appropriate rate to implement new "features"?

What is the criteria for considering a "feature"?

What is the criteria for accepting a "feature"?

What is the criteria for rejecting a "feature"?

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

92. Re: voting on GOTO

Jason Gade wrote:
> 
> Chris Bensler wrote:
> > Why is goto even being considered at this timeanyways, if there is no real
> > need
> > for it? We should be trying to fill in gaps in the language, not put
> > sprinkles
> > on the cake.
> > 
> > I would much rather see oop, named sequence elements and better C interfaces
> > to name a few things off the top of my head which I do miss DAILY.
> > 
> > 
> > Chris Bensler
> > Code is Alchemy
> 
> Why is goto being considered at this time?
> 
> Jeremy Cowagar (and others) are making a new and improved standard library for
> Euphoria.
> 
> It was decided to incorporate this library in with Euphoria version 4.0.
> 
> Some features, many of which have been outstanding on sourceforge for a long
> time, were included in a feature list for 4.0 and the new standard library
> will
> rely upon them.

Why would it be relying on features that have not even been officially approved
yet? It appears to me that consulting the community is more of a afterthought and
simple courtesy ebenthough the decision has already been made.

I dont' mean that to be rude or bitter. I can easily relate to those people who
have spent alot of effort to provide a prototype of the proposed changes and
don't want to see their efforts tossed aside. Unfortunately, just because someone
already spent the effort doesn't mean that it should be accepted. There is more
at stake than bruising someone's feelings.


> Goto is one such feature which, as usual, has been discussed to death.

I know, and nothing is ever resolved in the dicussion, it's an age-old
programmers debate, which just tells me that it should be consider VERY
CAREFULLY. There is merits to both sides of the debate.

> We were discussing goto on the developer's list when Rob Craig made an
> appearance
> stating his opposition to goto but that he would go along with it as long as
> a vote was taken in Euforum -- and that the community at large should be aware
> of the changes that are being discussed.
> 
> So, that's why it's being discussed. Goto has been implemented, should it be
> included?

Fair enough. I do not think that 1 day warrants a valid polling time however.
I would suggest at least 1 month, to give people a chance to have their say, who
are not around every single day. I know you guys are eager to move on and get v4
out the door, but this deserves a high level of scrutiny.

> As for named sequence elements, enumerations have been added to 4.0. No oop,
> and no better C interface.

I'll have to look into what enum.e is exactly, but it doesn't sound liek the
same thing. In any case, a library is not any less cumbersome than using
constants for the indices. It can resolve the namespace contamination, but it
cannot make particularly clean code.

As far as I can tell, I think a best case scenario would be:
s["foo".."bar"]["fubar"]
compared to 
subs(subs(s,{"foo","bar"}),{"fubar"})

Not that a lib wouldn't be a good interim solution to offer, but it is not
ideal.

> Maybe you should post about what would make a better C interface for future
> versions?

Mainly builtin support for C-style structs would make a huge difference in the
standardization and simplification of porting API's to Eu.

This post is already deviating too far off-topic, so I will refrain from any
further explanation.

Anyhow, I will concede on the goto discussion. I think I've more than made my
points. No new features should be considered lightly regardless if they seem
insignificant, because in the end nothing is insignificant. Especially something
as contraversial as goto. I'm just trying to raise alarms for any would-be voters
who may be more-or-less unbiased on the topic.

I know there is merit to having goto, but I would compare it to buying a
backhoe, just in case you might decide to landscape your yard someday.

Maybe porting code from other languages is enough reason to include goto. I
dunno, I can't really decide. Since I'm not sure, I will err on the side of
caution.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

93. Re: voting on GOTO

Jim Brown wrote:
> 

> goto is more or less a requirement to be able to port PCRE.
> 


   And who decided that PCRE was a necessary feature to be added into

   the core of Euphoria ?

   That should be in a library or a DLL/SO instead of bloating the

   core of the language.

   How many users need to use it ?
  

Bernie

My files in archive:
WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

94. Re: voting on GOTO

Jim Brown wrote:
> 
> Chris Bensler wrote:
> > 
> > Going back to the discussion of goto. As I said before, I'm not really for
> > or
> > against it. I voted no because nobody has been able to show a legitimate
> > need
> > for it and because it's always easier to add it later than to take it out
> > when/if
> > it's regretted. I'm just not about to say yes, toss it in there, because
> > some
> > people say 'why not!?'.
> 
> goto is more or less a requirement to be able to port PCRE.

Is it more or less? Can you elaborate a bit on why goto is needed? Maybe you can
convince more than just myself.

> > 
> > Why is goto even being considered at this timeanyways, if there is no real
> > need
> > for it? We should be trying to fill in gaps in the language, not put
> > sprinkles
> > on the cake
> >  
> 
> The code exists and is ready to be added. The elease of 4.0 has been delayed
> enough, some of these things may have to wait until 4.1.

If I make you a poop-pie, does that mean you should be obligated to eat it?

Sorry bad analogy, I don't mean that goto is crap, but it's funny and to the
point :)

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

95. Re: voting on GOTO

Chris Bensler wrote: 
> > > Why is goto even being considered at this timeanyways, if there is no real
> > > need
> > > for it? We should be trying to fill in gaps in the language, not put
> > > sprinkles
> > > on the cake
> > >  
> > 
> > The code exists and is ready to be added. The elease of 4.0 has been delayed
> > enough, some of these things may have to wait until 4.1.
> 
> If I make you a poop-pie, does that mean you should be obligated to eat it?
> 
> Sorry bad analogy, I don't mean that goto is crap, but it's funny and to the
> point :)

The question was not about the merits of goto but as to why it was being
considered. So, in your example, because the poop-pie existed, it too would be
considered for eating. Hopefully only considered for a split second, but,
considered.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

96. Re: voting on GOTO

> On 5 Jun 2008 at 7:15, Jim Brown wrote (maybe snipped):

> 
> So far, 13 in favor of GOTO, 6 against, 3 formally abstaining.
> 
> Of that, from the dev list, 7 voted in favor, 1 against, 1 formally
> abstaining.
> 
> I think we should wait until at least 19:00 UTC. After that, we can
> consider the poll closed.
> 
My vote is NO. All languages I used before that had GOTO/GOSUB were 
of difficult maintenance. I made a big effort in the past to throw 
out this "cane". I don't need it, nor desire it.

-- 
_
_| euler f german
_| sete lagoas, mg, brazil
_| efgerman{AT}gmail{DOT}com

new topic     » goto parent     » topic index » view message » categorize

97. Re: voting on GOTO

Chris Bensler wrote:
> 
> Jim Brown wrote:
> > 
> > Chris Bensler wrote:
> > > 
> > > Going back to the discussion of goto. As I said before, I'm not really for
> > > or
> > > against it. I voted no because nobody has been able to show a legitimate
> > > need
> > > for it and because it's always easier to add it later than to take it out
> > > when/if
> > > it's regretted. I'm just not about to say yes, toss it in there, because
> > > some
> > > people say 'why not!?'.
> > 
> > goto is more or less a requirement to be able to port PCRE.
> 
> Is it more or less? Can you elaborate a bit on why goto is needed? Maybe you
> can convince more than just myself.

I didn't try to do the port myself, so I don't know.

PCRE uses goto quite heavily (as you can tell for yourself by doing a grep on
the source code). Although it is certainly possible to rewrite those uses of goto
to use state machine flags and whatnot, the burden of doing so is considerable
and doesn't have any clear benefit.

> 
> > > 
> > > Why is goto even being considered at this timeanyways, if there is no real
> > > need
> > > for it? We should be trying to fill in gaps in the language, not put
> > > sprinkles
> > > on the cake
> > >  
> > 
> > The code exists and is ready to be added. The elease of 4.0 has been delayed
> > enough, some of these things may have to wait until 4.1.
> 
> If I make you a poop-pie, does that mean you should be obligated to eat it?
> 

Which is why it is being discussed now, instead of having been committed two
weeks ago.

> 
> Chris Bensler
> Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

98. Re: voting on GOTO

Chris Bensler wrote:
> 
> Jason Gade wrote:
> > 
> > Jeremy Cowagar (and others) are making a new and improved standard library
> > for
> > Euphoria.
> > 
> > It was decided to incorporate this library in with Euphoria version 4.0.
> > 
> > Some features, many of which have been outstanding on sourceforge for a long
> > time, were included in a feature list for 4.0 and the new standard library
> > will
> > rely upon them.
> 
> Why would it be relying on features that have not even been officially
> approved
> yet? It appears to me that consulting the community is more of a afterthought
> and simple courtesy ebenthough the decision has already been made.
>

Um, something is seriously wrong here. Communication has failed. Goto is not in
euphoria and no part of the Euphoria coded language uses goto, because it only
exists on one persons machine, the person who developed it.

Consulting the general community is *certainly* not an afterthought!
 
> I dont' mean that to be rude or bitter. I can easily relate to those people
> who have spent alot of effort to provide a prototype of the proposed changes
> and don't want to see their efforts tossed aside. Unfortunately, just because
> someone already spent the effort doesn't mean that it should be accepted.
> There
> is more at stake than bruising someone's feelings.
> 

There is another miscommunication. Those who want goto have given all sorts of
justification. I don't remember any justification being, we don't want to hurt
anyone's feelings!

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

99. Re: voting on GOTO

Chris Bensler wrote:
> 
> Jason Gade wrote:
> > 
> > Chris Bensler wrote:
> > > Why is goto even being considered at this timeanyways, if there is no real
> > > need
> > > for it? We should be trying to fill in gaps in the language, not put
> > > sprinkles
> > > on the cake.
> > > 
> > > I would much rather see oop, named sequence elements and better C
> > > interfaces
> > > to name a few things off the top of my head which I do miss DAILY.
> > > 
> > > 
> > > Chris Bensler
> > > Code is Alchemy
> > 
> > Why is goto being considered at this time?
> > 
> > Jeremy Cowagar (and others) are making a new and improved standard library
> > for
> > Euphoria.
> > 
> > It was decided to incorporate this library in with Euphoria version 4.0.
> > 
> > Some features, many of which have been outstanding on sourceforge for a long
> > time, were included in a feature list for 4.0 and the new standard library
> > will
> > rely upon them.
> 
> Why would it be relying on features that have not even been officially
> approved
> yet? It appears to me that consulting the community is more of a afterthought
> and simple courtesy ebenthough the decision has already been made.

We /are/ consulting the community. And many of these things have been discussed
over and over and over again.

> I dont' mean that to be rude or bitter. I can easily relate to those people
> who have spent alot of effort to provide a prototype of the proposed changes
> and don't want to see their efforts tossed aside. Unfortunately, just because
> someone already spent the effort doesn't mean that it should be accepted.
> There
> is more at stake than bruising someone's feelings.

I agree. I'm one of the "simpler is better" crowd, myself.

> 
> > Goto is one such feature which, as usual, has been discussed to death.
> 
> I know, and nothing is ever resolved in the dicussion, it's an age-old
> programmers debate, which just tells me that it should be consider VERY
> CAREFULLY.
> There is merits to both sides of the debate.

Of course it does. But after ten years or more of debate, at what point do  you
throw up your hands and say, "whatever."

I don't like goto. I'm just tired of hearing about it. And a couple of people
have made some decent arguments in support.

> > We were discussing goto on the developer's list when Rob Craig made an
> > appearance
> > stating his opposition to goto but that he would go along with it as long as
> > a vote was taken in Euforum -- and that the community at large should be
> > aware
> > of the changes that are being discussed.
> > 
> > So, that's why it's being discussed. Goto has been implemented, should it be
> > included?
> 
> Fair enough. I do not think that 1 day warrants a valid polling time however.
> I would suggest at least 1 month, to give people a chance to have their say,
> who are not around every single day. I know you guys are eager to move on and
> get v4 out the door, but this deserves a high level of scrutiny.

We, the community, have been discussing goto /forever/.

> 
> > As for named sequence elements, enumerations have been added to 4.0. No oop,
> > and no better C interface.
> 
> I'll have to look into what enum.e is exactly, but it doesn't sound liek the
> same thing. In any case, a library is not any less cumbersome than using
> constants
> for the indices. It can resolve the namespace contamination, but it cannot
> make
> particularly clean code.
> 
> As far as I can tell, I think a best case scenario would be:
> s["foo".."bar"]["fubar"]
> compared to 
> subs(subs(s,{"foo","bar"}),{"fubar"})
> 
> Not that a lib wouldn't be a good interim solution to offer, but it is not
> ideal.

enums aren't in a library. It's a new keyword for automatic constants.

> 
> > Maybe you should post about what would make a better C interface for future
> > versions?
> 
> Mainly builtin support for C-style structs would make a huge difference in the
> standardization and simplification of porting API's to Eu.

See, this is where I would disagree and say that Euphoria doesn't need C style
structs -- at least not built-in.

> 
> This post is already deviating too far off-topic, so I will refrain from any
> further explanation.
> 
> Anyhow, I will concede on the goto discussion. I think I've more than made my
> points. No new features should be considered lightly regardless if they seem
> insignificant, because in the end nothing is insignificant. Especially
> something
> as contraversial as goto. I'm just trying to raise alarms for any would-be
> voters
> who may be more-or-less unbiased on the topic.
> 
> I know there is merit to having goto, but I would compare it to buying a
> backhoe,
> just in case you might decide to landscape your yard someday.
> 
> Maybe porting code from other languages is enough reason to include goto. I
> dunno, I can't really decide. Since I'm not sure, I will err on the side of
> caution.
> 
> Chris Bensler
> Code is Alchemy

I think that goto is the most controversial feature.

There are also new words such as continue, retry, and entry which are
specialized gotos. Personally, I prefer goto to retry and entry myself (even
though I don't really like any of them) but I've been a pretty lone voice in the
wilderness.

There is a list about about 10-15 new features on the roadmap, most of which
have been implemented and are being tested and tweaked.

--
A complex system that works is invariably found to have evolved from a simple
system that works.
--John Gall's 15th law of Systemantics.

"Premature optimization is the root of all evil in programming."
--C.A.R. Hoare

j.

new topic     » goto parent     » topic index » view message » categorize

100. Re: voting on GOTO

Bernie Ryan wrote:
> 
> Jim Brown wrote:
> > 
> 
> > goto is more or less a requirement to be able to port PCRE.
> > 
> 
>    And who decided that PCRE was a necessary feature to be added into
> 
>    the core of Euphoria ?
> 

Well, it can't be a library (a stdlib or otherwise) because it can't be ported!
(At least not without a significant amount of additional work that should not be
necessary.)

> 
> Bernie
> 
> My files in archive:
> WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 
> 
> Can be downloaded here:
> <a
> href="http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan">http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan</a>

new topic     » goto parent     » topic index » view message » categorize

101. Re: voting on GOTO

Derek Parnell wrote:
> 
> Greg Haberek wrote:
> 
> > I think we're moving way too fast on implementing new "features"
> > in Euphoria.
> 
> What is the appropriate rate to implement new "features"?
> 
> What is the criteria for considering a "feature"?
> 
> What is the criteria for accepting a "feature"?
> 
> What is the criteria for rejecting a "feature"?
> 
> -- 
> Derek Parnell
> Melbourne, Australia
> Skype name: derek.j.parnell

Excellent questions Derek, I think those should be dev-team directives.
Or are they already?

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

102. Re: voting on GOTO

Jim Brown wrote:
> 
> Bernie Ryan wrote:
> > 
> > Jim Brown wrote:
> > > 
> > 
> > > goto is more or less a requirement to be able to port PCRE.
> > > 
> > 
> >    And who decided that PCRE was a necessary feature to be added into
> > 
> >    the core of Euphoria ?
> > 
> 
> Well, it can't be a library (a stdlib or otherwise) because it can't be
> ported!
> (At least not without a significant amount of additional work that should not
> be necessary.)
> 
> > 

Here's some dll's at this web site all you need to do is write a wrapper.

http://www.psyon.org/projects/pcre-win32/index.php

Bernie

My files in archive:
WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

103. Re: voting on GOTO

These are my personal standings on general software development.

> What is the appropriate rate to implement new "features"?

One feature, at a time, should be chosen and implemented. Multiple features may
be implemented in a single release, so long as they're implemented in a linear
fashion and don't break or replace the previous feature.


> What is the criteria for considering a "feature"?

An addition to the product whose benefits outweigh its costs. One which aims to
make the product simpler, faster and/or easier to use, without being confusing or
obtuse. "Bug fixes" are not features.


> What is the criteria for accepting a "feature"?

It must be generally accepted by the active development community. Votes should
be based on seniority, which in turn is based on previous contributions to the
product and level of competence in using it.


> What is the criteria for rejecting a "feature"?

Replace "accepted" with "rejected" in the paragraph above.


-Greg

new topic     » goto parent     » topic index » view message » categorize

104. Re: voting on GOTO

Jason Gade wrote:
> 
> Of course it does. But after ten years or more of debate, at what point do 
> you throw up your hands and say, "whatever."
> 

NEVER! O.O
We should be open-minded and compromising, but we should not submit for the sake
of curbing debate. Do you buy stuff from salesmen just because they are
persistent?


> We, the community, have been discussing goto /forever/.

In the court of law, this would be a hung jury and the case would be thrown out
or appealed until a solid resolution can be made.


> enums aren't in a library. It's a new keyword for automatic constants.

Cool, thought I saw it as a lib in the new stdlib's.
I'll definitely check it out then.


> I think that goto is the most controversial feature.
> 
> There are also new words such as continue, retry, and entry which are
> specialized
> gotos. Personally, I prefer goto to retry and entry myself (even though I
> don't
> really like any of them) but I've been a pretty lone voice in the wilderness.

I somewhat agree with this. My thoughts were that the new flow controls were
added to avoid having to implement goto. On one hand, I would prefer to have a
universal goto instead of a variety of specialized statements, but they at least
lend to code structure, goto does not.


Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

105. Re: voting on GOTO

Greg Haberek wrote:
> 
> These are my personal standings on general software development.
> 
> > What is the appropriate rate to implement new "features"?
> 
> One feature, at a time, should be chosen and implemented. Multiple features
> may be implemented in a single release, so long as they're implemented in a
> linear fashion and don't break or replace the previous feature.
> 

We have 3-4 developers. Should the others just sit around? One developer may
implement, test commit. Features are tested before commit. We do peer review.
When John commits Jane looks at the changes. Jane sees something John did not and
she adds a test, finds a bug, fixes and commits. That may be the next day. In the
mean time, Jed is also working on another feature. John still had more coding
time available to him, so he started on the next request or maybe knock out a few
bug requests. At any one moment 3, 4, 5 features may be in development. That's
the only efficient way of doing it.
 
> > What is the criteria for considering a "feature"?
> 
> An addition to the product whose benefits outweigh its costs. One which aims
> to make the product simpler, faster and/or easier to use, without being
> confusing
> or obtuse. "Bug fixes" are not features.
> 

I'll bet the above would never be able to be agreed upon, just look at the goto
debate. I think the benefits of goto outweigh the cost, others do not.

> 
> > What is the criteria for accepting a "feature"?
> 
> It must be generally accepted by the active development community. Votes
> should
> be based on seniority, which in turn is based on previous contributions to the
> product and level of competence in using it.
> 

That sounds OK, however, I think it's beyond realistic implementation. You also
have many issues with basing things of seniority. For instance, Jim has been a
Euphoria programmer since 1921 and he absolutely hates this new idea of a while
loop. The good old goto can do a while loop, a for loop and any other loop you
may dream up in your wild, young mind. In the mean time Josh and Jack leave the
Euphoria scene because they are tired of Jim's old ways. Now there is a huge gap
between Jim's seniority and everyone else.

Different voting systems have been tested high and low. All have problems.
What's the best? I don't know.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

106. Re: voting on GOTO

Chris Bensler wrote:
> 
> 
> > We, the community, have been discussing goto /forever/.
> 
> In the court of law, this would be a hung jury and the case would be thrown
> out or appealed until a solid resolution can be made.
> 

This is what we are trying to do.

> 
> Chris Bensler
> Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

107. Re: voting on GOTO

Greg Haberek wrote:
> 
> > Look at the code in PCRE, as mentioned already and then see how goto would
> > greatly
> > simplify things.
> 
> There seem to be several chunks of PCRE-related code scattered around
> the SVN trunk, some C, some Euphoria. Nothing I've looked at thus far
> has expressed a need for GOTO. Perhaps you could point me in the right
> direction?

matt@oneill:~/euphoria/dev/rds/source/pcre$ grep -c goto *c | grep -v \:0
pcre_compile.c:96
pcre_dfa_exec.c:9
pcre_exec.c:28
 
> I completely was unaware of any developer mailing list. I thought EUforum
> was the de facto discussion on the direction of Euphoria. In fact, I am
> not even a developer on the project, but I would very much like to be. I
> may not do much, but if I could be added, that would be great.

It's been announced here, though given the volume of this forum, it's 
easy to miss a post here and there.  Anyone can join.  It was created in
part to get rid of some of the noise here.  It's a pretty active list,
and most of what is said there is probably not of interest to the average
euphoria user, though it's not all implementation.  There's a lot of 
discussion about design issues, too.
 
> A lot of "feature requests" popup on the EUforum over and over, mostly
> from newbies who've recently joined the list and were unaware the
> potential "feature" had already been discussed to death. A lot of these
> potential "features" are often turned down immediately, like the
> forward-referencing routine_id() bug, GOTO and labels, OOP, and threading
> (just a few for example). These all get turned down each time they come
> up, as the general consensus was that they are bad and/or Rob did not
> want to implement them. But now that "we" can add features, people seem
> more adamant about just jumping and adding them.

More like, people who would have liked to have done so would have previously,
but weren't able.  Not that everything that's been done has been perfect,
but I think that for such an unstructured project, it's gone pretty well.

Matt

new topic     » goto parent     » topic index » view message » categorize

108. Re: voting on GOTO

Bernie Ryan wrote:
> 
>    And who decided that PCRE was a necessary feature to be added into
>    the core of Euphoria ?
>    That should be in a library or a DLL/SO instead of bloating the
>    core of the language.
>    How many users need to use it ?

I don't have a count, but I'm certainly one.  Anyone who does any significant 
amount of text processing could probably benefit.  I've been using the 
regex library included with wxWidgets pretty extensively since I wrapped
it.  For whatever reason, however, using a statically linked PCRE is much
faster.

The original thought was to dynamically link on *nix platforms, since pcre
is pretty standard.  But then you run into versioning problems, issues with
whether or not the distro's version has UTF-8 built in, etc.  We thought to
avoid a repeat of the issues with gpm.

The size of the interpreter was increased by 100-150KB.  I think this is a
very reasonable tradeoff.

Matt

new topic     » goto parent     » topic index » view message » categorize

109. Re: voting on GOTO

The poll closes at 13 in favor, 8 against, and 3 abstaining.

Jim Brown wrote:
> 
> Jason Gade wrote:
> > 
> > Heh, honestly you probably shouldn't have asked for comments smile
> > (Or at least to keep comments in a separate thread).
> 
> Yes, well, I never said I was a smart guy. :)
> 
> > 
> > But how long is the voting going to remain open? One week? What's the tally
> > so far?
> 
> So far, 13 in favor of GOTO, 6 against, 3 formally abstaining.
> 
> Of that, from the dev list, 7 voted in favor, 1 against, 1 formally
> abstaining.
> 
> I think we should wait until at least 19:00 UTC. After that, we can consider
> the poll closed.
> 
> > 
> > --
> > A complex system that works is invariably found to have evolved from a
> > simple
> > system that works.
> > --John Gall's 15th law of Systemantics.
> > 
> > "Premature optimization is the root of all evil in programming."
> > --C.A.R. Hoare
> > 
> > j.

new topic     » goto parent     » topic index » view message » categorize

110. Re: voting on GOTO

Matt Lewis wrote:
> 
> Bernie Ryan wrote:
> > 
> >    And who decided that PCRE was a necessary feature to be added into
> >    the core of Euphoria ?
> >    That should be in a library or a DLL/SO instead of bloating the
> >    core of the language.
> >    How many users need to use it ?
> 

Regular expressions are standard issue in any language these days. They make so
many common tasks a thousand times easier. PCRE is the standard as well. On 4.0,
you will be able to trust that if it's Euphoria it has regular expressions.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

111. Re: voting on GOTO

Matt Lewis wrote:
> 
> 
> The size of the interpreter was increased by 100-150KB.  I think this is a
> very reasonable tradeoff.
> 

Matt:

   Why don't we just change the IL code to PARROT and then we will

   be able to merge all the features used in other languages.


Bernie

My files in archive:
WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

112. Re: voting on GOTO

Jim Brown wrote:
> 
> The poll closes at 13 in favor, 8 against, and 3 abstaining.
> 
> Jim Brown wrote:
> > 
> > Jason Gade wrote:
> > > 
> > > Heh, honestly you probably shouldn't have asked for comments smile
> > > (Or at least to keep comments in a separate thread).
> > 
> > Yes, well, I never said I was a smart guy. :)
> > 
> > > 
> > > But how long is the voting going to remain open? One week? What's the
> > > tally
> > > so far?
> > 
> > So far, 13 in favor of GOTO, 6 against, 3 formally abstaining.
> > 
> > Of that, from the dev list, 7 voted in favor, 1 against, 1 formally
> > abstaining.
> > 
> > I think we should wait until at least 19:00 UTC. After that, we can consider
> > the poll closed.
> > 
> > > 
> > > --
> > > A complex system that works is invariably found to have evolved from a
> > > simple
> > > system that works.
> > > --John Gall's 15th law of Systemantics.
> > > 
> > > "Premature optimization is the root of all evil in programming."
> > > --C.A.R. Hoare
> > > 
> > > j.

1 day is not nearly enough time for a legitimate vote. It could take people
several days or weeks under pressure to make a choice. I think this is very
hasty.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

113. Re: voting on GOTO

Bernie Ryan wrote:
> 
>    Why don't we just change the IL code to PARROT and then we will
>    be able to merge all the features used in other languages.

I agree that a port to Parrot would be interesting.  I recall Pete Lomax
worked on that for a while.  I did a port to .Net.  It's far from trivial,
however.  Also, Parrot is still under development, and I don't think there's 
any good sense about when it will be considered stable.

Plus, we already have a good VM.

Matt

new topic     » goto parent     » topic index » view message » categorize

114. Re: voting on GOTO

Chris Bensler wrote:
> 
> 1 day is not nearly enough time for a legitimate vote. It could take people
> several days or weeks under pressure to make a choice. I think this is very
> hasty.

I agree.  At least a few days.

Matt

new topic     » goto parent     » topic index » view message » categorize

115. Re: voting on GOTO

I vote NO.

 - Colin

new topic     » goto parent     » topic index » view message » categorize

116. Re: voting on GOTO

Chris Bensler wrote:
> 1 day is not nearly enough time for a legitimate vote. It could take people
> several days or weeks under pressure to make a choice. I think this is very
> hasty.

Presumably also people have the option of changing their vote.

new topic     » goto parent     » topic index » view message » categorize

117. Re: voting on GOTO

Chris Bensler wrote:

<snip>
 
> I know there is merit to having goto, but I would compare it to buying a
> backhoe,
> just in case you might decide to landscape your yard someday.

Have you SEEN my yard?! Lets start with a trackhoe and a couple D10's, and get
them to bury a small nuke, just for starters! Really, there's a 20ft layer of
hard shale 70ft down the mountain, and .. wait.. were you serious?

Kat

new topic     » goto parent     » topic index » view message » categorize

118. Re: voting on GOTO

Hi

Changes in the interpreter to implement goto have no effect on speed (so we
are told)

You don't have to use got if you don't want to (indeed you may be seen as
a bit of pariah if you do)

It's there if you want to use it.

Let the users try it, then decide (alpha / beta test)

Chris

new topic     » goto parent     » topic index » view message » categorize

119. Re: voting on GOTO

For whatever it is worth -- one vote I suppose -- I vote NO on goto.

new topic     » goto parent     » topic index » view message » categorize

120. Re: voting on GOTO

> On 5 Jun 2008 at 15:02, Euler German wrote (maybe snipped):

> My vote is NO. All languages I used before that had GOTO/GOSUB were of
> difficult maintenance. I made a big effort in the past to throw out
> this "cane". I don't need it, nor desire it.
> 
Just to add that there are times when I really miss a DO CASE case 
this ... case that ... other[wise] ... END CASE construct. But I can 
wait. :)

-- 
_
_| euler f german
_| sete lagoas, mg, brazil
_| efgerman{AT}gmail{DOT}com

new topic     » goto parent     » topic index » view message » categorize

121. Re: voting on GOTO

Bernie Ryan wrote:
>    Why don't we just change the IL code to PARROT 

Or LLVM?

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

122. Re: voting on GOTO

Euler German wrote:

> Just to add that there are times when I really miss a DO CASE case 
> this ... case that ... other[wise] ... END CASE construct. But I can 
> wait. :)


This construct has been implemented in v4.0 and I'm doing some extensive testing
with it. It works very well and makes code look a lot cleaner.
eg.

   switch upper(SOMEVAL) do
       case "ME":
       case "MYSELF":
       case "I":
              foo()
              exit

       case "YOU":
       case "THEM":
             bar()              
             -- fall thru

       case "HE":
       case "SHE":
             qwerty()
            exit

       case else:
             default()

    end switch


-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

123. Re: voting on GOTO

Jim Brown wrote:
> The poll closes at 13 in favor, 8 against, and 3 abstaining.

We haven't established any formal rules about voting (yet), 
but since I already put a message on the main page 
that voting would close "in a couple of days",
I think we need to keep the poll open for 
another 48 hours, especially since there was 
no warning that a vote was coming, and some people 
only check EUforum every few days.

As I said, I will gladly respect the outcome of the vote,
whichever way it goes, but I know that some people will 
be rightfully upset if they are caught off-guard and 
given no chance to vote on something as important as this.
Not all changes will require a vote by the main EUforum,
but I think that goto qualifies.

By the way, if anyone wants to become a developer,
let me know. I'll add any responsible person
who has a strong knowledge of Euphoria, and perhaps C,
and who is serious about helping out. You'll have to
get a (free) SourceForge id, and learn about SVN.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

124. Re: voting on GOTO

ChrisBurch2 wrote:

> Let the users try it, then decide (alpha / beta test)

You beat me to it blink 

The plan is to release an 'alpha' edition and solicit feedback. This will be the
primary phase in which the community can play around with the new stuff. NOTHING
is locked in at this stage. There will be bugs and mis-features, for sure. You
get to try things out and report on your experience. During this phase (until the
first beta) you have every opportunity to reject/accept changes and depending on
the community responses, changes will be either locked in or taken out. Changes
that are taken out may see reintroduction in later versions, so it doesn't mean
that there is wasted effort.

The beta release(s) are primarily designed to weed out bugs. The only changes
(new features/dropped features) will be if something extraordinary comes up with
the product.

I expect that there will be at least two, and probably three, beta releases
before the official Euphoria v4.0 is given to the world. This is NOT a speedy
process. This is NOT an exclusive process. There is time for thoughtful
consideration and experiementation. There is opportunity for the entire community
to participate.


-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

125. Re: voting on GOTO

Ok, the poll shall continue.

Is Saturday (06/07/08) 17:00 UTC agreeable to everyone?

new topic     » goto parent     » topic index » view message » categorize

126. Re: voting on GOTO

I vote NO to GOTO

Ken Rhodes
Folding at Home: http://folding.stanford.edu/
100% MicroSoft Free
SuSE Linux 10.3
No AdWare, SpyWare, or Viruses!
Life is Good,  smile

new topic     » goto parent     » topic index » view message » categorize

127. Re: voting on GOTO

Jim Brown wrote:
> 
> Ok, the poll shall continue.
> 
> Is Saturday (06/07/08) 17:00 UTC agreeable to everyone?

Fair enough.
I'll state that on the RapidEuphoria main page.
I assume UTC and GMT are the same thing.
EUforum shows times in GMT.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

128. Re: voting on GOTO

Euler German wrote:
> 
> > On 5 Jun 2008 at 15:02, Euler German wrote (maybe snipped):
> 
> > My vote is NO. All languages I used before that had GOTO/GOSUB were of
> > difficult maintenance. I made a big effort in the past to throw out
> > this "cane". I don't need it, nor desire it.
> > 
> Just to add that there are times when I really miss a DO CASE case 
> this ... case that ... other[wise] ... END CASE construct. But I can 
> wait. :)

You could do it with goto, it's been demonstrated how to. I asked for case also.
You wait. I wait.

Kat

new topic     » goto parent     » topic index » view message » categorize

129. Re: voting on GOTO

Robert Craig wrote:
> 
> Jim Brown wrote:
> > 
> > Ok, the poll shall continue.
> > 
> > Is Saturday (06/07/08) 17:00 UTC agreeable to everyone?
> 
> Fair enough.
> I'll state that on the RapidEuphoria main page.
> I assume UTC and GMT are the same thing.
> EUforum shows times in GMT.

Lets use UT1 and vote on which to use (UT1, UTC, GMT) to end the vote with.
Without accurate time keeping, we might miss someone's vote on this most
earthshaking topic, the most ultimately important vote in all of Euphoria's
history: goto. Time keeping is vital to all modern economies, synchronizing the
movements of goods and services, keeping computers in sync on phone lines, irc
networks, banks, and countries' defence networks. We can't just randomly pick a
reference system of time willynilly, nor allow any one person to dictate how we
measure time, this must be a well thought out and considered occurance, with
input by everyone who uses time! I call for at least 10 years of discussion on
this critical topic, and then a vote, with the vote terminated by some other
event than a artificial time measurement.

Kat

new topic     » goto parent     » topic index » view message » categorize

130. Re: voting on GOTO

Kat wrote:
> 
> ...the most ultimately important vote in all of Euphoria's history: goto.

I asked for examples where GOTO would help streamline or otherwise make a
Euphoria program better. Nobody can provide any*- not even you, its most
vocal supporter and advocate.

(*Well, they haven't, yet.)

new topic     » goto parent     » topic index » view message » categorize

131. Re: voting on GOTO

c.k.lester wrote:
> 
> Kat wrote:
> > 
> > ...the most ultimately important vote in all of Euphoria's history: goto.
> 
> I asked for examples where GOTO would help streamline or otherwise make a
> Euphoria program better. Nobody can provide any*- not even you, its most
> vocal supporter and advocate.
> 
> (*Well, they haven't, yet.)

It's been shown, been done, been 10 years. Code has been provided, only to be
shot down which chants of "can't it be done another way?" and "that's evil" and
"who would want to do that?". So point me to the dunking chair, i'll sit down and
buckle myself in... i acknowledge you win, but you are still wrong.

Kat

new topic     » goto parent     » topic index » view message » categorize

132. Re: voting on GOTO

Kat wrote:
> c.k.lester wrote:
> > Kat wrote:
> > > ...the most ultimately important vote in all of Euphoria's history: goto.
> > I asked for examples where GOTO would help streamline or otherwise make a
> > Euphoria program better. Nobody can provide any*- not even you, its most
> > vocal supporter and advocate.
> > (*Well, they haven't, yet.)
> It's been shown, been done, been 10 years.

No, it hasn't. Ever. Not once. A Euphoria-code example.

> Code has been provided, only to be
> shot down which chants of "can't it be done another way?" and "that's evil"
> and "who would want to do that?". So point me to the dunking chair, i'll sit
> down and buckle myself in... i acknowledge you win, but you are still wrong.

Certainly there's somebody who advocates GOTO in Euphoria who could provide
an example of where a GOTO would significantly improve a Euphoria program's
performance. Pretend Euphoria has GOTO right now and wow the skeptics.

(Just today I reworked some of my BBCMF code and had it serving up pages in
HALF the time it was taking before! *pats self on back* Without GOTO, even.)

Remember, I'm talking about Euphoria. The goto in C has been shown to be
beneficial to Euphoria. Great. But adding GOTO to Euphoria would be
beneficial... how?

new topic     » goto parent     » topic index » view message » categorize

133. Re: voting on GOTO

c.k.lester wrote:
> 
> Kat wrote:
> > c.k.lester wrote:
> > > Kat wrote:
> > > > ...the most ultimately important vote in all of Euphoria's history:
> > > > goto.
> > > I asked for examples where GOTO would help streamline or otherwise make a
> > > Euphoria program better. Nobody can provide any*- not even you, its most
> > > vocal supporter and advocate.
> > > (*Well, they haven't, yet.)
> > It's been shown, been done, been 10 years.
> 
> No, it hasn't. Ever. Not once. A Euphoria-code example.

I think that goto does has merit as a way to improve the readability and
maintainability of code. I and others provided examples (or links to such) which
have not yet been contested. By you or any one else.
With that issue out of the way .. you want to focus on speed. Fair enough.

What you were asking was quite hard to do since one could have to be able to
write it and somehow show that it works without actually being able to test the
code. A rather high burden of proof. This is why most examples are done in other
languages. In fact, to counter this, please come up with an example in euphoria
where using goto slows down the code. Pretty please with a berry on top?

For a real life example, compare the speed of EuRegex and PCRE. I'd ask to
compare the speed of EuRegex to EuPCRE, but I can't. I'm confident that if EuPCRE
did exist, it'd be faster than EuRegex.

> 
> > Code has been provided, only to be
> > shot down which chants of "can't it be done another way?" and "that's evil"
> > and "who would want to do that?". So point me to the dunking chair, i'll sit
> > down and buckle myself in... i acknowledge you win, but you are still wrong.
> 
> Certainly there's somebody who advocates GOTO in Euphoria who could provide
> an example of where a GOTO would significantly improve a Euphoria program's
> performance. Pretend Euphoria has GOTO right now and wow the skeptics.

Like I said in a previous post, using goto is a lot faster than function calls.

Not that I'm advocating the abandonment of making function calls. But you did
ask what could be faster.

Real life examples that could be made faster? Uhm, any tall recursive function
such as factorial(). Just one example.

>  
> (Just today I reworked some of my BBCMF code and had it serving up pages in
> HALF the time it was taking before! *pats self on back* Without GOTO, even.)
> 
> Remember, I'm talking about Euphoria. The goto in C has been shown to be
> beneficial to Euphoria. Great. But adding GOTO to Euphoria would be
> beneficial... how?

Speed of course, but there is also the improved maintainability and readability
of code (if used correctly of course).

In other languages, goto is also a good way to break out of nested loops and/or
if statements. But with labeled loops, that issue is not relevant. (How to break
out of a nested if statement? Surround it with a while loop, and add an 'exit'
right before the 'end while' line! Nice hack, eh?)

new topic     » goto parent     » topic index » view message » categorize

134. Re: voting on GOTO

c.k.lester wrote:
> 
> Kat wrote:
> > c.k.lester wrote:
> > > Kat wrote:
> > > > ...the most ultimately important vote in all of Euphoria's history:
> > > > goto.
> > > I asked for examples where GOTO would help streamline or otherwise make a
> > > Euphoria program better. Nobody can provide any*- not even you, its most
> > > vocal supporter and advocate.
> > > (*Well, they haven't, yet.)
> > It's been shown, been done, been 10 years.
> 
> No, it hasn't. Ever. Not once. A Euphoria-code example.

Duh,, Euphoria doesn't have goto.
 
> > Code has been provided, only to be
> > shot down which chants of "can't it be done another way?" and "that's evil"
> > and "who would want to do that?". So point me to the dunking chair, i'll sit
> > down and buckle myself in... i acknowledge you win, but you are still wrong.
> 
> Certainly there's somebody who advocates GOTO in Euphoria who could provide
> an example of where a GOTO would significantly improve a Euphoria program's
> performance. Pretend Euphoria has GOTO right now and wow the skeptics.

Pretend it's been done, pretend it was done in the PCRE/euPRC thread you were
talking on.

> (Just today I reworked some of my BBCMF code and had it serving up pages in
> HALF the time it was taking before! *pats self on back* Without GOTO, even.)

Yea, that's right, and you didn't use "continue", "retry", "entry", "case"
either!

> Remember, I'm talking about Euphoria. The goto in C has been shown to be
> beneficial to Euphoria. Great. But adding GOTO to Euphoria would be
> beneficial... how?

You must be blind. This has been going on for 10 YEARS, with examples.

Kat

new topic     » goto parent     » topic index » view message » categorize

135. Re: voting on GOTO

> On 5 Jun 2008 at 15:28, Derek Parnell wrote (maybe snipped):

> posted by: Derek Parnell <ddparnell at bigpo??.com>
> 
> Euler German wrote:
> 
> > Just to add that there are times when I really miss a DO CASE case
> > this ... case that ... other[wise] ... END CASE construct. But I can
> > wait. :)
> 
> 
> This construct has been implemented in v4.0 and I'm doing some
> extensive testing with it. It works very well and makes code look a
> lot cleaner. eg.
> 
>    switch upper(SOMEVAL) do
>        case "ME":
>        case "MYSELF":
>        case "I":
>               foo()
>               exit
> 
>        case "YOU":
>        case "THEM":
>              bar()              
>              -- fall thru
> 
>        case "HE":
>        case "SHE":
>              qwerty()
>             exit
> 
>        case else:
>              default()
> 
>     end switch
> 
That's what I was talking about! Job well done guys. You have my 
endless sympathy. :)

And though "else case" sounds a bit weird I can live with that. ;)

-- 
_
_| euler f german
_| sete lagoas, mg, brazil
_| efgerman{AT}gmail{DOT}com

new topic     » goto parent     » topic index » view message » categorize

136. Re: voting on GOTO

Bernie Ryan wrote:
> 
> Jim Brown wrote:
> > 
> 
> > goto is more or less a requirement to be able to port PCRE.
> > 
> 
>    And who decided that PCRE was a necessary feature to be added into
> 
>    the core of Euphoria ?
> 
>    That should be in a library or a DLL/SO instead of bloating the
> 
>    core of the language.
> 
>    How many users need to use it ?

I would use it regularly, and it might actually be enough for me to give up Perl
completely for CGI development.

As for built-in or dll, I think the decision has well and truly been made on
that issue, but if in future it was decided to split it out, I would suggest at
least the maintenance of a builtin binary for *nix since you can usually get exu
to run on a web host, but the host may not have the .so.

Gary

new topic     » goto parent     » topic index » view message » categorize

137. Re: voting on GOTO

gshingles wrote:
>  
> As for built-in or dll, I think the decision has well and truly been made on
> that issue, but if in future it was decided to split it out, I would suggest
> at least the maintenance of a builtin binary for *nix since you can usually
> get exu to run on a web host, but the host may not have the .so.
> 

Built-in vs. dll was made for distribution purposes and also supporting dos.
regular expressions work fine in the dos version of eu4.0. So, you know now that
if it's 4.0, it has regular expressions. No possible missing dll/so, mismatch,
etc... I bet that regular expressions will become one of the most widely used new
features of 4.0.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

138. Re: voting on GOTO

Derek Parnell wrote:
> The plan is to release an 'alpha' edition and solicit feedback.

I stand corrected. 

  http://en.wikipedia.org/wiki/Software_release_life_cycle


Instead of 'alpha' I should have used a different word. My apologies, one and
all. Sorry for the confusion.


-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

139. Re: voting on GOTO

Euler German wrote:
> 
> > On 5 Jun 2008 at 15:28, Derek Parnell wrote (maybe snipped):
> 
> > posted by: Derek Parnell <ddparnell at bigpo??.com>
> > 
> > Euler German wrote:
> > 
> > > Just to add that there are times when I really miss a DO CASE case
> > > this ... case that ... other[wise] ... END CASE construct. But I can
> > > wait. :)
> > 
> > 
> > This construct has been implemented in v4.0 and I'm doing some
> > extensive testing with it. It works very well and makes code look a
> > lot cleaner. eg.
> > 
> >    switch upper(SOMEVAL) do
> >        case "ME":
> >        case "MYSELF":
> >        case "I":
> >               foo()
> >               exit
> > 
> >        case "YOU":
> >        case "THEM":
> >              bar()              
> >              -- fall thru
> > 
> >        case "HE":
> >        case "SHE":
> >              qwerty()
> >             exit
> > 
> >        case else:
> >              default()
> > 
> >     end switch
> > 
> That's what I was talking about! Job well done guys. You have my 
> endless sympathy. :)
> 
> And though "else case" sounds a bit weird I can live with that. ;)
> 
> -- 
> _
> _| euler f german
> _| sete lagoas, mg, brazil
> _| efgerman{AT}gmail{DOT}com
> 
> 

'case else' disambiguates from if/else

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

140. Re: voting on GOTO

Jim Brown wrote:
> c.k.lester wrote:
> > No, it hasn't. Ever. Not once. A Euphoria-code example.
> In fact, to counter this, please come up with an example
> in euphoria where using goto slows down the code.

I've never argued that a GOTO would slow down code.

What I want to know is, how good will GOTO speed up code, if at all?

> Like I said in a previous post, using goto is a lot faster than function
> calls.

In C it is; but is it in Euphoria? If it's "a lot faster," by how much?

Jim, don't you have a Euphoria interpreter that can use GOTO?

> Real life examples that could be made faster? Uhm, any tall recursive function
> such as factorial(). Just one example.

I couldn't find factorial() in the standard lib. Can you show us a non-GOTO
example factorial() function in Euphoria, and then a GOTO example?

> > But adding GOTO to Euphoria would be beneficial... how?
> 
> Speed of course, but there is also the improved maintainability and
> readability
> of code (if used correctly of course).

Well, I guess we'll have to wait for 4.0-alpha so we can get some
benchmarks. Those who advocate GOTO would need to show examples
where development and maintenance were made more efficient, and
execution time was decreased. It would be great if we could get,
say, 50% decreases in execution time from some of the standard lib
functions/procedures, but I am a skeptic at this point.

new topic     » goto parent     » topic index » view message » categorize

141. Re: voting on GOTO

Kat wrote:
> 
> Duh,, Euphoria doesn't have goto.

Quoting myself since you missed it (or failed reading comprehension):
I asked for examples where GOTO would help streamline or otherwise make a
Euphoria program better.

Basically, pretend GOTO is already there, then show me some functions where
GOTO would speed up the code.

> > Pretend Euphoria has GOTO right now and wow the skeptics.
> Pretend it's been done, pretend it was done in the PCRE/euPRC thread you were
> talking on.

The burden of proof is not on me. It's up to the GOTO advocates to show how
having GOTO will benefit the language.

new topic     » goto parent     » topic index » view message » categorize

142. Re: voting on GOTO

c.k.lester wrote:
> 
> Jim Brown wrote:
> > in euphoria where using goto slows down the code.
> 
> I've never argued that a GOTO would slow down code.

Ok, conceded.

> 
> What I want to know is, how good will GOTO speed up code, if at all?

Ok, a reasonable question.

> 
> > Like I said in a previous post, using goto is a lot faster than function
> > calls.
> 
> In C it is; but is it in Euphoria? If it's "a lot faster," by how much?

I already told you.

9,999,999 function calls is about 2 seconds. 99,999,999 gotos is <1 second.

(I would post the speed for 9,999,999 gotos, but time()-old_time kept returning
0 for that case.)

> 
> Jim, don't you have a Euphoria interpreter that can use GOTO?
> 

I am the probably the only one at the moment.

> > Real life examples that could be made faster? Uhm, any tall recursive
> > function
> > such as factorial(). Just one example.
> 
> I couldn't find factorial() in the standard lib. Can you show us a non-GOTO
> example factorial() function in Euphoria, and then a GOTO example?
> 

w/o goto

function factorial(atom a)
if a < 3 then
return a
end if
return a*factorial(a-1)
end function

w/ goto

function factorial(atom a)
stom b
b = a

label "start"
a = a - 1

if a <= 2 then
goto "end"
end if

b = b * a
goto "start"

label "end"
return b
end function

> > > But adding GOTO to Euphoria would be beneficial... how?
> > 
> > Speed of course, but there is also the improved maintainability and
> > readability
> > of code (if used correctly of course).
> 
> Well, I guess we'll have to wait for 4.0-alpha so we can get some
> benchmarks. Those who advocate GOTO would need to show examples
> where development and maintenance were made more efficient, and
> execution time was decreased. It would be great if we could get,
> say, 50% decreases in execution time from some of the standard lib
> functions/procedures, but I am a skeptic at this point.

Well, 2-5% is probably doable. 50% would be nice, though.

new topic     » goto parent     » topic index » view message » categorize

143. Re: voting on GOTO

c.k.lester wrote:
> 
> Kat wrote:
> > 
> > Duh,, Euphoria doesn't have goto.
> 
> Quoting myself since you missed it (or failed reading comprehension):
> I asked for examples where GOTO would help streamline or otherwise make a
> Euphoria program better.

That's not a quote.

> Basically, pretend GOTO is already there, then show me some functions where
> GOTO would speed up the code.
> 
> > > Pretend Euphoria has GOTO right now and wow the skeptics.
> > Pretend it's been done, pretend it was done in the PCRE/euPRC thread you
> > were
> > talking on.
> 
> The burden of proof is not on me. It's up to the GOTO advocates to show how
> having GOTO will benefit the language.

CK, talking to you stopped being productive *at all* yesterday. So far today, no
one has gotten thru to you. You can't even carry a thought from talking to one
person to talking to the next. Hell, let me quote myself: "So point me to the
dunking chair, i'll sit down and buckle myself in... i acknowledge you win, but
you are still wrong."

Kat

new topic     » goto parent     » topic index » view message » categorize

144. Re: voting on GOTO

Jim Brown wrote:
> 
> 9,999,999 function calls is about 2 seconds. 99,999,999 gotos is <1 second.

While that kicks total butt, I have to wonder who calls a function almost
10 million times? Just curious. I'm sure Kat with her processing of gigabytes
of text probably makes use of some lines of code many many times... Kat?

> w/o goto
> 
> function factorial(atom a)
> if a < 3 then
> return a
> end if
> return a*factorial(a-1)
> end function
> 
> w/ goto
> 
> function factorial(atom a)
> stom b
> b = a
> 
> label "start"
> a = a - 1
> 
> if a <= 2 then
> goto "end"
> end if
> 
> b = b * a
> goto "start"
> 
> label "end"
> return b
> end function

Would it be possible for you to benchmark those two functions?

new topic     » goto parent     » topic index » view message » categorize

145. Re: voting on GOTO

c.k.lester wrote:
> 
> > > Pretend Euphoria has GOTO right now and wow the skeptics.
> > Pretend it's been done, pretend it was done in the PCRE/euPRC thread you
> > were
> > talking on.
> 
> The burden of proof is not on me. It's up to the GOTO advocates to show how
> having GOTO will benefit the language.

At the same time, while admitting the burden of proof might not be as strong, it
would be great for those against GOTO to give solid evidence on how adding it
would be bad for the language. Not just vague remarks about "spagetthi code" and
the like.

new topic     » goto parent     » topic index » view message » categorize

146. Re: voting on GOTO

c.k.lester wrote:
> 
> Jim Brown wrote:
> > 
> > 9,999,999 function calls is about 2 seconds. 99,999,999 gotos is <1 second.
> 
> While that kicks total butt, I have to wonder who calls a function almost
> 10 million times? Just curious. I'm sure Kat with her processing of gigabytes
> of text probably makes use of some lines of code many many times... Kat?

Have you done benchmarking before? The greater number of iterations you test,
the more accurate your result is. The important thing is goto is substantially
faster.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

147. Re: voting on GOTO

Jim Brown wrote:
> 
> c.k.lester wrote:
> > 
> > > > Pretend Euphoria has GOTO right now and wow the skeptics.
> > > Pretend it's been done, pretend it was done in the PCRE/euPRC thread you
> > > were
> > > talking on.
> > 
> > The burden of proof is not on me. It's up to the GOTO advocates to show how
> > having GOTO will benefit the language.
> 
> At the same time, while admitting the burden of proof might not be as strong,
> it would be great for those against GOTO to give solid evidence on how adding
> it would be bad for the language. Not just vague remarks about "spagetthi
> code"
> and the like.

Fear of abuse is paranoia and a weak argument. There are much more valid reasons
against goto, such as uncertain code flow.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

148. Re: voting on GOTO

Jim Brown wrote:
> 
> c.k.lester wrote:
> > 
> > > > Pretend Euphoria has GOTO right now and wow the skeptics.
> > > Pretend it's been done, pretend it was done in the PCRE/euPRC thread you
> > > were
> > > talking on.
> > 
> > The burden of proof is not on me. It's up to the GOTO advocates to show how
> > having GOTO will benefit the language.
> 
> At the same time, while admitting the burden of proof might not be as strong,
> it would be great for those against GOTO to give solid evidence on how adding
> it would be bad for the language. Not just vague remarks about "spagetthi
> code"
> and the like.

Well at least in some respects I've shown how it can be replaced, clearly in my
opinion, with structured constructs, in most cases.

It's hard to prove a negative though -- that is, Euphoria doesn't have a goto 
(and its use in other languages has been highly discouraged over the past forty
years) so it's kinda hard to come up with negative examples of spaghetti code in
Euphoria or in other languages.

The only legitimate examples of goto that I have seen are as an exception
mechanism when the language otherwise doesn't have built-in exceptions, in
highly-optimized C code such as code output by the Euphoria translator (which is
not intended to be maintained by humans), in C kernel code, and in C interpreter
code (both of which, by definition, are difficult for mere humans to maintain).

And lastly, in a snippet of C code from the ancient game of Rogue, which can be
accomplished by other means but is otherwise pretty crystal clear (and which
"entry" doesn't seem to be able to solve either).

--
A complex system that works is invariably found to have evolved from a simple
system that works.
--John Gall's 15th law of Systemantics.

"Premature optimization is the root of all evil in programming."
--C.A.R. Hoare

j.

new topic     » goto parent     » topic index » view message » categorize

149. Re: voting on GOTO

c.k.lester wrote:
> 
> Jim Brown wrote:
> > 
> > 9,999,999 function calls is about 2 seconds. 99,999,999 gotos is <1 second.
> 
> While that kicks total butt, I have to wonder who calls a function almost
> 10 million times? Just curious. I'm sure Kat with her processing of gigabytes
> of text probably makes use of some lines of code many many times... Kat?

Sure, i can answer that one. HE SHOWED YOU A 10:1 SPEEDUP USING GOTO IN EUPHORIA
CODE.

I needed goto so i could write code that simulated a for nest 85 levels deep, or
recursion that went further deep than MAXINT in mirc or Eu or TurboPascal. Goto
in that case allowed me to NOT overflow the stack or heap, EVEN ON THE C64. But
the code would not run on Eu or TP, both crash with this or that errors. I can do
it in mirc, but mirc's  r e a l l y  slow at some things. It was yrs ago, i don't
know where the code is now. I do remember the "85" because it was a task
performed on a sentence with 85 english words in it, counting punctuation, the
longest sentence i could find at the time.

Kat

new topic     » goto parent     » topic index » view message » categorize

150. Re: voting on GOTO

Jeremy Cowgar wrote:
> c.k.lester wrote:
> > Jim Brown wrote:
> > > 9,999,999 function calls is about 2 seconds. 99,999,999 gotos is <1
> > > second.
> > While that kicks total butt, I have to wonder who calls a function almost
> > 10 million times? Just curious. I'm sure Kat with her processing of
> > gigabytes
> > of text probably makes use of some lines of code many many times... Kat?
> Have you done benchmarking before? The greater number of iterations you test,
> the more accurate your result is. The important thing is goto is substantially
> faster.

Yes, I've done benchmarking before, and I understand that more iterations gives
you a finer measurement. But there are theoretical considerations and there
are real-world considerations.

You said yourself you'd choose a Euphoria program of 25 minutes vs. an
assembly language of 10 seconds... so 2 seconds over the course of almost
10 million iterations doesn't seem so bad.

What I'm saying is, if it's going to take some astronomical number of
iterations to show a slight improvement, then it's probably not worth
adding to the core, because nobody's going to call a function that many
times.

I agree that for speed freaks, an improvement at 10 million iterations of
any amount is worth keeping, and generally I classify myself as a speedfreak.
But this one isn't compelling to me, especially when combined with its
unstructured nature. :/

new topic     » goto parent     » topic index » view message » categorize

151. Re: voting on GOTO

c.k.lester wrote:
> 
> What I'm saying is, if it's going to take some astronomical number of
> iterations to show a slight improvement, then it's probably not worth
> adding to the core, because nobody's going to call a function that many
> times.
> 

Slight improvement? His code showed more than twice as fast! Slight improvement
is the 2-4% you asked for.

--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

152. Re: voting on GOTO

Bernie Ryan wrote:
> 
> Matt Lewis wrote:
> > 
> > 
> > The size of the interpreter was increased by 100-150KB.  I think this is a
> > very reasonable tradeoff.
> > 
> 
> Matt:
> 
>    Why don't we just change the IL code to PARROT and then we will
> 
>    be able to merge all the features used in other languages.
> 
> 
> Bernie
> 
> My files in archive:
> WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 
> 
> Can be downloaded here:
> <a
> href="http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan">http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan</a>

If you search EuForum for Parrot, you'll see that Pete Lomax had explored
switching to it for Positive. And he eventually brought the experiment to an end
because Parrot's bytecode s far too incomplete. At least if I remember properly.

CChris

new topic     » goto parent     » topic index » view message » categorize

153. Re: voting on GOTO

Matt Lewis wrote:
> 
> Greg Haberek wrote:
> > 
> > There seem to be several chunks of PCRE-related code scattered around
> > the SVN trunk, some C, some Euphoria. Nothing I've looked at thus far
> > has expressed a need for GOTO. Perhaps you could point me in the right
> > direction?
> 
> matt@oneill:~/euphoria/dev/rds/source/pcre$ grep -c goto *c | grep -v \:0
> pcre_compile.c:96
> pcre_dfa_exec.c:9
> pcre_exec.c:28

So the C code needs it... let the C code have it!!! Just compile that into the
Interpreter back-end. Isn't that what you're already doing? Are most (if not
*all*) the things the Interpreter does actually implemented in the C back-end? I
would imagine it'd be the *fastest* and *simplest* route to implementing PCRE.
Why bother re-writing it in Euphoria? Then you'll have to re-re-write it every
time there's an update (or hunt down the updates to the PRCE code and implement
them individually) if you'd like to maintain that the code is fresh and stable.

As much as I respect you as a programmer, Matt, I find this a moot argument for
GOTO.

-Greg

new topic     » goto parent     » topic index » view message » categorize

154. Re: voting on GOTO

Robert Craig wrote:
> 
> Jim Brown wrote:
> > 
> > Ok, the poll shall continue.
> > 
> > Is Saturday (06/07/08) 17:00 UTC agreeable to everyone?
> 
> Fair enough.
> I'll state that on the RapidEuphoria main page.
> I assume UTC and GMT are the same thing.
> EUforum shows times in GMT.
> 
> Regards,
>    Rob Craig
>    Rapid Deployment Software
>    <a href="http://www.RapidEuphoria.com">http://www.RapidEuphoria.com</a>

There i a difference, but it is a handful of seconds only.
As a result, Z, GMT and UTC are used interchangeably, except when split second
accuracy is required.

CChris

new topic     » goto parent     » topic index » view message » categorize

155. Re: voting on GOTO

Greg Haberek wrote:
> 
> Matt Lewis wrote:
> > 
> > Greg Haberek wrote:
> > > 
> > > There seem to be several chunks of PCRE-related code scattered around
> > > the SVN trunk, some C, some Euphoria. Nothing I've looked at thus far
> > > has expressed a need for GOTO. Perhaps you could point me in the right
> > > direction?
> > 
> > matt@oneill:~/euphoria/dev/rds/source/pcre$ grep -c goto *c | grep -v \:0
> > pcre_compile.c:96
> > pcre_dfa_exec.c:9
> > pcre_exec.c:28
> 
> So the C code needs it... let the C code have it!!! Just compile that
> into the Interpreter back-end. Isn't that what you're already doing? Are
> most (if not *all*) the things the Interpreter does actually implemented
> in the C back-end? I would imagine it'd be the *fastest* and *simplest*
> route to implementing PCRE. Why bother re-writing it in Euphoria? Then
> you'll have to re-re-write it every time there's an update (or hunt down
> the updates to the PRCE code and implement them individually) if you'd
> like to maintain that the code is fresh and stable.
> 
> As much as I respect you as a programmer, Matt, I find this a moot argument
> for GOTO.

Huh?  You asked a question and I answered it.  No one is saying that we 
should port PCRE instead of putting it into the interpreter (well, maybe 
Bernie).

I don't understand what's so hard about this argument (which multiple people
have gotten wrong, BTW--I'm addressing all of you here).  For the sake of 
argument, let's pretend that the letters P, C, R and E were never typed in 
that order.

The question was, when is goto a useful thing, over and above what you
can do with other structures that euphoria has.  I answered, "It can be
very useful when porting code from other languages that might have goto
or other features that aren't easily handled by what euphoria has."
I then gave my previous, failed attempt at doing just that with PCRE, to
show that it wasn't completely theoretical.

You [in the generic sense] are free to disagree with the need for goto.  
You are not free to think that this argument has anything to do with the 
decision to include PCRE into euphoria, and that including it has any
bearing on the debate about goto.  It was simply an example of some useful
code that couldn't be easily made into a native euphoria port.

Now, you could ask, "Why bother to port it?  Why not just wrap the shared
library?"  And my answer would be:  it's easier to distribute euphoria code
with a euphoria app than to deal with additional dependencies.  And if 
the performance is acceptable, then it's a plus.  And it's not going to be
possible or desirable to put every useful library into the interpreter.

Matt

new topic     » goto parent     » topic index » view message » categorize

156. Re: voting on GOTO

I vote NO to goto.

new topic     » goto parent     » topic index » view message » categorize

157. Re: voting on GOTO

After careful reconsideration, I retract my no vote and choose to abstain.

I cannot with honesty find enough reason to disallow this feature.
The construct is low-level enough to be exceptional from Eu's principles of
top-down processing and strict syntax and does offer new freedom to the
programmer to express their intentions in a way that is easiest for them
(regardless if it is a good choice, it should be theirs), which is the important
thing.

Chris Bensler
Code is Alchemy

new topic     » goto parent     » topic index » view message » categorize

158. Re: voting on GOTO

Ok. I'll weigh in. I'm not at all keen on the syntax of the proposal, nor the
proposed scope of goto, nor the lack of intermediate alternatives in the poll.
But I have the choice of voting or not, and I support the developers' right to
pose the question in the way they want.

My views reflect those of CChris. I think limited jumps within context do
improve code readability, logic, bug-testing, incremental development (i.e.
trying out a theory before optimising), maintainability and the flexibility of
the programmer to express himself in the way that he says is clear. If the
proposal were limited to jumps within blocks that the jump point is in, I would
have no dificulty. I cannot imagine any circumstance where jumping into a block
would be desirable (happy for others to tell me why), and (maybe un-Euphorian), I
don't like file-level scope. If I have to hive off a procedure, I want to pass
the data, not write side-effects, so the "solution" of excising code as
procedures is not always so simple or clear.

The other arguments in favour of goto don't turn me on, but that's just the
nature of my ballpark.

Spaghetti code does exist - I wrote some in qbasic, and have never used the
language since. I also read lots of C code written by others. I often find it
hard to follow, never as a result of goto.

So I will vote yes. I'd rather have the intermediate proposals ventilated, such
as the multiple keywords/constructs to solve specific cases, and have some
alternatives in the voting.

Cheers
Peter Robinson

new topic     » goto parent     » topic index » view message » categorize

159. Re: voting on GOTO

I vote YES because of speed and also because the tricks used to avoid 'goto' are
IMO just as bad or even worse than 'goto' itself.
About readability: it's all a matter of getting used to. About maintainability:
every program without proper remarks is always bad to maintain.

new topic     » goto parent     » topic index » view message » categorize

160. Re: voting on GOTO

Peter Robinson wrote:
> 
> If the proposal were limited to jumps within blocks that the jump point is
> in, I would have no dificulty.  I cannot imagine any circumstance where 
> jumping into a block would be desirable (happy for others to tell me why),
> and (maybe un-Euphorian)...

It's basically limited to the SubProgram (to use a backend term) in which the 
jump occurs.  SubPrograms are Top Level code or any routine.  There is an
exception to this on the Top Level, but more on that below...

> I don't like file-level scope. If I have to hive off a procedure, I want to
> pass the data, not write side-effects, so the "solution" of excising code
> as procedures is not always so simple or clear.

It's not clear to me that the meaning of file-level scope is clear to you
here.  Firstly, note that you cannot jump into or out of a routine.  At the
top level (which is all one big SubProgram to euphoria) you cannot jump from
one file to a target in another file.

To euphoria, the SubProgram and the for loop are really the only levels of 
blocks that we have.  A loop variable is only in scope within the loop.
Personally, I think it should be an error to jump into a for loop, since 
you skip the initialization of the loop variable.  This would require a 
bit more work by the parser to do this check, but wouldn't slow anything
else down (i.e., at run-time).

Jumping out of a loop doesn't present any similar dangers (in fact, exit 
already does just this).

Perhaps you could expand a bit more on what you consider a block?

Matt

new topic     » goto parent     » topic index » view message » categorize

161. Re: voting on GOTO

I vote NO to GOTO.

--
Igor

new topic     » goto parent     » topic index » view message » categorize

162. Re: voting on GOTO

> On 5 Jun 2008 at 20:20, Chris Bensler wrote (maybe snipped):

> 
> 
> posted by: Chris Bensler <eu at cre?tivep?rtal.ca>
> 
> Euler German wrote:
> > 
> > > On 5 Jun 2008 at 15:28, Derek Parnell wrote (maybe snipped):
> > 
> > > posted by: Derek Parnell <ddparnell at bigpo??.com>
> > > 
> > > Euler German wrote:
> > > 
> > > > Just to add that there are times when I really miss a DO CASE
> > > > case this ... case that ... other[wise] ... END CASE construct.
> > > > But I can wait. :)
> > > 
> > > 
> > > This construct has been implemented in v4.0 and I'm doing some
> > > extensive testing with it. It works very well and makes code look
> > > a lot cleaner. eg.
> > > 
> > >    switch upper(SOMEVAL) do
> > >        case "ME":
> > >        case "MYSELF":
> > >        case "I":
> > >               foo()
> > >               exit
> > > 
> > >        case "YOU":
> > >        case "THEM":
> > >              bar()              
> > >              -- fall thru
> > > 
> > >        case "HE":
> > >        case "SHE":
> > >              qwerty()
> > >             exit
> > > 
> > >        case else:
> > >              default()
> > > 
> > >     end switch
> > > 
> > That's what I was talking about! Job well done guys. You have my
> > endless sympathy. :)
> > 
> > And though "else case" sounds a bit weird I can live with that. ;)
> > 
> > -- 
> > _
> > _| euler f german
> > _| sete lagoas, mg, brazil
> > _| efgerman{AT}gmail{DOT}com
> > 
> > 
> 'case else' disambiguates from if/else
> 
Indeed, but wouldn't "otherwise" make it even better? I mean, the 
only place you can expect "else" is on if ... end if constructs. But 
this is me.

-- 
_
_| euler f german
_| sete lagoas, mg, brazil
_| efgerman{AT}gmail{DOT}com

new topic     » goto parent     » topic index » view message » categorize

163. Re: voting on GOTO

Euler German wrote:
> 
> > On 5 Jun 2008 at 20:20, Chris Bensler wrote (maybe snipped):
> 
> > 
> > posted by: Chris Bensler <eu at cre?tivep?rtal.ca>
> > 
> > Euler German wrote:
> > > 
> > > > On 5 Jun 2008 at 15:28, Derek Parnell wrote (maybe snipped):
> > > 
> > > > posted by: Derek Parnell <ddparnell at bigpo??.com>
> > > > 
> > > > Euler German wrote:
> > > > 
> > > > > Just to add that there are times when I really miss a DO CASE
> > > > > case this ... case that ... other[wise] ... END CASE construct.
> > > > > But I can wait. :)
> > > > 
> > > > 
> > > > This construct has been implemented in v4.0 and I'm doing some
> > > > extensive testing with it. It works very well and makes code look
> > > > a lot cleaner. eg.
> > > > 
> > > >    switch upper(SOMEVAL) do
> > > >        case "ME":
> > > >        case "MYSELF":
> > > >        case "I":
> > > >               foo()
> > > >               exit
> > > > 
> > > >        case "YOU":
> > > >        case "THEM":
> > > >              bar()              
> > > >              -- fall thru
> > > > 
> > > >        case "HE":
> > > >        case "SHE":
> > > >              qwerty()
> > > >             exit
> > > > 
> > > >        case else:
> > > >              default()
> > > > 
> > > >     end switch
> > > > 
> > > That's what I was talking about! Job well done guys. You have my
> > > endless sympathy. :)
> > > 
> > > And though "else case" sounds a bit weird I can live with that. ;)
> > > 
> > > -- 
> > > _
> > > _| euler f german
> > > _| sete lagoas, mg, brazil
> > > _| efgerman{AT}gmail{DOT}com
> > > 
> > > 
> > 'case else' disambiguates from if/else
> > 
> Indeed, but wouldn't "otherwise" make it even better? I mean, the 
> only place you can expect "else" is on if ... end if constructs. But 
> this is me.
> 
> -- 
> _
> _| euler f german
> _| sete lagoas, mg, brazil
> _| efgerman{AT}gmail{DOT}com
> 
> 

Sure, lets just keep adding keywords to accomplish the task instead
of reorganizing the current ones in an elegant and explanatory way.

After all, how many keywords does euphoria need before it simply
scares newbies to death?  Wow, I thought we were going for sexy and
simple.

    Lucius L. Hilley III - Unkmar

new topic     » goto parent     » topic index » view message » categorize

164. Re: voting on GOTO

Matt Lewis wrote:
> 
> Peter Robinson wrote:
> > 
> > If the proposal were limited to jumps within blocks that the jump point is
> > in, I would have no dificulty.  I cannot imagine any circumstance where 
> > jumping into a block would be desirable (happy for others to tell me why),
> > and (maybe un-Euphorian)...
> 
> It's basically limited to the SubProgram (to use a backend term) in which the
> 
> jump occurs.  SubPrograms are Top Level code or any routine.  There is an
> exception to this on the Top Level, but more on that below...
> 
> > I don't like file-level scope. If I have to hive off a procedure, I want to
> > pass the data, not write side-effects, so the "solution" of excising code
> > as procedures is not always so simple or clear.
> 
> It's not clear to me that the meaning of file-level scope is clear to you
> here.  Firstly, note that you cannot jump into or out of a routine.  At the
> top level (which is all one big SubProgram to euphoria) you cannot jump from
> one file to a target in another file.
> 
> To euphoria, the SubProgram and the for loop are really the only levels of 
> blocks that we have.  A loop variable is only in scope within the loop.
> Personally, I think it should be an error to jump into a for loop, since 
> you skip the initialization of the loop variable.  This would require a 
> bit more work by the parser to do this check, but wouldn't slow anything
> else down (i.e., at run-time).
> 
> Jumping out of a loop doesn't present any similar dangers (in fact, exit 
> already does just this).
> 
> Perhaps you could expand a bit more on what you consider a block?
> 
> Matt

By block I was including loops, conditionals, procedures and functions. They
share a common context (in a logical sense, I'm not talking about what happens in
the interpreter), so you may want to jump within them. I don't include the
file-level in this, since being within the same file may not involve any
contextual connection. I modularise by keeping within context, which may or may
not correspond with the language's implementation of scope.

Euphoria may require me to declare variables with file-level scope for certain
purposes, but I still modularise by trying, wherever possible, to only operate on
particlar variables within the context of a particular block. If procedures need
to interact with that data, I prefer to pass the input as arguments and return
the output, rather than operate on shared variables at either the file or global
level (This is what I mean by writing side effects). I think this promotes
readability and maintainability, so the supposed "solution" of a jump to a
procedure that shares data with the original context or block does not correspond
with my idea of modularity.

I did understand that you can't jump from one file to another, but for the
reasons I mention above, I don't like unlimited jumps within files either (even
though, as I understand it, I have now voted for a proposition that supports
that).

In my view, once you have entered a block by the front door, you may validly
want to leave by the back or front door or by the window if things don't pan out
the way you hoped. But jumping into the middle of a context looks very much like
break-and-enter to me.
 
Cheers, and thanks for the ongoing work.

Peter Robinson

new topic     » goto parent     » topic index » view message » categorize

165. Re: voting on GOTO

Peter Robinson wrote:
>  
> By block I was including loops, conditionals, procedures and functions. They
> share a common context (in a logical sense, I'm not talking about what happens
> in the interpreter), so you may want to jump within them. I don't include the
> file-level in this, since being within the same file may not involve any
> contextual
> connection. I modularise by keeping within context, which may or may not
> correspond
> with the language's implementation of scope.
> 

Many small utilities are a single file w/their body as the main file, for
instance, this simple "cat" command written as euphoria:

sequence cmds, lines
lines = read_file(cmds[3])
for a = 1 to length(lines) do
    puts(1, lines[a])
end for


That's a pretty silly way of doing things, but, that is the *entire* application
and it's all at the file level. I doubt that you would use goto at the file level
if your application is contained in functions:

procedure display_file(sequence filename)
    sequence lines
    lines = read_file(filename)
    for a = 1 to length(lines) do
        puts(1, lines[a])
    end for
end procedure

procedure main()
    sequence cmds
    display_file(cmds[3])
end procedure

main()


--
Jeremy Cowgar
http://jeremy.cowgar.com

new topic     » goto parent     » topic index » view message » categorize

166. Re: voting on GOTO

> On 6 Jun 2008 at 10:38, Lucius L. Hilley III wrote (maybe snipped):

> Sure, lets just keep adding keywords to accomplish the task instead of
> reorganizing the current ones in an elegant and explanatory way.
> 
> After all, how many keywords does euphoria need before it simply
> scares newbies to death?  Wow, I thought we were going for sexy and
> simple.
> 
>     Lucius L. Hilley III - Unkmar
> 

Keywords don't scare newbies. Dogmas do. Why I'm not amazed this 
community didn't grow in more than 5 years? Maybe I should quote 
David Cuny (I hope you don't mind, David): "...I'm not sure that my 
hopes for Euphoria match most of those using it." and also of his 
brew: "I wrote my pre-processor and Py as examples of what I thought 
Euphoria could become. They ended up looking a lot like Python  Lua. 
I'm not sure my idea of Euphoria would make many current users 
happy."

Who's scaring who? And David Cuny is certainly NOT a newbie. ;)

-- 
_
_| euler f german
_| sete lagoas, mg, brazil
_| efgerman{AT}gmail{DOT}com

new topic     » goto parent     » topic index » view message » categorize

167. Re: voting on GOTO

No

new topic     » goto parent     » topic index » view message » categorize

168. Re: voting on GOTO

Yes.

new topic     » goto parent     » topic index » view message » categorize

169. Re: voting on GOTO

Euler German wrote:
> 
> > On 6 Jun 2008 at 10:38, Lucius L. Hilley III wrote (maybe snipped):
> 
> > Sure, lets just keep adding keywords to accomplish the task instead of
> > reorganizing the current ones in an elegant and explanatory way.
> > 
> > After all, how many keywords does euphoria need before it simply
> > scares newbies to death?  Wow, I thought we were going for sexy and
> > simple.
> > 
> >     Lucius L. Hilley III - Unkmar
> > 
> 
> Keywords don't scare newbies. Dogmas do. Why I'm not amazed this 
> community didn't grow in more than 5 years? Maybe I should quote 
> David Cuny (I hope you don't mind, David): "...I'm not sure that my 
> hopes for Euphoria match most of those using it." and also of his 
> brew: "I wrote my pre-processor and Py as examples of what I thought 
> Euphoria could become. They ended up looking a lot like Python  Lua. 
> I'm not sure my idea of Euphoria would make many current users 
> happy."
> 

Exactly why it's by sheer luck I'm still around.

CChris

> Who's scaring who? And David Cuny is certainly NOT a newbie. ;)
> 
> -- 
> _
> _| euler f german
> _| sete lagoas, mg, brazil
> _| efgerman{AT}gmail{DOT}com
> 
>

new topic     » goto parent     » topic index » view message » categorize

170. Re: voting on GOTO

Lucius L. Hilley III wrote:
> Sure, lets just keep adding keywords to accomplish the task instead
> of reorganizing the current ones in an elegant and explanatory way.
> 
> After all, how many keywords does euphoria need before it simply
> scares newbies to death?  Wow, I thought we were going for sexy and
> simple.
> 
>     Lucius L. Hilley III - Unkmar

IMO it's not the number of keywords that scare newbies, on the contrary, it's
the lack thereof.
The more keywords, the more ways to get something done.

new topic     » goto parent     » topic index » view message » categorize

171. Re: voting on GOTO

The poll closes at 18 for, 13 against, and 4 abstaining.

Robert Craig wrote:
> 
> Jim Brown wrote:
> > 
> > Ok, the poll shall continue.
> > 
> > Is Saturday (06/07/08) 17:00 UTC agreeable to everyone?
> 
> Fair enough.
> I'll state that on the RapidEuphoria main page.
> I assume UTC and GMT are the same thing.
> EUforum shows times in GMT.
> 
> Regards,
>    Rob Craig
>    Rapid Deployment Software
>    <a href="http://www.RapidEuphoria.com">http://www.RapidEuphoria.com</a>

new topic     » goto parent     » topic index » view message » categorize

172. Re: voting on GOTO

Jim Brown wrote:
> The poll closes at 18 for, 13 against, and 4 abstaining.
> 
> Robert Craig wrote:
> > 
> > Jim Brown wrote:
> > > 
> > > Ok, the poll shall continue.
> > > 
> > > Is Saturday (06/07/08) 17:00 UTC agreeable to everyone?
> > 
> > Fair enough.
> > I'll state that on the RapidEuphoria main page.
> > I assume UTC and GMT are the same thing.
> > EUforum shows times in GMT.

OK.
You now have a mandate to proceed with a GOTO statement.
Thanks for being patient.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

173. Re: voting on GOTO

Robert Craig wrote:
> 
> Jim Brown wrote:
> > The poll closes at 18 for, 13 against, and 4 abstaining.
> > 
> > Robert Craig wrote:
> > > 
> > > Jim Brown wrote:
> > > > 
> > > > Ok, the poll shall continue.
> > > > 
> > > > Is Saturday (06/07/08) 17:00 UTC agreeable to everyone?
> > > 
> > > Fair enough.
> > > I'll state that on the RapidEuphoria main page.
> > > I assume UTC and GMT are the same thing.
> > > EUforum shows times in GMT.
> 
> OK.
> You now have a mandate to proceed with a GOTO statement.
> Thanks for being patient.

You're welcome. 


Kat

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu