[chuck-dev] for loop, empty conditional statement, possible fix

Szilveszter Tóth silvestre.toth at gmail.com
Fri Oct 23 09:20:52 EDT 2009


Hi, Kassen,

I noticed this bug when I wrote about 20 lines of code in a row, (you 
know, I'm a programmer myself :)) and then I tried to run it, which 
caused ChucK to crash.
I had to undo the changes step-by-step until ChucK worked again.

I'm a C programmer, and in C, I often write an infinite loop like this: 
for(;;) {}

I prefer for() loops to while() loops, because for loops have the 
ability to step the cycle variable even if you put a continue; in them.

And programmers have the ability to forget to step variables in a 
while() loop. :)

Regards,
Szilveszter aka Hillaby

Kassen escribió:
> Hi Szilveszter,
>
>
>     I also checked out the source code and made a change which made
>     this loop work:
>     at chuck_dev\v2\chuck_type.cpp:873:
>
>     I enclosed the switch() block in a conditional:
>
>     if (stmt->c2) { ... }
>
>     Now it seems to work.
>
>
> First; great job on fixing this crash, that's the spirit!
>
> I do have a question though. It seems that you are implying here that 
> a empty condition now evaluates to true (or at least not false). 
> Assuming we adopt this fix; would this now be true in the general 
> case, or just for "for" loops? Are there precedents on empty 
> conditions evaluating to true?  Just curious; crash prevention is the 
> main thing here, I don't see much practical use in empty "for" loops 
> anyway, because "while(1)" is just as one character more than 
> "for(;;)" and a lot more readable.
>
> Yours,
> Kas.
> ------------------------------------------------------------------------
>
> _______________________________________________
> chuck-dev mailing list
> chuck-dev at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
>   



More information about the chuck-dev mailing list