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@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev